【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)

引言

在上一节中,我们讨论了DML的使用方法,本节我们继续开始DQL的学习。

首先回归一下DQL的基于定义:

DQL(Data Query Language) :数据查询语言,用来查询数据库中表的记录

在本节中我们主要讨论DQL的用法以及基本语法,话不多说,我们开始吧。

DQL语句

DQL-基本查询

数据查询的语句中包括了很多数据查询的操作,常用的DQL数据查询语法如下:

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

下面我们从基本的查询出发开始逐步介绍条件查询等内容。

查询多个字段

想要查询多个字段可以使用下面的两种语法:

SELECT 字段1,字段2,字段3... FROM 表名;

SELECT * FROM 表名;

其中,第一条语句可以选择其中的部分字段,而第二句可以查询所有的字段,其中*表示通配符全部。

下面我们进行实践,我们首先创建一个测试表格其中包括多条语句,下面是我创建的表。
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第1张图片
当我们键入第二条语句时,可以看到所有的数据都已经被查询出来:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第2张图片
接下来我们根据第一句的语法,执行查询语句把所有的字段写到SQL语句中。

【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第3张图片
可以看到,所有的记录还是被查询出来了。

注意:在实际的开发中,最好不要撰写*通配符,而要把所有的字段都写上,因为这样更直观。

设置别名

在实际查询的过程中,我们可以为字段设置别名。在合适的时间设置别名有助于我们对数据表的字段理解,设置别名的语句如下所示:

SELECT 字段1[AS 别名1],字段2[AS 别名2] ... FROM 表名;

例如,当我们想要查询上述的表格,但是我们希望为NAME设置别名USERNAME,可以按照如下的方式进行查询:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第4张图片
可以看到数据表中的字段已经被我们更改了别名。

去除重复记录

在某些情况下,我们希望查询的记录中不要有重复的内容,就可以用下面的语句:

SELECT DISTINCT 字段列表 FROM 表名;

在这里本例就不做示范了。

DQL-条件查询

在条件查询中,有一个通用的语法如下:

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

在WHERE后需要我们编写的是条件列表,可以撰写一些限制条件来满足我们不同的查询需求。

查询条件运算符

当我们需要进行条件查询时,需要用到很多查询条件运算符,这就需要我们对不同的运算符功能做了解:

比较运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
= 等于
!= 或 <> 不等于
BETWEEN… AND… 在某个范围之内(含最大、最小值)
IN(…) 在in之后的列表中的值
LIKE 模糊匹配(_匹配单个字符,%匹配多个字符)
IS NULL 是NULL

除上述比较运算符外,我们需要一些逻辑运算符来进行逻辑查询的编写:

逻辑运算符 功能
AND 或 && 并且
OR 或者
NOT 或 ! 非,不是

DQL-聚合函数

将一列数据作为一个整理进行计算的函数

常见的聚合函数

聚合函数可以帮助我们完成很多聚合的功能,常用的聚合函数如下:

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

聚合函数的语法

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

注意:所有的聚合函数是不计算null值的

例如我们需要统计某表中的年龄书名,可以使用如下的操作:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第5张图片
而当我们输入进行*字段的count操作时却出现的如下的情况:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第6张图片
这就是因为上述的聚合函数在计算的过程中发现其他字段有4个所计算出来的结果,但是由于AGE字段中有一个null,所以计算出来为3。

DQL-分组查询

分组查询的语法

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

WHERE和HAVING的区别:
执行时机不同:WHERE是分组之前进行过滤,不满足WHERE条件,不参与分组;而HAVING是分组之后对结果进行过滤。
判断条件不同:WHERE不能对聚合函数进行判断,而HAVING可以。

分组查询的例子

例如,我们有一张图书表格如下所示:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第7张图片
我们想查询两种图书种类的数量,可以按照下面的语句方式查询:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第8张图片

注意:
执行顺序: WHERE>聚合函数>HAVING
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段没有任何意义

DQL-排序查询

排序查询的语法

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

排序方式:
ASC:升序(默认值)
DESC:降序

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

排序查询的例子

例如,我们想要按照升序对某员工表进行查询,我们可以使用如下的语句:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第9张图片
当我们希望年龄相同的员工的入职时间排降序的时候,可以按照下面的内容操作:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第10张图片

DQL-分页查询

分页查询的语法

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

注意:
起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
分页查询是数据库的方言,不同的数据库有不同的实现,MySQL是LIMIT。
如果查询的是第一页数据,起始索引可以省略,直接简写为limit10。

分页查询的例子

例如在一个数据表EMP中,我们想要使用第一页的十个数据,可以使用下面的操作:
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第11张图片
这样就会返回第一页的十条数据,此时若我们想要查询第二页数据,可以使用
【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第12张图片
另外,不同的数据库中分页查询的实现是不同的,在mysql中实现是LIMIT。

DQL-执行顺序

数据查询的语句中包括了很多数据查询的操作,常用的DQL数据查询语法如下:

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

同时这也是我们编写DQL语句的顺序,但是执行顺序与编写顺序并不相同。

DQL语句的执行顺序为:

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

我们在编写DQL语句的时候,要注意SQL的执行顺序,否则可能会导致最后的执行不成功。

总结

本次列举了SQL中DQL的相关语句,在实际学习的过程中还需要多学习以及使用才能熟练掌握。

余下的SQL内容我也将持续更新,如果感兴趣的话不妨订阅本专栏或者点个关注,我们下次再见。

【建议收藏】数据库 SQL 入门——数据查询操作(内附演示)_第13张图片

你可能感兴趣的:(SQL入门,数据库,sql,mysql)