8,DQL

下面是黑马程序员展示试题库数据的页面

image-20210722215838144

页面上展示的数据肯定是在数据库中的试题库表中进行存储,而我们需要将数据库中的数据查询出来并展示在页面给用户看。上图中的是最基本的查询效果,那么数据库其实是很多的,不可能在将所有的数据在一页进行全部展示,而页面上会有分页展示的效果,如下:

image-20210722220139174

当然上图中的难度字段当我们点击也可以实现排序查询操作。从这个例子我们就可以看出,对于数据库的查询时灵活多变的,需要根据具体的需求来实现,而数据库查询操作也是最重要的操作,所以此部分需要大家重点掌握。

接下来我们先介绍查询的完整语法:

为了给大家演示查询的语句,我们需要先准备表及一些数据:

接下来咱们从最基本的查询语句开始学起。

8.1 基础查询

8.1.1 语法

 

8.1.2 练习

8.2 条件查询

8.2.1 语法

条件列表可以使用以下运算符

image-20210722190508272

8.2.2 条件查询练习

8.2.3 模糊查询练习

模糊查询使用like关键字,可以使用通配符进行占位:

(1)_ : 代表单个任意字符

(2)% : 代表任意个数字符

8.3 排序查询

8.3.1 语法

上述语句中的排序方式有两种,分别是:

注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

 

8.3.2 练习

8.4 聚合函数

8.4.1 概念

==将一列数据作为一个整体,进行纵向计算。==

如何理解呢?假设有如下表

image-20210722194410628

现有一需求让我们求表中所有数据的数学成绩的总和。这就是对math字段进行纵向求和。

8.4.2 聚合函数分类

函数名功能
count(列名)统计数量(一般选用不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值

8.4.3 聚合函数语法

注意:null 值不参与所有聚合函数运算

 

8.4.4 练习

8.5 分组查询

8.5.1 语法

注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

 

8.5.2 练习

where 和 having 区别:

 

8.6 分页查询

如下图所示,大家在很多网站都见过类似的效果,如京东、百度、淘宝等。分页查询是将数据一页一页的展示给用户看,用户也可以通过点击查看下一页的数据。

image-20210722230330366

接下来我们先说分页查询的语法。

8.6.1 语法

注意: 上述语句中的起始索引是从0开始

 

8.6.2 练习

从上面的练习推导出起始索引计算公式: