单表查询
语法
select 字段1,字段2...from 表名
where 条件
group by field
having 筛选
order by field
limit 限制条件
关键字执行优先级
from, where, group by, having, select, distinct, order by, limit
where 约束
a 比较运算符 < > <= >= !=
b between 80 and 100 在80-100之间
c in(80,90,100) 值是80,90或100
e like 匹配类似字符 %表示任意多个字符, _表示一个字符
f 逻辑运算符 在多个条件之间可以使用逻辑运算符and or not
group by 分组
分组是发生在where之后得到记录而进行的
分组是将所有记录按照某个相同的字段进行归类
可以按照而已字段分组,但是分组完毕后,比如group by post,只能查看post字段,如果想查看组内信息,需要借助于聚合函数
聚合函数
max() min() avg() sum() count()
小窍门:'每'这个字后面的字段,就是我们分组的依据
having 过滤
having后面一定是分组字段或者聚合函数字段
order by 查询排序
asc 升序 默认升序 desc 降序
多表查询
内连接 只连接匹配的行
select * from 表1 inner join 表2 on 条件
左连接 只显示左表的全部记录
select * from 表1 left join 表2 on 条件
右连接
select * from 表1 left join 表2 on 条件
全连接
左表记录 unoin 右表记录
子查询
将一个查询语句嵌套在另一个查询语句中
内层查询语句的查询结果,可以为外层查询语句提供查询条件
子查询中可以包含:in、not in、any、all、exists和not exists等关键字
还可以包含比较运算符