6、【MySQL】使用DQL命令查询数据(二)

这篇具有很好参考价值的文章主要介绍了6、【MySQL】使用DQL命令查询数据(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

6、【MySQL】使用DQL命令查询数据(二)

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。

🍎个人主页:乐趣国学的博客

🍊个人信条:不迁怒,不贰过。小知识,大智慧。

💞当前专栏:MySQL数据库学习之旅

✨特色专栏:国学周更-心性养成之路

🥭本文内容:【MySQL】使用DQL命令查询数据(二)

更多内容点击👇

                       ​​​​【MySQL】使用DQL命令查询数据(一)

目录

1、分组查询

2、HAVING子句

3、LIMIT


6、【MySQL】使用DQL命令查询数据(二)

1、分组查询

1)什么是分组查询

        在实际的开发中,可能需要先对一组数据进行分组,然后再对每一组的数据进行操作,这时需要用到分组查询。

        用 GROUP BY 语句根据一个或多个列对结果集进行分组。

2)GROUP BY 语法结构

        select...from...group by...

3)关键字的执行顺序问题

        select(4)...from(1)...where(2)...group by(3)...order by(5)...//顺序不能颠倒

4)案例编写

        查询每个部门的部门编号和每个部门的工资和:
        SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;


        查询每个部门的部门编号以及每个部门的人数:
        SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;


        查询每个部门的部门编号以及每个部门工资大于1500的人数:
        SELECT deptno,COUNT(*) FROM emp WHERE sal>2500 GROUP BY deptno;

5)重要规定

  • GROUP BY子句可以包含任意数目的列。这使得能对分组进行嵌套, 为数据分组提供更细致的控制。
  • 如果在GROUP BY子句中嵌套了分组,数据将在最后规定的分组上 进行汇总。换句话说,在建立分组时,指定的所有列都一起计算(所以不能从个别的列取回数据)。
  • GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用表达式,则必须在 GROUP BY子句中指定相同的表达式。不能使用别名。
  • 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子 句中给出。
  • 如果分组列中具有NULL值,则NULL将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。
  • GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。

6、【MySQL】使用DQL命令查询数据(二)

2、HAVING子句

1)什么是HAVING 子句

        在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。

        HAVING子句用于指定过滤分组结果(GROUP BY)或聚合计算结果的条件。

2)HAVING语法:

        HAVING bool_expression

3)关键字的执行顺序问题

        select(5)...from(1)...where(2)...group by(3)...order by(6)...having(4)...//顺序不能颠倒

4)案例编写

        查询工资总和大于9000的部门编号以及工资和:
        SELECT `deptno`,SUM(sal) AS sumSal FROM emp GROUP BY deptno HAVING sumSal>20000;

注:having与where的区别:

        1)having是在分组后对数据进行过滤.

              where是在分组前对数据进行过滤

        2)having后面可以使用分组函数(统计函数)

              where后面不可以使用分组函数。

        WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

6、【MySQL】使用DQL命令查询数据(二)

3、LIMIT

1)什么是 LIMIT 子句

        LIMIT用来限定查询结果的起始行,以及总行数,强制 SELECT 语句返回指定的记录数。可以用来分页。

2)LIMIT语法

        select...from...limit...

3)Limit子句参数用法

        Limit接受一个或两个数字参数。参数必须是一个整数常量。

        一个参数:它表示返回最大的记录数。从第一行开始算。

        两个参数:参数1是指定第一个返回的记录行的索引+1,参数2是最后返回最大的记录数

4)查询顺序

        查询语句书写顺序:select – from- where- group by- having- order by-limit

        查询语句执行顺序:from - where -group by - having - select - order by-limit  

5)Limit子句在MySQL中的性能分析

        Limit子句高效率:避免全表扫描,提高查询效率。

        MySQL的limit给分页带来了极大的方便,但数据量大的时候,limit的性能就急剧下降。

6)案例编写

        查询5行记录,起始行从0开始
        SELECT * FROM emp LIMIT 0,5;

        查询10行记录,起始行从3开始
        SELECT * FROM emp LIMIT 3,10;


        码文不易,本篇文章就介绍到这里,如果想要学习更多数据库系列知识,请关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

6、【MySQL】使用DQL命令查询数据(二)文章来源地址https://www.toymoban.com/news/detail-402049.html

到了这里,关于6、【MySQL】使用DQL命令查询数据(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql 数据库DQL 数据查询语言 SELECT 基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询——包含DQL所有查询语句。吐血分享。

    DQL:数据查询语言; 用来对表内的数据进行查找 。Database Query Language SQL语句分为:基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询。  可以发现name字段就只剩下一个张三了;   条件: 条件查询—比较运算符 比较运算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    浏览(45)
  • MySQL之DQL——查询语言

    前言         今天给大家带来关于数据库查询相关操作,希望各位看官能看个愉快   目录 一、基本概念 1.1、基本概念 1.2、SQL语言的分类 1.3、数据库的存储特点 二、MySQL   2.1、 MySQL服务的登录和退出   2.2、 MySQL服务的启动和停止 2.3、MySQL常见数据指令 2.4、MySQL语法规范

    2023年04月24日
    浏览(32)
  • 十、MySQL(DQL)条件查询

    :表示且 and:表示且 between……and……:between之后为最小值,and之后为最大值 or:表示或 in(参数1,参数2,参数3……):符合参数即可输出 _下划线:每一个下划线,代表一个占位 %数字:表示从末尾开始匹配,符合即可输出

    2024年02月10日
    浏览(31)
  • MySQL多表查询 子查询效率(DQL语句)

    项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种: 一对多(多对一) 多对多 一对一 一对多 部门与员工的关系:一个部门对应多个员工,一

    2023年04月08日
    浏览(39)
  • MySQL-DQL-分组查询

    语法: select 字段列表 from 表名[ where 条件 ] group by 分组字段名 [ having 分组后过滤条件 ]; group by 具体代码 having 具体代码 where 和having区别( 面试题目 ) 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是 对分组后对结果进行过滤 判断条件不

    2024年02月16日
    浏览(26)
  • MySQL-DQL-排序查询

    语法 条件查询:select 字段列表 from 表名 [where条件列表 ][group by 分组字段] order by 字段1 排序方式1,字段2 排序方式2.....; 排序方式 ASC:升序(默认值) 具体代码 DESC:降序 具体代码 既使用升序又使用降序 具体代码 如果是多字段排序时,当前面一个字段相同时,才会根据第

    2024年02月16日
    浏览(29)
  • DML操作表和DQL查询表(学会并使用数据库day2)

    DML操作是用于对表中的记录进行增删改操作。 1 .插入操作 解析: INSERT INTO 表名:表示往哪张表中添加数据 (字段名 1, 字段名 2, …):要给哪些字段设置值 VALUES (值 1, 值 2, …):设置具体的值 插入全部字段–方法一(所有的字段名都写出来) 插入全部字段–方法二(不写字段

    2024年02月15日
    浏览(32)
  • 十二、MySQL(DQL)分组/排序/分页查询如何实现?

    (1)基础语法: (2)注意事项: (3)理解:          select后的“字段列表”是由from后的参数决定的,where的执行时间在分组操作之前,having的执行时间在分组操作之后。 执行时间:where分组操作having 新的数据类型 (1)根据性别分组,并统计男女员工的数量 (2)根

    2024年02月10日
    浏览(36)
  • 学习笔记-数据查询语言DQL

    1.基本语法 2.数据准备 3.简单查询 4.条件查询 (1)比较查询 (2).范围查询 (3).逻辑查询 (4).模糊查询 (5).非空查询 5.排序查询 ASC 升序 (默认) DESC 降序 6.聚合查询 7.分组查询 having与where的区别: 1).having是在分组后对数据进行过滤,where是在分组前对数据进行过滤 2).having后面可以使用分

    2024年02月02日
    浏览(51)
  • [JavaWeb]SQL介绍-DQL查询数据

    DQL查询基础的语法结构如下: 说明 语法 查询多个字段 SELECT 字段列表 FROM 表名; SELECT * FROM 表名; -- 查询所有数据 去除重复记录 SELECT DISTINCT 字段列表 FROM 表名; 起别名 列名 AS 别名 (AS也可以省略) 条件查询的语法很简单但是要结合不同的条件表达式去使用 SELECT 字段列表 FRO

    2024年02月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包