DQL的使用与理解

DQL

DQL是对表中的数据进行查询的操作。

 

它主要分为5个形式的查询,基础查询,条件查询,分组查询,排序查询,分页查询。

 

查询语法是     select 字段列表    from 表名列表  where  条件列表  group by  分组字段  having  分组后条件  order  by 排序字段  limit  分页限定   

 

基础查询--主要语法是select 字段列表 from 表名;

(1)、查询多个字段

                                  select 字段列表 from 表名;

                                  select * from 表名;(查询所有数据)

 

这是语句

 

这是运行结果

 

 

 如果想要查询name  age 两列的话

这是语句

 

 这是运行结果

 

 同理,如果想要查询多列,只需要将列名依次添加到age后面,然后用“,”隔开。

(2)、去除重复记录

                                  select distinct 字段列表 from 表名;

 

如果想要查询address信息,则

需要以下语句

 

 运行结果是

 

 这明显不是我们想要的结果,因为出现了三个香港,两个湖南,怎样才能将重复的去掉呢?

其实就是在address前面加上distinct就可以

代码如下

 

 运行结果

 

 这明显达到了我们的需求。

(3)、起别名

                                  as:as也可以省略

as的语法作用就是在预览的时候更加方便。

让我们看以下两种语句

 

 其运行结果是

 

 另一种语句

 

 其运行结果是

 

 

这样我们可以明显的看到区别,第二种表将math,和English换成了数学和英语。这在之后会是非常容易看懂的方法。。。

条件查询--基础语法是select 字段列表 from 表名 where 条件列表;

这里补充一些条件符号

---------------------------------------------------------------------------------------------------

=                                            等于

<>或!=                                不等于

between ...and...                  在某个范围内

in(...)                                 多选一

like                                         模糊查询   _单个任意字符   %多个任意字符

is  null                                    是null

is not null                               不是null

and或&&                                并且

or或||                                      或者

not或!                                   不是

----------------------------------------------------------------------------------------------------

 

这里举几个不熟悉的例子

查询年龄在20岁到30岁之间的学院信息

这是初始表格

 

 

如下语句

 

 这两种语句的运行结果都是

 

 若查询年龄等于18或者等于20或者等于22的学院信息

如下语句

 

上述两种语句运行结果都是

 

 

like的模糊查询

模糊查询    _单个任意字符   %多个任意字符

初始表格

如查询姓马的学员信息

如下语句

 

 运行结果

 

 如查询第二个字是花的学员信息

如下语句

 

 运行结果

 

 

 如查询名字中包含德的需恶缘信息

如下语句

 

 运行结果

 

 

 排序查询--主要语法select 字段列表 from 表名 order by 排序字段1 排序方式1,排序字段2 排序方式2,...;

排序方式:

ASC   升序排列(默认)

DESC 降序排列

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

如查询学生信息,按照数学成绩降序排列,如果数学成绩一样,再按照英语成绩升序排列

初始表格

语句如下

 

 运行结果

 

 分组查询--select 字段列表 from 表名 where 分组条件 group by分组字段名 having 分组后条件过滤

聚合函数--主要语法是 select 聚合函数名(列名)from 表;

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

-----------------------------------------------------------------------

count()                             统计数量(一般不为空)

max()                               最大值

min()                                 最小值

sum()                                 求和

avg()                                  平均值

-----------------------------------------------------------------------

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

执行顺序:where>聚合函数>having

 

where和having区别:

执行时机不一样,where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。

可判断的条件不一样,where不能对聚合函数进行判断,having可以。

 

若查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数不大于2.

原始表格

如下语句

 

 

运行结果

 

 

 

分页查询--主要语法 select 字段列表 from 表名 limit 起始索引,查询条目数;

起始索引从0开始’

计算公式:起始索引=(当前页码-1)*每页显示的条数

 

 

 

 

 

这就是本次DQL的学习与分享。。。

 

posted @   周+⑦  阅读(621)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示