详解DQL查询语句 - 极悦
首页 课程 师资 教程 报名

详解DQL查询语句

  • 2021-01-27 17:47:37
  • 876次 极悦

我们都知道SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。其中DQL也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用,共同构成了DQL查询语言的核心部分。本文我们就来聊一聊DQL查询语句

 

下面我们就通过4个应用实例,来深入分析DQL查询语句。

 

1.排序

select 字段 from 表名 where 字段=值 order by 字段 asc|desc;

asc 升序

desc 降序

 

组合排序

select * from 表名 order by age desc ,math desc;

 

2.聚合函数

max(列名):求这一列的最大值

min(列名):求这一列的最小值

avg(列名):求这一列的平均值

count(列名):统计这一列有多少条记录

sum(列名):对这一列求总和

 

-- 查询学生总数

select count(id) as 总人数 from student;

select count(*) as 总人数 from student;

-- 查询年龄大于 20 的总数

select count(*) from student where age>20;

-- 查询数学成绩总分

select sum(math) 总分 from student;

-- 查询数学成绩平均分

select avg(math) 平均分 from student;

-- 查询数学成绩最高分

select max(math) 最高分 from student;

-- 查询数学成绩最低分

select min(math) 最低分 from student;

 

3.limit语句

LIMIT 是限制的意思,所以 LIMIT 的作用就是限制查询记录的条数。

LIMIT offset,length;

offset:起始行数,从 0 开始计数,如果省略,默认就是 0

length: 返回的行数

 

SELECT *|字段列表 [as 别名] FROM 表名 [WHERE 子句] [GROUP BY 子句][HAVING 子句][ORDER BY 子句][LIMIT 子句];

-- 查询学生表中数据,从第 3 条开始显示,显示 6 条。

select * from student3 limit 2,6;

-- 如果第一个参数是 0 可以省略写:

select * from student3 limit 5;

 

4.分组

分组查询是指使用 GROUP BY 语句对查询信息进行分组,相同数据作为一组

SELECT 字段 1,字段 2... FROM 表名 GROUP BY 分组字段 [HAVING 条件];

GROUP BY 怎么分组的?

将分组字段结果中相同内容作为一组,如按性别将学生分成 2 组。

 

-- 按性别进行分组,求男生和女生数学的平均分

select sex, avg(math) from student3 group by sex;

 

having 与 where 的区别

子名 作用

where 子句 1) 对查询结果进行分组前,将不符合 where 条件的行去掉,即在分组之前过滤数据,即先过滤

再分组。

2) where 后面不可以使用聚合函数

having 子句 1) having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,即先分组再过滤。

2) having 后面可以使用聚合函数

 

事实上,DQL查询语句的用法远不止于此,我们除了要掌握DQL的基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块,还要学会DQL语句的标准语法,才能真正意义上掌握DQL查询语句。在本站的MySQL教程中,对其他类别的SQL查询语句也有详细的介绍,感兴趣的小伙伴可以前去观看学习,拓展新的知识领域。

 

 

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交