MySQL

MySQL基础——DQL语句

2022-06-12  本文已影响0人  白巧克力LIN

在上篇文章中,我们学习了MySQL基础——DML语句,这篇文章学习MySQL基础——DQL语句。

DQL语句

DQL英文全称是Data Query Language(数据查询语言),用来查询数据库中的表的记录。

接下来的代码演示使用数据表结构如下:
数据表数据如下:

基本查询

基本查询语法格式如下:

# 查询多个字段
SELECT 字段1,字段2,字段3... FROM 表名;          #查询字段1,字段2,字段3的数据
SELECT * FROM 表名;                          #查询数据表中所有字段的数据

示例代码如下:

SELECT uname,upwd,usex FROM students;       # 查询字段为uname ,upwd,usex 的所有数据
SELECT * FROM student;                     # 查询数据表中所有字段的数据

如下图所示:



当我们需要去除重复的查询结果时,可以使用DISTINCT关键字,语法格式如下:

SELECT DISTINCT 字段列表 FROM 表名;

示例代码如下:

SELECT DISTINCT uname,upwd,usex FROM students;      # 查询字段为uname ,upwd,usex 的所有数据并去重
SELECT DISTINCT * FROM students;                   # 查询数据表中所有字段的数据并去重

如下图所示:


条件查询

条件查询语法格式如下:

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

我们可以选择如下表的条件:

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

示例代码如下:

SELECT * FROM students WHERE usex!='男';                 # 查询数据表中usex不等于男的数据
SELECT * FROM students WHERE uname LIKE '小_';           # 查询数据表中uname有小的数据

如下图所示:


聚合函数

将一列数据作为一个整体,进行纵向计算,常见的聚合函数有:

注意:所有的聚合函数都不计算NULL值。

语法格式如下:

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

示例代码如下:

SELECT count(*) FROM students;          # 统计数据表中数据总条数
SELECT sum(uid) FROM students;          # 求数据表中uid的和

如下图所示:


分组查询

分组查询语法格式如下:

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

WHERE与HAVING区别:

注意:

示例代码如下:

SELECT usex, count(*) FROM students GROUP BY usex;              # 以usex为分组条件查询所有数据
SELECT usex, avg(uid) FROM students WHERE uid>4 GROUP BY usex;    #以usex为分组条件查询uid大于4数据
SELECT usex, count(*) FROM students GROUP BY usex HAVING count(*)>4;  # 以usex为分组条件查询uid大于4且总数大于4

如下图所示:


排序查询

排序查询语法格式如下:

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

排序方式有:

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

示例代码如下:

SELECT * FROM students ORDER BY uid ASC;    # 查询students数据表中所有数据并以uid升序排序
SELECT * FROM students ORDER BY uid DESC; # 查询students数据表中所有数据并以uid降序排序

如下图所示:


分页查询

分页查询语法格式如下:

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

注意:

示例代码如下:

SELECT * FROM students LIMIT 0,10;      #查询students数据表中第一页的十条数据
SELECT * FROM students LIMIT 10,10;         #查询students数据表中第二页的十条数据

如下图所示:



由于第二页没有数据,所以输入为0。

DQL执行顺序:FROM -> WHERE ->GROUP BY -> HAVING -> SELECT ->ORDER BY ->LIMIT

好了,MySQL基础——DQL语句就学到这里了,下篇文章学习MySQL基础——DCL语句。

上一篇 下一篇

猜你喜欢

热点阅读