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的学习与分享。。。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性