MySQL基本SQL语句3(DQL)

目录

前言

一、基础查询

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 ...

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃香蕉的阿豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值