DQL
1,select 查询
select 1 + 2;
select now();
select user();
select version
();
2,from 查询
select 查询的字段列表
from 表,表
1,表
2,
...;
查询的字段列表,多个字段用逗号分隔,如果想查询所有字段,可以使用*来表示
3,where查询
关系查询
select * from t_student
where name
= '张三' ;
select name
from t_student
where birth
>= '1995-03-01' ;
select * from t_student
where sex
!= '女' ;
select * from t_student
where sex
<> '女' ;
逻辑查询
select * from t_student
where name
="张三" and sex
= "男";
select * from t_student
where name
= '张三' or birth
='1990-05-01'
区间查询
select * from t_student
where birth
between '1995-01-01' and '2000-01-01' ;
枚举查询
select * from t_student
where name
in ('张三', '李四', '王五', '赵六') ;
模糊查询
select * from t_student
where name
like '张%' ;
select * from t_student
where name
like '%四%' ;
select * from t_student
where name
like '%四' ;
select * from t_student
where name
like '张_' ;
空值查询
select * from t_student
where cardNo
is null;
select * from t_student
where cardNo
is not null ;
分组查询
group by 分组一般和 聚合函数配置使用,完成数据的查询
常见的聚合函数有 :
count: 统计个数 max: 求最大值 min: 求最小值 sum: 求和 avg: 求平均值 空值不参与聚合
查询的列出现在 group by 的后面, 或者 出现在聚合函数中
select sex
, count(sex
) from t_student
group by sex
;
select name
from t_student t
where exists (
select a
.* from
(select f
.sex
, min(f
.birth
) as minbirth
from t_student f
group by f
.sex
) a
where t
.sex
= a
.sex
and t
.birth
= a
.minbirth
)
4,having语句
having 不能单独使用,必须配合 group by 完成对分组的结果进行筛选
where: 对数据库的记录进行筛选, where 比 having 先执行 having:对分组后的结果进行筛选, 能用where筛选数据的不要使用having筛选、、
select name
from t_student
group by sex
, name
having count(1) > 1;
5,order by 排序
对查询的结果进行排序、执行顺序在 select 之后
ASC : 升序排列,默认值DESC: 降序排列
order by 排序字段 【排序规则】
6,limit 分页查询
limit [offset, ] rows
offset : 偏移量,默认从
0开始
rows : 每页显示的条数
page: 页码
offset = (page
-1) * rows ;