MySQL基础DQL(四)

DQL语句—数据查询语言—data query language

select选择
where从条件中选择
in 在....内
between ...and 在....范围内
like 模糊查询 用% —通配符

1简单查询

1.1.查询表所有数据
使用表示所有列—一般不使用查询所有—*查询效率低
一般会写所有的查询字段名
SELECT * FROM 表名;
在这里插入图片描述
1.2.查询指定列
写出查询每列的名称
SELECT 字段名1, 字段名2, 字段名3, … FROM 表名;
在这里插入图片描述
1.3.别名查询
查询指定列的数据,多个列之间以逗号分隔
SELECT 字段名1, 字段名2… FROM 表名;
在这里插入图片描述
1.4.消除重复值distinct

  1. 查询时给列、表指定别名需要使用AS关键字

  2. 使用别名的好处是方便观看和处理查询到的数据
    SELECT 字段名1 AS 别名, 字段名2 AS 别名… FROM 表名;
    SELECT 字段名1 AS 别名, 字段名2 AS 别名… FROM 表名 AS 表别名;

    在这里插入图片描述
    注意:

    查询给表取别名目前还看不到效果,需要到多表查询的时候才能体现出好处
    AS关键字可以省略
    

1.5.查询结果参与运算
查询指定列并且结果不出现重复数据
SELECT DISTINCT 字段名 FROM 表名;

在这里插入图片描述

2.条件查询

关键字 where+条件
语法格式:SELECT 字段名 FROM 表名 WHERE 条件;
流程:

取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回

2.2比较运算符

大于
<小于
<=小于等于
=大于等于
=等于
<>、!=不等于

2.3逻辑运算符

and(&&) 多个条件同时满足
or(||) 多个条件其中一个满足
not(!) 不满足
in关键字
语法格式:SELECT 字段名 FROM 表名 WHERE 字段 in (数据1, 数据2...);
in里面的每个数据都会作为一次条件,只要满足条件的就会显示

2.4范围

BETWEEN 值1 AND 值2 表示从值1到值2范围,包头又包尾
比如:age BETWEEN 80 AND 100
相当于: age>=80 && age<=100

2.5like

LIKE表示模糊查询
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';
满足通配符字符串规则的数据就会显示出来
所谓的通配符字符串就是含有通配符的字符串
MySQL通配符有两个:
%: 表示0个或多个字符(任意个字符)
_: 表示一个字符

3.排序

通过ORDER BY子句,可以将查询出的结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)

SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];
ASC: 升序, 默认是升序---ascent上升
DESC: 降序---descend下降
order 命令 /顺序

3.1单列排序
单列排序就是使用一个字段排序

SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC];

3.2组合排序
加粗样式组合排序就是先按第一个字段进行排序,如果第一个字段相同,才按第二个字段进行排序,依次类推。

SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];

3.3 聚合函数
之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个结果值。另外聚合函数会忽略空值
五个聚合函数:

1.count: 统计指定列记录数,记录为NULL的不统计
统计:SELECT   COUNT(字段名)   FROM   表名
2.sum: 计算指定列的数值和,如果不是数值类型,那么计算结果为0
求和:SELECT   SUM(字段名)   FROM   表名
3.max: 计算指定列的最大值
最大值:SELECT  MAX(字段名)   FROM   表名
4.min: 计算指定列的最小值
最小值:SELECT   MIN(字段名)   FROM   表名
5.avg: 计算指定列的平均值,如果不是数值类型,那么计算结果为0
求平均值:SELECT   AVG(字段名)   FROM   表名

聚合函数的使用:写在 SQL语句SELECT后 字段名的地方

SELECT 字段名... FROM 表名;

解决聚合函数忽略空值的问题:ifnull(exper1,exper2)—如果第一个参数部位null,则IFNULL()的返回值expr1;否则其返回值为exper2

SELECT 聚合函数(ifnull(字段名,默认值)) FROM  表名

3.4分组查询
分组查询是指使用 GROUP BY语句对查询信息进行分组,相同数据作为一组

SELECT 字段1,字段2... FROM 表名 GROUP BY 分组字段 [HAVING 条件];
SELECT 字段1,字段2....FROM 表名  WHERE 条件 GROUP BY  分组字段  HAVING 条件;

having与where的区别

- having是在分组后对数据进行过滤.
- where是在分组前对数据进行过滤
- having后面可以使用聚合函数
- where后面不可以使用聚合函数

3.5limit语句—常用于分页
LIMIT是限制的意思,所以LIMIT的作用就是限制查询记录的条数。

SELECT *|字段列表 [as 别名] FROM 表名 [WHERE子句] [GROUP BY子句][HAVING子句][ORDER BY子句][LIMIT子句];

LIMIT语法格式:

LIMIT offset,length;   或者limit length;
offset是指偏移量,可以认为是跳过的记录数量,默认为0
length是指需要显示的总记录数

注意:

- 如果第一个参数是0可以简写:
  SELECT * FROM student3 LIMIT 0,5;
  SELECT * FROM student3 LIMIT 5;
- LIMIT 10,5; -- 不够5条,有多少显示多少

DQL语句的标准
查询语句的依据:

SELECT 字段, 聚合函数 FROM 表名 WHERE 条件GROUP BY   条件 HAVING 条件 ORDER BY 条件 asc/desc LIMIT
offset,length
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值