DQL操作
1. 完整单表查询:select 字段 from 表名 where 条件 group by 分组字段 having 分组后条件列表 order by 排序字段 limit 分页参数
2. 查询多个字段对应的数据:select 字段名1,字段名2 from 表名
3. 查询全部数据:select * from 表名
4. 设置字段别名:select 字段名1 [as 别名1], 字段名2 [as 别名2] from 表名
5. 去除重复数据:select distinct 字段名 from 表名
6. 根据条件查询:select 字段 from 表名 where 条件
条件
符号 | 含义 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<>或!= | 不等于 |
(not) between..and.. | (不)在某个范围之内,字符也能用:between ‘A’ and ‘C’ |
in(..) | 在in之后的列表中的值,多选一 |
like 占位符 | 模糊查询,_表示单个字符,%表示任意字符 |
is null | 为null |
and或&& | 并且,多个条件同时成立 |
or或|| | 或者,多个条件有一个成立 |
not或! | 非,不是 |
聚合函数
select 聚合函数(字段列表) from 表名
eg:select count(*) from 表名 select count(字段名) from 表名
常见聚合函数:
count() | 统计数量(不包含null值) |
max() | 最大值 |
min() | 最小值 |
avg() | 平均值 |
sum() | 求和 |
例如:
select count(字段名) from 表名
select count(*) from 表名
select avg(字段名) from 表名
select max(字段名) from 表名
select min(字段名) from 表名
select sum(字段名) from 表名
其他查询
1. 分组查询
select 字段 from 表名 where 条件 group by 分组字段 having 分组后条件列表
注意:where是在分组之前去掉不满足where条件的值,不参与分组!!
where不能对聚合函数进行判断,但是having可以!!
2. 排序查询
select 字段 from 表名 order by 字段1,排序方式1,字段2,排序方式2
注意:只有当排序方式1相同才会根据排序方式2排序!!
3. 分页查询
select 字段 from 表名 limit 起始索引,查询记录数
注意:起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数!!
eg:查询第一页的10条数据:select * from 表名 limit 0,10
eg:查询第二页的10条数据:select * from 表名 limit (2-1)*每页显示记录数,10
4. 使用正则表达式
使用regexp或 not regexp (或 rlike和 not rlike) 来操作正则表达式。
eg:查询name以g,f,s开头的全部数据:select * from 表名 where name regexp '^[gfs]';
eg:查询name以A-H开头的全部数据:select * from 表名 where name regexp '^[a-h]';
eg:查询name不以A-H开头的全部数据:select * from 表名 where name regexp '^[^a-h]';
5. 多列结合起别名
select name, concat(字段名1, ', ', 字段名2, ', ', 字段名3) as 别名 from 表名;
注意:', '表示用逗号将多个字段的值隔开!!