【悄咪咪学MySql】2. DQL Data Query Language 数据查询语言

71 阅读2分钟

一. 语法

SELECT
    字段列表
FROM
    表名列表
WHERE
    条件列表
GROUP BY
    分组字段列表
HAVING  
    分组后条件列表
ORDER BY
    排序字段列表
LIMIT
    分页参数

二. 基本查询

1. 查询多个字段

# 查询特定字段
SELECT 字段1 [[AS] 别名1], 字段2[[AS] 别名2], 字段3[[AS] 别名3], ... FROM 表名;

# 查询所有字段,性能稍弱
SELECT * FROM 表名;

# 结果去重
SELECT DISTINCT 字段列表 FROM 表名;

三. 条件查询

1. 语法

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

2. 条件

比较运算符功能
大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
BETWEEN ... AND ...在某个递增范围内 边界闭合
IN(...)在集合内
LIKE 占位符模糊匹配 _匹配单个字符,%匹配任意个字符
IS NULL是空
逻辑运算符功能
AND 或 &&并且
OR 或 ||或者
NOT 或 !

四. 聚合函数

1. 介绍

将一列数据作为一个整体,进行纵向计算。所有 NULL 值不参与聚合函数计算

2. 常见聚合函数

函数功能
count计数
max最大值
min最小值
avg平均值
sum求和

3. 语法

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

五. 分组查询

1. 语法

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

WHERE 与 HAVING 区别

  • 执行时机不同:WHERE 是分组前过滤,HAVING 是分组后过滤
  • 判断条件不同:WHERE 是不能对聚合函数做判断的,而 HAVING 可以

六. 排序查询

1. 语法

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

2. 排序方式

关键字描述
ASC升序(默认)
DESC降序

七. 分页查询

1. 语法

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

八. 执行顺序

  • FROM
  • WHERE
  • GROUP BY
  • HAVING
  • SELECT
  • ORDER BY
  • LIMIT