Mysql DQL语句使用

全面介绍MySQL DQL查询语句的使用,包括基本查询、条件查询、聚合函数、分组查询、排序查询和分页查询等功能的详细说明

DQL语句(数据查询语言,用来查询数据库中表的数据)

基本语法

-	select 字段列表
-	from 表名列表
-	where 条件列表
-	group by 分组字段列表
-	having 分组后条件列表
-	ordey by 排序字段列表
-	limit 翻页参数

基本查询

  1. 查询字段

    • 查询多个字段select 字段1,字段2,字段3...from 表名
    • 查询所有字段select * from 表名
  2. 设置别名select 字段[as 别名1],[as 别名2]...from表名

  3. 去除重复记录select distinct 字段列表 from 表名

条件查询

  1. 语法

    • select 字段列表 from 表名 where 条件列表;
  2. 条件

    • 比较运算符功能逻辑运算符功能
      >大于AND&&并且(多个条件同时成立)
      >=大于等于OR||或者(多个条件任意一个成立)
      <小于NOT!非,不是
      <=小于等于
      =等于
      <>!=不等于
      BETWEEN … AND …在某个范围之内(含最小、最大值)
      IN(…)在 in 之后的列表中的值(多选一)
      LIKE模糊匹配(_匹配单个字符,%匹配任意字符)
      IS NULL是 NULL

聚合函数

  1. 介绍

    • 将一列数据为一个整体,进行纵向计算
  2. 常见的聚合函数

    • 函数功能
      count统计数量
      max最大值
      min最小值
      avg平均值
      sum求和
  3. 语法

    • select 聚合函数(字段列表) from 表名;

分组查询

  1. 语法
    • select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后的过滤条件]
      • where条件和having条件的区别:
        • 执行时机不同:where是分组之前执行,不满足where条件,不参加分组,而having是对分组之后的结果进行过滤
        • 判断条件不同:where不能对聚合函数进行判断,而having可以

排序查询

  1. 语法
    • select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
      • 排序方式:
        • asc:升序(默认)
        • desc:降序

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

分页查询

  1. 语法
    • select 字段列表 from 表名 limit 起始索引,查询记录
      • 注意
        • 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
        • 分页查询是数据库的方言,因为不同的数据库有不同的是实现方法,MySQL中使用的是的limit
        • 如果查询的第一页数据,起始索引可以省略,直接简写成limit 10

执行顺序和执行顺序

编写顺序(书写SQL时的顺序)

  1. SELECT - 字段列表
  2. FROM - 表名列表
  3. WHERE - 条件列表
  4. GROUP BY - 分组字段列表
  5. HAVING - 分组后条件列表
  6. ORDER BY - 排序字段列表
  7. LIMIT - 分页参数

执行顺序(数据库实际执行的顺序)

顺序关键字作用对应编写顺序编号
1FROM确定数据来源表2
2WHERE行级条件过滤3
3GROUP BY分组操作4
4HAVING组级条件过滤5
5SELECT选择输出字段/聚合计算1
6ORDER BY结果排序6
7LIMIT分页限制7