在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
DQL查询语句又叫数据库查询语句,这是Java学习者在学习MySQL时,必须了解和掌握的知识点之一。众所周知,DQL查询语句有四种查询方式:排序查询、聚合函数、分组查询和分页查询。下面让我们一一仔细梳理这四种查询方式,有需要学习的小伙伴赶紧来看看MySQL学习总结之DQL查询语句的知识点吧!

1、排序查询
(1)语法:order by 子句
order by 排序字段1 排序方式1 , 排序字段2 排序方式2...
(2)排序方式:
ASC:升序,默认的。
DESC:降序。
(3)注意:
如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。
2、聚合函数:将一列数据作为一个整体,进行纵向的计算。
(1)count:计算个数
一般选择非空的列:主键
count(*)
(2)max:计算最大值
(3)min:计算最小值
(4)sum:计算和
(5)avg:计算平均值
注意:聚合函数的计算,排除null值。
解决方案:选择不包含非空的列进行计算;IFNULL函数。
3、分组查询:
(1)语法:group by 分组字段。
(2)注意:分组之后查询的字段:分组字段、聚合函数
(3)where 和 having 的区别?
where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来;where 后不可以跟聚合函数,having可以进行聚合函数的判断。
-- 按照性别分组。分别查询男、女同学的平均分
SELECT sex , AVG(math) FROM student GROUP BY sex;
-- 按照性别分组。分别查询男、女同学的平均分,人数
SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;
-- 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;
-- 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人。
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
SELECT sex , AVG(math),COUNT(id) 人数 FROM student WHERE math > 70 GROUP BY sex HAVING 人数 > 2;
4. 分页查询
(1)语法:limit 开始的索引,每页查询的条数;
(2)公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数
-- 每页显示3条记录
SELECT * FROM student LIMIT 0,3; -- 第1页
SELECT * FROM student LIMIT 3,3; -- 第2页
SELECT * FROM student LIMIT 6,3; -- 第3页
(3)limit 是一个MySQL"方言"
关于MySQL学习总结之DQL查询语句的内容就讲到这里了,相信大家对于四种查询方式已经了解的差不多了。要想学习了解更多MySQL相关的知识点,可以上博学谷进行Java课程的试听体验,相信一定不会让大家失望。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Activiti五大特点,你都知道吗?
Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。本文主要是以Activiti的特点角度去带大家认识什么是Activiti,给大家一个引导和认识。
12946
2019-07-23 10:18:40
Redis哨兵模式免费教程
哨兵(Sentinel)主要是为了解决在主从复制架构中从Redis宕机和主Redis宕机的情况。Redis-Sentinel是用于管理Redis集群:监控(Monitoring、提醒(Notification)、自动故障迁移(Automatic failover)。
6462
2019-12-04 11:26:30
Java网络编程入门教程
网络编程在两个或两个以上的设备之间传输数据。程序员把数据发送到指定的位置或者接收到指定的数据,这是狭义的网络编程范畴。在发送和接收数据时,大部分的程序设计语言都设计了专门的API实现这些功能,程序员调用即可,基础的网络编程和打电话一样简单。
7448
2019-12-04 14:53:50
Java基础语法之多线程学习笔记整理
众所周知,利用好多线程机制,可以大大提高系统整体的并发能力以及性能,而且线程间的切换和调度的成本小。因此,多线程是Java学习者必须掌握的语法重点。本文为大家整理了进程和线程、实现多线程方式、设置和获取线程名称、线程优先级和线程控制等等多线程知识点笔记,有需要的朋友一起来学习吧!
7858
2019-12-09 14:33:59
程序员常用的JVM 配置参数汇总
JVM可以算是初级程序员进阶高级程序员必须要掌握的核心技能之一。另外,在许多面试过程中,JVM也是检验Java程序员能力水平的试金石。今天我们不谈Java底层实现的原理,而是为大家整理汇总了一些常见的,希望对大家编写代码有所帮助。
7057
2020-03-04 18:08:39
