1.筛选条件
- 比较运算符:= 等于 >= 大于等于 <= 小于等于 !=(或者<>) 不等于
> 大于 < 小于 is null 空 is not null 非空
- 逻辑运算符:and 与(且)
or 或
not 非(不是)
- 范围查询:between a and b a<=value<=b 连续查询
in 范围内的任意一个 间隔查询
- 模糊查询:like
%任意多个字符 _任意一个字符
例:select *from student where age between 18 and 20 //查询年龄在18-20岁的学生信息
select *from student where age in (18,20) //查询年龄为18岁或20岁的学生信息
select * from student whwre age >20 and sex='男' //查询年龄大于20岁的男生信息
select *from student where name like '张%' //查询姓张的同学的信息
select *from student where name like'张_' //查询姓张的名字是两个字的同学
2.排序与去重
- 排序: select columns from tb_name order by order_col [asc/desc]
asc 正序
desc 降序
- 去重:select distinct columns from tb_name
3.聚合与分组
例如查询90分以上的学生个数,先按学生分组,再使用count聚合函数
- 聚合函数
count(column) 统计个数 sum(column) 求和
max(column) 最大值 min(column) 最小值
avg(column) 平均值
- 分组查询
select group_col, aggregations from tb_name group by group_col
分组情况下,只能出现分组的列和聚合函数生成的列,其他列没有意义
聚合筛选
select group_col, aggregations from tb_name where condition group by group_col
having conditions
注意:(1)where不能筛选聚合函数,having筛选的是聚合函数
(2)where写在group by 之前,having写在group by之后,先执行where,后havin
(3)where不能使用别名,having可以使用别名
4.限制与分页
- 限制结果个数
SELECT columns FROM tb_name LIMIT count; //count是个数
SELECT columns FROM tb_name LIMIT start, count; //从start开始取count个
- 分页
SELECT columns FROM tb_name LIMIT (n-1)*m, m //显示第n页的数据(下标从0开始)