DQL是数据查询语言,用来查询数据库中表中的数据。
DQL语句编写顺序和执行顺序:
编写顺序:由上至下
执行顺序:
基本查询
查询多个字段:SELECT 字段1,字段2,字段3... FROM 表名;
查询所有字段: SELECT*FROM 表名;
2.设置别名:SELECT 字段1 [[AS] 别名1],字段2 [[AS]别名2] ...FROM 表名;
3.去除重复记录:SELECT DISTINCT 字段列表 FROM 表名;
条件查询
SELECT 字段列表 FROM表名 WHERE 条件列表;
下面是条件列表:
聚合函数:将一列数据作为一个整体进行纵向计算。注意: 查询时NULL不参与计算
常见的聚合函数:
语法:SELECT 聚合函数(字段列表) FROM 表名[WHERE 条件列表];
注意: 1.SELECT*查询的是整张表有多少列。
分组查询:
SELECT 字段列表 FROM 表名**[WHERE 条件]GROUP BY分组字段名****[HAVING 分组过后的过滤条件];**
注意:WHERE 和HAVING 区别
1.执行实际不同:WHERE是分组之前进行过滤的,不参与分组,HAVING是分组之后对结果进行过滤的。
2.判断条件不同:WHERE不能对聚合函数进行判断,HAVING可以。
3.执行时机:WHERE>聚合函数>HAVING.
4.分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义
排序查询:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 [排序方式1],字段2[ 排序方式2];
排序方式
1.ASC:代表升序
2.DESC:代表降序
注意:
不指定排序方式默认是升序
如果是多字段,当第一个字段值相同时就会按照第二个字段排序。
分页查询:
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
注意:
起始索引从0开始,起始索引数=(查询页码-1)*每页显示的记录数。
分页查询是数据库的方言,不同的数据库有不同的体现,MySQL中是LIMIT。
如果查询的是第一页的数据,起始索引可以省略,直接写成 LIMIT10。