MySQL之DQL详解(单表)

查询作为各大数据库中最为重要的一环,相信每个小伙伴对其都是非常重视的,今天,窝瓜就对于MySQL中,就DQL(单表)的相关操作,给大家一个详细的解释!

简单查询
SELECT * FROM 表名;

这是MySQL中最为简单的一条查询语句,也称为简单查询,结果会返回想要查找表格的全部信息,对于数据量较小的表,这样的查询确实非常方便,但是一旦数据量超过一个界限,恐怕在性能上就要差很多了~

条件查询
SELECT * FROM 表名 WHERE 条件;

条件查询,顾名思义,就是在简单查询的基础之上附带了条件。原本的简单查询,是将数据集的所有信息都显示出来,而在增加了条件之后,就会将结果集进行过滤,留下符合条件的,方便用户观看。

模糊查询
SELECT * FROM 表名 WHERE 列名 LIKE 列值;

如果当我们遇到“查询名字中含有李的学生”、“查询名字是三个字的同学”、“查询男生中姓张的同学”等这样的需求时,就要轮到我们的模糊查询登场了,比如:查询名字中含有李的学生(表名students,表中有着列name,loc,age等)我们就要使用下面的语句进行查询:

SELECT * FROM students WHERE name LIKE '%李%';

像这样,就可以查询出所有名字中含有“李”字的同学了!!

分组查询(纵向查询)

前面的几种查询语句都是针对于记录的查询,也就是对于表中每一行数据的查询,而聚合函数所针对的,则是——列!

例如:给出一张员工表,要求查询出公司人数、工资总和、最大工资等,就要用到聚合函数。

  1. 聚合函数
SELECT 聚合函数(列名) FROM 表名;

上面命令中的聚合函数,在MySQL中一共为大家提供了五种,下面就为大家全部列出:

聚合函数 作用
count(列名) 计数
sum(列名) 求和
max(列名) 最大值
min(列名) 最小值
avg(列名) 平均值

注意:对于count()函数,如果参数为列名,计数方式为如果这一列有值为NULL,就不计数,反之,计数;如果传入参数为“*”或者数字,计数方式就变为如果这一行都为NULL,才不计数,反之,一行中,但凡有一个不为NULL,就要计数!

此处要特别记忆,面试中比较容易考到~

  1. 分组查询

对于分组查询,我们就需要用到关键字“GROUP BY”~

SELECT 列名,聚合函数 FROM 表名 GROUP BY 分组目标列;

例如:查询公司中男女分别有多少人,显然,这是利用性别进行分组,假如一张员工表(staffs)中有sex这个列,代表着性别,查询的方式就如下:

SELECT sex,count(*) FROM staffs GROUP BY sex;

这样,就完成了一次分组查询!

排序

有的时候,为了使得查询的结果更加具有观赏性,我们会对于数据进行排序,在MySQL中,也有着关于排序的语法:

SELECT * FROM 表名 ORDER BY 列名 ASC;

MySQL中,ASC关键字代表升序排列,而降序排列用DESC~

分页查询

对于分页查询,MySQL有着关键字LIMIT,这里要强调,LIMIT关键字只是对于MySQL中有作用,如果此时换成Oracle,就不会在起作用了!

SELECT * FROM 表名 LIMIT 0,5

以上语句的含义是:查询的结果,从第零行开始,每页显示五条记录。

总结

到这里我们来回顾一下这次所讲的查询语句:

SELECT * FROM 表名;//简单查询
SELECT * FROM 表名 WHERE 条件;//条件查询
SELECT * FROM 表名 WHERE 列名 LIKE 列值;//模糊查询
SELECT 聚合函数 FROM 表名;//聚合函数(列查询)
SELECT 列名,聚合函数 FROM 表名 GROUP BY 分组列名;//分组查询(列查询)
SELECT * FROM 表名 ORDER BY ASC/DESC;//排序
SELECT * FROM 表名 LIMIT INT,INT;//分页查询

这一次,对于MySQL中简单DQL的介绍就到这里,如果小伙伴们觉得,DQL就这难度的话,就太小瞧它了~
这次为大家介绍MySQL的DQL之单表查询,下一次,窝瓜将会给大家带来DQL之多表查询详细介绍!!

发布了11 篇原创文章 · 获赞 0 · 访问量 313

猜你喜欢

转载自blog.csdn.net/weixin_43754669/article/details/104067343