首先创建一个csv文件,创建方式为新建一个文本文档,然后将这个文本文档重命名为test.csv 再用Excel打开,添加内容 内容如下: ?...先来添加列 data = [‘a’,’b’,’c’] df[‘字母’] = data import pandas as pd filename = '....pd.read_csv(filename,encoding='gbk') data = ['a','b','c'] df['字母'] = data df.to_csv(filename,index=None) 由于我们的列标签是中文
SQL 基本语法 表库操作 创建表 create table 表名( 字段名 类型(长度) 约束, 字段名 类型(长度) 约束 ); 创建主键约束 id...:统计指定列不为NULL的记录行数; sum:计算指定列的数值和,如果指定列; max:计算指定列的最大值, min:计算指定列的最小值, avg:计算指定列的平均值 SELECT COUNT(*)AS'count...,一般和聚合函数一起用, 查询相同字段的数据 SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件; 分组操作中的having子语句,是用于在分组后对数据进行过滤的...select count(id),name from gDemo GROUP BY name // 根据名字分组, 即查询相同名字的列数有多少 ? ?...旧列名 新列名 类型(长度) 约束; 删除列 alter table 表名 drop 列名;
INSERT INSERT INTO 语句用于向表中插入新记录。...= > 大于 < 小于 >= 大于等于 <= 小于等于 AND 前后两个条件都成立 OR 前后两个条件有一个成立 BETWEEN 在某个范围内 IN 指定针对某个列的多个可能值 LIKE 搜索某种模式...AND & OR AND & OR 运算符用于基于一个以上的条件对记录进行过滤。...GROUP BY GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。...BY Websites.name HAVING SUM(access_log.count) > 200; JOIN JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
,如果失败则创建一个新的连接请求。...VT1-J1 这一个虚拟表进行过滤,过滤出所有满足 ON 谓词条件的列,生成虚拟表 VT1-J2。...注意:此时因为分组,不能使用聚合运算;也不能使用 SELECT 中创建的别名; 与 ON 的区别 如果有外部列,ON 针对过滤的是关联表,主表(保留表)会返回所有的列; 如果没有添加外部列,两者的效果是一样的...BY 这个子句会把 VT2 中生成的表按照 GROUP BY 中的列进行分组,生成 VT3 表。...注意:其后处理过程的语句,如 SELECT、HAVING,所用到的列必须包含在 GROUP BY 中,对于没有出现的,得用聚合函数; 「原因」:GROUP BY 改变了对表的引用,将其转换为新的引用方式
分组数据 group by 分组数据主要是靠group by 和 having子句来实现的。...where prod_price >= 4 -- 过滤价格 group by vend_id having count(*) >= 2; -- 过滤分组之后的计数 笔记:having和group...Order by 和group by 区别 Order by group by 对产生的输出排序 对行分组,但是输出可能不是分组的顺序 任意的列都可以使用 只能使用选择列或者表达式列 不一定需要 如果是和聚合函数一起使用列...group by和order by子句最好结合使用 select order_num, count(*) as items from orderitems group by order_num...如果没有,则返回的是笛卡尔积(没有联结条件的表返回的结果,有时候也称之为叉联结cross join)。 内连接inner join 内连接也叫等值连接,基于两个表之间的等值测试。
SQL执行顺序 第一步:执行FROM 第二步:WHERE条件过滤 第三步:GROUP BY 分组 第四步:执行SELECT 投影列 第五步:HAVING条件过滤 第六步:执行ORDER BY排序 一、创建...、删除库 -- 创建新数据库 CREATE DATABASE 数据库名; -- 删除数据库 DROP DATABASE 数据库名; 二、增加 1、添加列名、设置主键、设置自动增长列 primary...VALUES只用写一次,写在表头和表值之间。 ②如果列名和列的值不写,则默认添加为空(null),如果数据库设计时存在默认值,则为添加默认值。——2019/11/09更新,感谢评论纠正。...count(列名)只统计非空列。...) FROM t_grade GROUP BY className HAVING SUM(grade)>300; 九、复制表 create table 新表名 select * from 原表名; 十、
SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表...AND & OR – 运算符 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。...如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。...这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。 语法: CREATE TABLE 表 ( 列 int NOT NULL ); 如上,创建一个表,设置列值不能为空。...VIEW – 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
table 表名 chanage 列名 新列名 新数据类型; alter table 表名 modify 列名 新数据类型; 删除列 alter table 表名 drop 列名; 删除(delete...注意: * 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。 聚合函数:将一列数据作为一个整体,进行纵向的计算。 1. count:计算个数 1....一般选择非空的列:主键 2. count(*) 2. max:计算最大值 3. min:计算最小值 4. sum:计算和 5. avg:计算平均值...分组之后查询的字段:分组字段、聚合函数 2. where 和 having 的区别? 1. where 在分组之前进行限定,如果不满足条件,则不参与分组。...人数要大于2个人 SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT
,如果失败则创建一个新的连接请求 2.处理 2.1先查询缓存,检查Query语句是否完全匹配,接着再检查是否具有权限,都成功则直接取数据返回 2.2上一步有失败则转交给‘命令解析器’...VT1-J1这一个虚拟表进行过滤,过滤出所有满足ON 谓词条件的列,生成虚拟表VT1-J2。...注意: 此时因为分组,不能使用聚合运算;也不能使用SELECT中创建的别名; 与ON的区别: 如果有外部列,ON针对过滤的是关联表,主表(保留表)会返回所有的列; 如果没有添加外部列,两者的效果是一样的...GROUP BY 这个子句会把VT2中生成的表按照GROUP BY中的列进行分组。生成VT3表。...注意: 其后处理过程的语句,如SELECT,HAVING,所用到的列必须包含在GROUP BY中,对于没有出现的,得用聚合函数; 原因: GROUP BY改变了对表的引用,将其转换为新的引用方式
SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表...AND & OR – 运算符 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。...如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。...VIEW – 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。...COUNT – 汇总行数 COUNT() 函数返回匹配指定条件的行数。 语法: count() 中可以有不同的语法: COUNT(*) :返回表中的记录数。
<- 点击阅读 本文内容基于 MySQL 5.7.35 源码。 1....Item_field 已关联 Field 第 2 步,创建临时表。...如果当前读取记录的 e1 字段值和前一条记录的 e1 字段值不一样,说明要开始新分组。初始化分组计数,Item_sum_count 类的实例属性 count 设置为 1。...分组,就是把 group by 字段值一样的记录紧挨着放到一起,这样就能知道谁是分组的第一条记录,谁是分组的最后一条记,判断上一个分组结束和新分组开始就非常简单了。...如果当前读取记录的 e1 字段值和前一条记录的 e1 字段值一样,说明还是同一个分组,进入第 4 步。 第 3 步,结束老分组,开启新分组。 结束老分组,把 e1 字段值和分组计数发送给客户端。
pandas 的核心是名叫DataFrame的对象类型- 本质上是一个值表,每行和每列都有一个标签。...使用数字选择一行或多行:也可以使用列标签和行号来选择表的任何区域loc:1.3 过滤使用特定值轻松过滤行。...例如,按流派对数据集进行分组,看看每种流派有多少听众和剧目:Pandas 将两个“爵士乐”行组合为一行,由于使用了sum()聚合,因此它将两位爵士乐艺术家的听众和演奏加在一起,并在合并的爵士乐列中显示总和...除了 sum(),pandas 还提供了多种聚合函数,包括mean()计算平均值、min()、max()和多个其他函数。1.6 从现有列创建新列通常在数据分析过程中,发现需要从现有列中创建新列。...isin(s)]进行同样过滤,另一种写法"""to do the same filter on the index instead of arbitrary column"""df.ix[s]得到一定条件的列
创建表 语法:CREATE TABLE 表名( 列名1 列类型, 列名2 列类型, ); 列数据类型(常用列类型) int...更新记录(行) 语法:UPDATE 表名 SET 列名1=新值1,列名2=新值2 WHERE 条件; 示例:UPDATE student SET age = 16 , name='大大,WHERE...COUNT(列名) 统计满足条件几列 SELECT COUNT(*) FROM student_table; (2). MAX(列名) 计算满足条件最大值 (3)....SELECT class ,COUNT(class) FROM student_table GROUP BY class; 查出student_table表中按class来分组的数据的class字段值,...GROUP BY class ORDER BY COUNT(class) DESC LIMIT 2; 18.
表 ORDER BY 列1 DESC,列2 ASC # 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序,否则一列相同时其他列默认升序排序 表内容操作—分组+聚合 # group by获取各组第一行作为标识...count(1) FROM 表 GROUP BY num # 也可使用 SELECT count(name) FROM students GROUP BY classid # count(1) 和 count...(name)区别 # 如果name中有null则count(name)不记录,其余时候二者完全一样 SELECT count(distinct name) FROM students GROUP BY...group_concat(字符串拼接) # 都会去除null # sum(1) 等于 count(1) 只能针对int类型 # group_concat SELECT id,GROUP_CONCAT...BY classid ); 表内容操作—索引 # 基于B+树 # 数据分的越开的列则建索引效果越好 # OR情况不能用索引 # 如果是联合索引 前部过滤条件可以做为索引 # 在SQL语句前加
1.查询 创建数据库、数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1; --...students where is_delete=0; 求和 sum(列)表示求此列的和 例4:查询男生的总年龄 select sum(age) from students where gender=...by + having having 条件表达式:用来分组查询后指定一些条件来输出查询结果 having作用和where一样,但having只能用于group by select gender,count...思考: 观察两张表发现,citys表比provinces表多一个列proid,其它列的类型都是一样的 意义: 存储的都是地区信息,而且每种信息的数据量有限,没必要增加一个新表,或者将来还要存储区、乡镇信息...,表中的某一列,关联了这个表中的另外一列,但是它们的业务逻辑含义是不一样的,城市信息的pid引用的是省信息的id 在这个表中,结构不变,可以添加区县、乡镇街道、村社区等信息 创建areas表的语句如下:
1.新增操作 --插入单行数据 insert into 表名(列名) values (列值) insert into Department(DepName) values(''); --直接拿现有表数据创建一个新表并填充...select sex as 性别,AVG(Age) as 平均年龄 from Employee group by sex; --使用having子句进行分组筛选 显示分组后count(Age)>1的行...select sex as 性别,AVG(Age) as 平均年龄 from Employee group by Sex having COUNT(Age)>1; --查询前3行的所有数据 select...having COUNT(EmpName)>1 ) and EmpId not in( select Min(EmpId) from student group by EmpName having...COUNT(EmpName)>1 ) --内外连接定义 --SQL内链接:将2张表按照on的条件,返回公共部分 --SQL外连接: 包含左链接和右连接 --INNER JOIN:如果表中有至少一个匹配
group by:如何将上面过滤出的数据按照哪个类分组归类 having:对上面已经分组的数据进行过滤的条件 select:查看结果集中的哪个列也就是哪个字段,或列的计算结果 order by :按照什么样的顺序来查看返回的数据...(6)GROUP BY中的WHERE 和 HAVING 语句 A:WHERE 搜索条件在进行分组操作之前应用,不能使用聚合函数;而 HAVING 搜索条件在进行分组操作之后应用,可以使用聚合函数。...可从多个表中提取数据并组合成新的纪录。 连接查询主要包括内连接、外连接和交叉连接等。...上述查询之所以用到sc表,是因为student和course表没有可以进行连接的列(语义相同的列)。...格式为: SELECT 查询列表序列 INTO 新表名 FROM 数据源 …..其他行过滤、分组等语句 用INTO子句创建的新表可以是永久表,也可以是临时表。
列名 新列名 新数据类型; ALTER TABLE 表名 MODIFY 列名 新数据类型; -- 删除列 DROP TABLE 表名; DROP...DESC:降序 -- 注意:如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。 2. 聚合函数:将一列数据作为一个整体,进行纵向的计算。...COUNT:计算个数 -- 一般选择非空的列:主键 -- count(*) MAX:计算最大值 MIN:计算最小值 SUM:计算和 AVG...分组查询: -- 语法: group BY 分组字段; -- WHERE 和 HAVING 的区别?...,人数要大于2个人 SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 60 GROUP BY sex HAVING COUNT
编辑:王老湿 知识清单 数据分组 创建分组(GROUP BY) 之前学到的筛选操作都是基于整个表去进行的,那如果想要依据某列中的不同类别(比如说不同品牌/不同性别等等)进行分类统计时,就要用到数据分组...在使用GROUP BY时需要注意的几点: GROUP BY子句可以包含任意数量的列,因而可以对分组进行多重嵌套,如按照班级和性别进行分组的话,结果中班级A包含男生组和女生组,班级B也包含男生组和女生组;...使用示例: SELECT col_1,COUNT(*) AS num_col FROM table_1 GROUP BY col_1; 以上即可实现按col_1列中的不同类目进行行数统计。...聚合函数 SQL的聚合函数如下所示: 函数 说明 AVG() 返回某列的均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列的和 使用示例...) THEN(条件一的结果),ELSE(其他不符合条件一的结果),END语句设立了两个条件,即当standard_qty为0或者不存在时我们返回0,当standard_qty不为0时进行计算,并储存为新列
领取专属 10元无门槛券
手把手带您无忧上云