MySQL基本SQL语句3(DQL)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 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 ...

        相关实践学习
        每个IT人都想学的“Web应用上云经典架构”实战
        本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
        MySQL数据库入门学习
        本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
        目录
        相关文章
        |
        2月前
        |
        关系型数据库 MySQL 数据库
        阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
        阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
        |
        2月前
        |
        关系型数据库 分布式数据库 数据库
        阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
        阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
        |
        2月前
        |
        SQL 监控 关系型数据库
        查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
        以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
        351 11
        |
        2月前
        |
        关系型数据库 MySQL 数据库
        阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
        阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
        |
        11月前
        |
        SQL 存储 关系型数据库
        MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
        本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
        |
        SQL 存储 关系型数据库
        MySQL下使用SQL命令进行表结构与数据复制实践
        MySQL下使用SQL命令进行表结构与数据复制实践
        272 0
        |
        SQL 关系型数据库 MySQL
        MySQl数据库第八课-------SQL命令查询-------主要命脉2
        MySQl数据库第八课-------SQL命令查询-------主要命脉
        214 0
        |
        SQL 关系型数据库 MySQL
        MySQl数据库第八课-------SQL命令查询-------主要命脉 1
        MySQl数据库第八课-------SQL命令查询-------主要命脉
        216 0
        |
        SQL 存储 开发框架
        MySQl数据库第六课-------SQl命令的延续------快来看看
        MySQl数据库第六课-------SQl命令的延续------快来看看
        190 0
        |
        SQL 存储 NoSQL
        MySQl数据库第五课 --------在SQl的简单命令--------学习学习
        MySQl数据库第五课 --------在SQl的简单命令--------学习学习
        140 0

        推荐镜像

        更多