MySQL数据库----DQL语句

发布于:2025-07-07 ⋅ 阅读:(18) ⋅ 点赞:(0)

1,DQL语句----介绍

DQL英文全称是 Data Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。
查询关键字:SELECT

2,DQL语句----语法

SELECT 字段列表
FROM 表名列表
WHERE 条件列表
GROUP BY 分组字段列表
HAVING 分组后条件列表
ORDER BY 排序字段列表
LIMIT 分页参数

2.1DQL语句----基本查询

1, 查询多个字段:
SELECT 字段1, 字段2, 字段3 … FROM 表名;
SELECT * FROM 表名;

2, 设置别名:
SELECT 字段1[AS 别名1], 字段2[AS 别名2] … FROM 表名;

3,去除重复记录
SELECT DISTINCT 字段列表 FORM 表名;

表tb_user

id name age gender
1 itheima 10
2 huaqing 20
3 lifusheng 26
4 hanhan 30

【示例:】
----1,查询指定字段,name , age ,gender
答案: select name,age,gender from tb_user;

----2,查询所有字段
答案:select * from tb_user;

----3,查询所有员工的年龄,起别名
答案:select age as ‘年龄’ from tb_user;

----4,查询公司员工的年龄(不要重复)
答案:select distinct age from tb_user;

2.2 DQL语句----条件查询(WHERE)

SELECT 字段列表 FROM 表名 WHERE 条件列表;

在这里插入图片描述
【示例:】
----1,查询年龄等于10的员工
答案:select * from tb_user where age = 10;

----2,查询年龄小于 26 的员工信息
答案:select * from tb_user where age < 26;

----3,查询年龄小于等于 26 的员工信息
答案:select * from tb_user where age <= 26;

----4,查询年龄不等于 26 的员工信息
答案:select * from tb_user where age != 26;

----5, 查询年龄为空的员工信息
答案:select * from tb_user where age is null;

----6, 查询年龄不为空的员工信息
答案:select * from tb_user where age is not null;

----7,查询年龄在 15岁(包含)到 20岁(包含)之间的员工信息
答案:select * from tb_user where age >= 15 && age <= 20;
select * from tb_user where age >= 15 and age <= 20;
select * from tb_user where age between 15 and 20;

----8,查询年龄等于 10 或 20 或 26 的员工信息
答案:select * from tb_user where age = 10 or age = 20 or age = 26;
select * from tb_user where age in(10,20,26);

2.3 DQL语句----聚合函数(count, max, min, avg, sum)

1,聚合函数介绍 :
将一列数据作为一个整体,进行纵向计算。

2,常见聚合函数

函数 功能
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和

这些聚合函数都是针对表的某一列的。

3,语法

SELECT 聚合函数(字段列表) FROM 表名;

【示例:】
----1,统计该企业员工数量
答案:select count(*) from tb_user;
select count(age) from tb_user;

----2,统计该企业员工的平均年龄
答案:select avg(age) from tb_user;

----3,统计该企业员工的最小年龄
答案:select min(age) from tb_user;

----4,统计该企业员工的最大年龄
答案:select max(age) from tb_user;

2.4 DQL语句----分组查询

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

where 与 having 区别
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤。
判断你条件不同:where不能对聚合函数进行判断,而having可以。

【示例:】
----1,根据性别分组,统计男性员工和女性员工的数量
答案:select gender,count(*) from tb_user group by gender;

----2,根据性别分组,统计男性员工和女性员工的平均年龄
答案:select gender , avg(age) from tb_user group by gender;

----3,查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
答案:select workaddress , count(*) from tb_user where age < 45 group by workaddress;

2.5 DQL语句----排序查询

1,语法

SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;

2,排序方式
ASC: 升序(默认值)
DESC: 降序

【示例:】
----1,根据年龄对公司的员工,进行升序排序
答案:select * from tb_user order by age asc;
select * from tb_user order by age desc;

----2,根据年龄对公司的员工进行升序排序,年龄相同,再按照入职时间进行降序排序
答案:select * from tb_user order by age asc , entrydate desc;

2.6 DQL语句----分页查询

SELECT 字段列表 FROM 表名 LIMT 起始索引 , 查询记录数;

【注意】
1, 起始索引从 0 开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
2,分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是 LIMIT。
3, 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10;

【示例:】
----1,查询第一页员工数据,每页展示 1 条记录
答案: select * from tb_user limit 0,1;

----2,查询第 2 页员工数据,每页展示 1 条记录
答案: select * from tb_user limit 1,1;

3 DQL语句----执行顺序

3.1 DQL语句–编写顺序

在这里插入图片描述

3.2 DQL语句–执行顺序

在这里插入图片描述

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到