MySQL基本SQL语句3(DQL)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 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
        目录
        相关文章
        |
        6天前
        |
        SQL 关系型数据库 MySQL
        SQL语句编写的练习(MySQL)
        这篇文章提供了MySQL数据库中关于学生表、课程表、成绩表和教师表的建表语句、数据插入示例以及一系列SQL查询练习,包括查询、排序、聚合和连接查询等操作。
        |
        7天前
        |
        SQL 关系型数据库 MySQL
        MySQL】-DQL(基本、条件、分组、排序、分页)详细版
        通过这些查询方法,你可以高效地检索、分析和组织MySQL数据库中的数据,以满足各种应用需求。实践中,理解这些SQL语句的基础知识以及它们如何组合起来进行复杂的数据操作是至关重要的。
        15 1
        |
        10天前
        |
        SQL 关系型数据库 MySQL
        MySQL中一定要遵守的12个SQL规范
        本文档提供了12条SQL编写和数据库管理的最佳实践建议,旨在帮助开发者提高SQL查询效率、增强数据库安全性及可维护性。
        |
        7天前
        |
        SQL 关系型数据库 MySQL
        Go语言中进行MySQL预处理和SQL注入防护
        在现代Web应用开发中,安全性至关重要。SQL注入是一种常见的攻击方式,攻击者可通过构造特殊SQL查询来非法访问或修改数据库数据。本文介绍如何利用Go语言中的预处理SQL语句来防范此类攻击。预处理不仅能提升安全性,还能提高性能并简化代码。通过使用`?`作为占位符,Go自动处理参数转义,有效避免SQL注入。此外,文章还提供了连接MySQL数据库、执行预处理查询以及最佳实践的示例代码。务必遵循这些指导原则,确保应用程序的安全性。
        16 0
        |
        8天前
        |
        SQL 存储 Oracle
        MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行
        MySQL 项目中 SQL 脚本更新、升级方式,防止多次重复执行
        18 0
        |
        19天前
        |
        SQL 关系型数据库 数据库
        |
        2月前
        |
        SQL 前端开发 关系型数据库
        零基础学习数据库SQL语句之查询表中数据的DQL语句
        零基础学习数据库SQL语句之查询表中数据的DQL语句
        22 0
        |
        2月前
        |
        SQL 关系型数据库 MySQL
        MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
        MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
        42 0
        |
        8月前
        |
        SQL 关系型数据库 MySQL
        Mysql数据库 4.SQL语言 DQL数据查询语言 查询
        Mysql数据库 4.SQL语言 DQL数据查询语言 查询
        68 0
        |
        27天前
        |
        SQL 存储 监控
        SQL Server的并行实施如何优化?
        【7月更文挑战第23天】SQL Server的并行实施如何优化?
        45 13

        热门文章

        最新文章