二、select语句
- 从表中选出数据
使用select语句就是,从中选出数据的意思
通过SELECT语句查询并选取出必要数据的过程称为匹配查询或查询
select <列名>
from <表名> - 选数据时的条件
where <条件表达式>
select *
from table1
where year=1999
- 相关
*代表的是全部列
设定汉语别名用双引号"
distinct可以用来排重,删除重复的行
单行注释–
多行注释/**/
三、对表进行聚合查询
- 聚合函数
count计算表中的记录数
sum计算表中数值列中数据的合计值
avg计算表中数值列中数据的平均值
max求出表中任意列中数据的最大值
min求出表中任意列中数据的最小值 - 排重
distinct 去除重复数据 - 规则
count(*) 会得到包含null的数据行数,而count(<列名>) 会得到null之外的数据行数
聚合函数会将null排除在外,但count(*) 例外,并不会排除null
max/min函数几乎适用于所有数据类型的列,sum/avg函数只适用于数值类型的列
想要计算值的种类时,可以在count函数的参数中使用distinct
在聚合函数的参数中使用distinct,可以删除重复数据
四、分组
- group by 会将null作为一组特殊数据进行处理
- 书写位置
在where里头 - 注意事项
在group by中自定义的别名,在select中可以使用
在select中自定义的别名,在group by中不可以使用,因为在DBMS中 select子句在group by子句后执行
五、对聚合结果指定条件
having
和where的区别
where子句只能指定记录(行)的条件,而不能用来指定组(经过上边分的组)的条件,可以在group by后使用having子句,having的用法类似where
SELECT product_type, COUNT(*)
FROM product
GROUP BY product_type
HAVING product_name = '圆珠笔';
六、排序
order by
在这里头可以使用别名
使用的顺序
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY