DQL

查询语法

select
	字段列表
from
	表名列表
where
	条件列表
group by
	分组字段
having
	分组后条件
order by
	排序字段
limit
	分页限定

基础查询

查询多个字段

select 字段列表 from 表名;
select * from 表名; -- 查询所有字段

去除重复记录

select distinc 字段列表 from 表名

起别名

as <别名>  -- as 也可以省略

条件查询

条件查询语法

select 字段列表 from 表名 where 条件列表;

条件

符号 功能
> 大于
< 小于
>= 大于等于
<= 小于大于
= 等于
<> 或 != 不等于
between …… and 在某个范围之内(都包含)
in( …… ) 多选
like 占位符 模糊查询 _单个任意字符 , %多个任意字符
is null 是 null
is not null 不是null
and 或 && 并且
or 或 || 或者
not 或 ! 非, 不是

排序查询

排序查询语法

select 字段列表 from 表名 order by 排序字段名1 排序方式1,  排序字段名2 排序方式2 ……;

排序方式

asc   升序排列(默认值)
desc  降序排列
-- 当如果有多个排序条件,当前面的条件值一样时,才会根据第二条件进行排序

聚合函数

将一列数据只作为一个整体,进行纵向计算

聚合函数分类

函数名 功能
count(列名) 统计数量(一般选用不为null的列)
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg(列名) 平均值

聚合函数的语法

select 聚合函数名(列名) from 表;

**null 只不参加所有聚合函数的运算 **

分组查询

分组查询语法

select 字段列表 from 表名 [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];

分组之后查询的字段为聚合函数和分组字段,查询其他字段无任何意义

where 和 having 区别

~ 执行时机不一样: where 是分组前进行限定,不满足分组条件,则不参与分组,而having 是分组之后对结果进行过滤

~可判断的条件不一样: where 不能对聚合函数进行判断, having 可以.

执行顺序: where > 聚合函数 > having

分页查询

分页查询语法

select 字段列表 from 表名 limit 起始索引, 查询条目数

起始索引从 0 开始

计算公式: 起始索引 = (当前页码 - 1) * 每页显示的条数

tips:

~分页查询是MySQL的方言

~Oracle分页查询采用 rownumber

~SQL Server 分页查询使用 top

posted @ 2022-07-20 23:47  我就一水  阅读(171)  评论(0)    收藏  举报