MySQL基本SQL语句3(DQL)

举报
爱吃香蕉的阿豪 发表于 2023/11/04 22:05:57 2023/11/04
【摘要】 DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记 录。 上面两句命令用法效果一致,AS可以省略不写。 三、聚合函数 1.常用的聚合函数 聚合函数对一组值执行计算并返回单一的值要注意的是:NULL值不参与所有的聚合函数运算,聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。

目录

前言

一、基础查询

1.查询多个字段

2.查询字段并给字段取别名

3.查询字段并去重

二、条件查询

1.命令语法

2.运算符(比较运算符&逻辑运算符)

3.举例

三、聚合函数

1.常用的聚合函数

2.使用聚合函数的语法

 3.举例

四、分组查询

1.使用分组查询的语法

2.演示

五、排序查询

1.语法

2.演示

六、分页查询

1.语法

2.演示

总结


前言

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



一、基础查询

1.查询多个字段

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


SELECT * FROM 表名 ;                 #      * 号代表查询所有字段

 

2.查询字段并给字段取别名

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

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

上面两句命令用法效果一致,AS可以省略不写。 

3.查询字段并去重

SELECT DISTINCT 字段列表 FROM 表名;

二、条件查询

1.命令语法

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

2.运算符(比较运算符&逻辑运算符)

3.举例

#查年龄等于19的人
SELECT * FROM tb_user WHERE age = 19;

#查询小于等于20岁的
SELECT * FROM tb_user WHERE age <=20;

#查询年龄不等于19岁
SELECT * FROM tb_user WHERE age !=19;

#查询年龄在19和21之间  下面两种命令效果一致
#注意使用BETWEEN小的写左边,大的写右边
SELECT * FROM tb_user WHERE age >= 19 AND age <= 20;
SELECT * FROM tb_user WHERE age BETWEEN 19 AND 20;

#查询年龄等于19或20的人
SELECT * FROM tb_user WHERE age = 19 OR age = 10;
SELECT * FROM tb_user WHERE age IN (19,20);

#查询名字为3个字的人
SELECT * FROM tb_user WHERE `name` LIKE '___';  #这里''中输入的是三个下划线

三、聚合函数

1.常用的聚合函数

聚合函数对一组值执行计算并返回单一的值


2.使用聚合函数的语法

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

要注意的是:NULL值不参与所有的聚合函数运算,聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。

 3.举例

#统计表的用户数量
SELECT  COUNT(*) FROM tb_user;

#统计该表用户平均年龄
SELECT AVG(age) FROM tb_user;

#统计该表用户最大年龄
SELECT MAX(age) FROM tb_user;

#统计该表用户最小年龄
SELECT MIN(age) FROM tb_user;

#统计女员工年龄之和
SELECT SUM(age) FROM tb_user WHERE gender = '女';

四、分组查询

1.使用分组查询的语法

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

where与having区别

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

注意事项:

  1. 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
  2. 执行顺序: where > 聚合函数 > having 。
  3. 支持多字段分组, 具体语法为 : group by columnA,columnB 

2.演示

#根据性别分组,统计男用户和女用户的总数
SELECT gender, COUNT(*) FROM tb_user GROUP BY gender;
#根据性别分组,统计男用户 和 女用户的平均年龄
SELECT gender, AVG(age) FROM tb_user GROUP BY gender;
#查询id值大于3,按年龄分组,获取用户数量大于等于3的年龄值
SELECT age, COUNT(*) FROM tb_user WHERE id > 3 GROUP BY age HAVING count(*) >= 3;

五、排序查询

排序在日常开发中是非常常见的一个操作,有升序排序,也有降序排序。

1.语法

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

  1. ASC : 升序(默认值)
  2. DESC: 降序 

2.演示

#对表按照年龄进行升序排序
SELECT * FROM tb_user ORDER BY age ASC;

#对表按照年龄进行降序排序
SELECT * FROM tb_user ORDER BY age DESC;

#根据年龄对表进行升序排序,年龄相同者再根据id进行降序排序
SELECT * FROM tb_user ORDER BY age asc , id desc;	

注意:

如果是升序, 可以不指定排序方式ASC ;

 如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ; 

六、分页查询

1.语法

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

2.演示

#查询第1页用户数据, 每页展示5条记录
SELECT * FROM tb_user LIMIT 0 , 5;

#查询第2页用户数据, 每页展示5条记录  & (页码-1)*页展示记录数
SELECT * FROM	tb_user LIMIT 5 ,5;


总结

 DQL语句的执行顺序为: from ... where ... group by ... having ... select ... order by ... limit ...

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。