DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。
查询关键字: SELECT
-
基本查询(不带任何条件)无语法
-
1.查询多个字段
- elect 字段1, 字段2, 字段3 ... from 表名 ;
- select * from 表名 ;
-
2.字段设置别名
- select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ] ... from 表名;
- select 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... from 表名;
-
3.去除重复记录
- select distinct 字段列表 from 表名;
-
-
条件查询(WHERE)
-
语法
- select 字段列表 from 表名 where 条件列表 ;
-
比较运算符 功能
- > 大于
- >= 大于等于
- < 小于
- <= 小于等于
- = 等于
- <> 或 != 不等于
- BETWEEN ... AND ... 在某个范围之内(含最小、最大值)
- IN(...) 在in之后的列表中的值,多选一
- LIKE 占位符 模糊匹配(_匹配单个字符, %匹配任意个字符)
- IS NULL 是NULL
-
逻辑运算符 功能
- AND 或 && 并且 (多个条件同时成立)
- OR 或 或者 (多个条件任意一个成立)
- NOT 或 ! 非 , 不是
-
-
排序查询(order by)
-
语法:
- select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2 ;
-
排序方式
- ● ASC : 升序(默认值)
- ● DESC: 降序
-
注意事项:
- 如果是升序, 可以不指定排序方式ASC ;
- • 如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ;
-
-
分页查询
-
语法
- select 字段列表 from 表名 limit 起始索引, 查询记录数 ;
-
注意事项:
- • 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
- • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
- • 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。
-
-
● 分组查询(group by)
-
语法:
- select 字段列表 from 表名 [ where 条件 ] group by 分组字段名 [ having 分组后过滤条件 ];
-
where与having区别
- ● 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- ● 判断条件不同:where不能对聚合函数进行判断,而having可以。
-
注意事项:
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
- • 执行顺序: where > 聚合函数 > having 。
- • 支持多字段分组, 具体语法为 : group by columnA,columnB
-
-
聚合函数
-
语法
- select 聚合函数(字段列表) from 表名 ;
-
介绍
- 将一列数据作为一个整体,进行纵向计算 。
-
. 常见的聚合函数
- 函数 功能
- count 统计数量 (对于count(*) 、count(字段)、 count(1)三种使用方式,建议大家使用count(*),因为数据库底层对此专门做了优化)
- max 最大值
- sum 求和
- avg 平均值
- min 最小值。
-
注意 : NULL值是不参与所有聚合函数运算的