基本查询
select * from 表名; //查询所有字段
select 字段1,字段2... from 表名 //查询多个字段
select 字段1 [as] 别名1,字段2 [as] 别名2...from 表名 //设置别名
select distinct 字段列表 from 表名; //去除重复记录
条件查询
select 字段列表 from 表名 where 条件列表;
select 字段列表 as '别名' from 表名; //设置别名
select distinct 字段列表 from 表名; //去重
select * from 表名 where 字段列表 is null; //为空
符号 | 描述 | 备注 |
---|---|---|
= | 等于 | |
<>, != | 不等于 | |
> | 大于 | |
< | 小于 | |
<= | 小于等于 | |
>= | 大于等于 | |
BETWEEN | 在两值之间 | >=min&&<=max |
NOT BETWEEN | 不在两值之间 | |
IN | 在集合中 | |
NOT IN | 不在集合中 | |
<=> | 严格比较两个NULL值是否相等 | 两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0 |
LIKE | 模糊匹配 | |
REGEXP 或 RLIKE | 正则式匹配 | |
IS NULL | 为空 | |
IS NOT NULL | 不为空 |
聚合函数
- AVG() - 返回平均值
- COUNT() - 返回行数
- FIRST() - 返回第一个记录的值
- LAST() - 返回最后一个记录的值
- MAX() - 返回最大值
- MIN() - 返回最小值
- SUM() - 返回总和
分组查询
select 字段列表 from 表名 [where条件] group by 分组字段名 [having 分组后过滤条件];
where与having 区别:
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤
判断条件不同:wehere不能对聚合函数进行判断,而having可以
排序查询
select 字段列表 from 表名 order by 字段1 排列方式1, 字段2 排列方式2;
排序方式
asc:升序(默认值)
desc:降序
如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序
分页查询
select 字段列表 from 表名 limit 起始索引,查询记录数;
起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
分页查询是数据库的方言,不同的数据库有不同的实现,MYSQL中是LIMIT
如果查询的是第一页数据,起始索引可以省略,直接简写为linmit 10