MySQL基本SQL语句3(DQL)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记 录。 上面两句命令用法效果一致,AS可以省略不写。 三、聚合函数1.常用的聚合函数聚合函数对一组值执行计算并返回单一的值要注意的是:NULL值不参与所有的聚合函数运算,聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。四、分组查询1.使用分组查询的语法where与having区别注意事项:五、排序查询排序在日常开发中是非常常见的一个操作,

目录

前言

一、基础查询

1.查询多个字段

2.查询字段并给字段取别名

3.查询字段并去重

二、条件查询

1.命令语法

2.运算符(比较运算符&逻辑运算符)

3.举例

三、聚合函数

1.常用的聚合函数

2.使用聚合函数的语法

3.举例

四、分组查询

1.使用分组查询的语法

2.演示

五、排序查询

1.语法

2.演示

六、分页查询

1.语法

2.演示

总结


前言

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


一、基础查询

1.查询多个字段

SELECT 字段1, 字段2, 字段3 ... FROM 表名 ;

image.gif

SELECT * FROM 表名 ;                 #      * 号代表查询所有字段

image.gif

2.查询字段并给字段取别名

SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;

SELECT 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... FROM 表名;

上面两句命令用法效果一致,AS可以省略不写。

image.gif

3.查询字段并去重

SELECT DISTINCT 字段列表 FROM 表名;

image.gif

二、条件查询

1.命令语法

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

2.运算符(比较运算符&逻辑运算符)

image.gif

image.gif

3.举例

#查年龄等于19的人
SELECT * FROM tb_user WHERE age = 19;
#查询小于等于20岁的
SELECT * FROM tb_user WHERE age <=20;
#查询年龄不等于19岁
SELECT * FROM tb_user WHERE age !=19;
#查询年龄在19和21之间  下面两种命令效果一致
#注意使用BETWEEN小的写左边,大的写右边
SELECT * FROM tb_user WHERE age >= 19 AND age <= 20;
SELECT * FROM tb_user WHERE age BETWEEN 19 AND 20;
#查询年龄等于19或20的人
SELECT * FROM tb_user WHERE age = 19 OR age = 10;
SELECT * FROM tb_user WHERE age IN (19,20);
#查询名字为3个字的人
SELECT * FROM tb_user WHERE `name` LIKE '___';  #这里''中输入的是三个下划线

image.gif

三、聚合函数

1.常用的聚合函数

聚合函数对一组值执行计算并返回单一的值

image.gif

2.使用聚合函数的语法

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

要注意的是:NULL值不参与所有的聚合函数运算,聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。

3.举例

#统计表的用户数量
SELECT  COUNT(*) FROM tb_user;
#统计该表用户平均年龄
SELECT AVG(age) FROM tb_user;
#统计该表用户最大年龄
SELECT MAX(age) FROM tb_user;
#统计该表用户最小年龄
SELECT MIN(age) FROM tb_user;
#统计女员工年龄之和
SELECT SUM(age) FROM tb_user WHERE gender = '女';

image.gif

四、分组查询

1.使用分组查询的语法

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

where与having区别

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

    注意事项:

      1. 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
      2. 执行顺序: where > 聚合函数 > having 。
      3. 支持多字段分组, 具体语法为 : group by columnA,columnB

      2.演示

      #根据性别分组,统计男用户和女用户的总数
      SELECT gender, COUNT(*) FROM tb_user GROUP BY gender;
      #根据性别分组,统计男用户 和 女用户的平均年龄
      SELECT gender, AVG(age) FROM tb_user GROUP BY gender;
      #查询id值大于3,按年龄分组,获取用户数量大于等于3的年龄值
      SELECT age, COUNT(*) FROM tb_user WHERE id > 3 GROUP BY age HAVING count(*) >= 3;

      image.gif

      五、排序查询

      排序在日常开发中是非常常见的一个操作,有升序排序,也有降序排序。

      1.语法

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

        1. ASC : 升序(默认值)
        2. DESC: 降序

        2.演示

        #对表按照年龄进行升序排序
        SELECT * FROM tb_user ORDER BY age ASC;
        #对表按照年龄进行降序排序
        SELECT * FROM tb_user ORDER BY age DESC;
        #根据年龄对表进行升序排序,年龄相同者再根据id进行降序排序
        SELECT * FROM tb_user ORDER BY age asc , id desc;

        image.gif


        注意:

        如果是升序, 可以不指定排序方式ASC ;

        如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ;

        六、分页查询

        1.语法

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

        2.演示

        #查询第1页用户数据, 每页展示5条记录
        SELECT * FROM tb_user LIMIT 0 , 5;
        #查询第2页用户数据, 每页展示5条记录  & (页码-1)*页展示记录数
        SELECT * FROM tb_user LIMIT 5 ,5;

        image.gif


        总结

        DQL语句的执行顺序为: from ... where ... group by ... having ... select ... order by ... limit ...

        相关实践学习
        如何在云端创建MySQL数据库
        开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
        全面了解阿里云能为你做什么
        阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
        目录
        相关文章
        |
        16天前
        |
        SQL 存储 关系型数据库
        SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
        本文介绍了SQL的基础语言类型(DDL、DML、DCL、DQL),并详细说明了如何创建用户和表格,最后推荐了几款适合初学者的免费SQL实践平台。
        69 3
        SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
        |
        15天前
        |
        SQL 存储 缓存
        MySQL进阶突击系列(02)一条更新SQL执行过程 | 讲透undoLog、redoLog、binLog日志三宝
        本文详细介绍了MySQL中update SQL执行过程涉及的undoLog、redoLog和binLog三种日志的作用及其工作原理,包括它们如何确保数据的一致性和完整性,以及在事务提交过程中各自的角色。同时,文章还探讨了这些日志在故障恢复中的重要性,强调了合理配置相关参数对于提高系统稳定性的必要性。
        |
        14天前
        |
        SQL 关系型数据库 MySQL
        MySQL 高级(进阶) SQL 语句
        MySQL 提供了丰富的高级 SQL 语句功能,能够处理复杂的数据查询和管理需求。通过掌握窗口函数、子查询、联合查询、复杂连接操作和事务处理等高级技术,能够大幅提升数据库操作的效率和灵活性。在实际应用中,合理使用这些高级功能,可以更高效地管理和查询数据,满足多样化的业务需求。
        49 3
        |
        17天前
        |
        SQL 关系型数据库 MySQL
        MySQL导入.sql文件后数据库乱码问题
        本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
        |
        19天前
        |
        SQL 存储 关系型数据库
        MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
        本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
        |
        4月前
        |
        SQL 关系型数据库 数据库
        |
        6月前
        |
        SQL 前端开发 关系型数据库
        零基础学习数据库SQL语句之查询表中数据的DQL语句
        零基础学习数据库SQL语句之查询表中数据的DQL语句
        41 0
        |
        6月前
        |
        SQL 关系型数据库 MySQL
        MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
        MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
        65 0
        |
        SQL 关系型数据库 MySQL
        Mysql数据库 4.SQL语言 DQL数据查询语言 查询
        Mysql数据库 4.SQL语言 DQL数据查询语言 查询
        83 0
        |
        3月前
        |
        关系型数据库 MySQL 网络安全
        5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
        5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")

        推荐镜像

        更多
        下一篇
        DataWorks