DQL——数据查询语言

DQL全称是Data Query Language,即数据查询语言,主要是查询数据库中表的记录。DQL语法结构为:

select

        字段列表

from

        表名列表

where

        条件列表

group by

        分组字段列表

having

        分组后条件列表

order by

        排序字段列表

limit

        分页参数

 一、基本查询

注:下列语句中紫色字体为固定内容,黑色字体改为具体信息

#查询多个字段数据
select 字段1,字段2,…… from 表名;
#查询全部字段数据
select * from 表名;

#设置别名

select 字段1 as 别名1,字段2 as 别名2,…… from 表名;

#去除重复记录

select distinct 字段1,字段2,…… from 表名;

注:设置别名语句中,as可以省略。例如:select name '姓名',age as 年龄from users;

二、条件查询

 

 接下来,我们介绍一下between…and…,is null,in(…),like这四个稍难理解的运算符。

 注:下列语句中紫色字体为固定内容,黑色字体改为具体信息

#条件查询

select 字段列表 from 表名 where 条件列表

#between…and…

#查询users表中age字段的值处于[19,20]的数据(左右都是闭区间)

select * from users where age between 19 and 20;

#查询users表中age字段的值处于[10,20]并且sex字段的值为'女'的数据

select * from users where age between 10 and 20 and sex='女';

 #is null

#查询telephone_number字段为空的数据(telephone_number==null是错误写法!!!)

select * from users where telephone_number is null;

#in(…)

#查询age字段的值为19或20的数据

select * from users where age in(19,20);

#like->占位符——模糊匹配(_匹配单个字符,%匹配任意个字符)

#查询name字段的长度为3的数据(like不是只能比较字符类型的字段,整型类型也适用)select * from users where name like('_ _ _');

#查询name字段第一位是'黄'的数据(第一位是'黄',后面可以匹配任意个字符。)

select * from users where name like('黄%');

#查询name字段长度为4并且第一位是'B'的数据

select * from users where name like('B_ _ _');

 三、聚合函数

常用的聚合函数有以下几个:

 注:聚合函数作用于纵向数据计算

        下列语句中紫色字体为固定内容,黑色字体改为具体信息

 #聚合函数语法

select 聚合函数(字段列表) from 表名;

#统计整张表中的数据量

select count(*) from users;

#统计整张表中name字段的数据量(name字段中为null的数据不被记录)

select count(name) from users;

四、分组查询 

 注:下列语句中紫色字体为固定内容,黑色字体改为具体信息
        [ ]内的内容可以省略。

#分组查询语法

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

 where与having的区别

  • 执行时机不同:where是分组之前过滤,不满足where条件的不参与分组;而having是对分组后的数据进行过滤。
  • 判断条件不同:where不能对聚合函数进行判断,而having可以。

#对男女进行分组,并分别统计男、女的数量

select sex,count(sex) from users group by sex; 

#查询年龄小于50岁的人数,然后按照地址分类,获取人数大于等于2的地址

select address,count(address) from users where age<50 group by address having count(address)>=2;

五、排序查询 

 注:下列语句中紫色字体为固定内容,黑色字体改为具体信息

#排序查询语法

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2…;

 如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
     排序方式:asc—升序(默认值)        desc—降序

#根据sex字段进行降序排序,若sex字段的值相同时,则根据age字段的值升序排序。
select * from users order by sex desc,age;

六、分页查询 

注:下列语句中紫色字体为固定内容,黑色字体改为具体信息

#分页查询语法

select 字段列表 from 表名 limit 起始索引,查询记录数;

 起始索引从0开始
    分页查询是数据库的方言,不同数据库有不同的实现,MySQL中是limit
    如果查询的是第一页数据,那么
起始索引可以省略,简写为limit 10;(获取前十条数据)

#按照age字段降序排序,然后从索引为4的数据开始查询两条数据(第四、五条)

select * from users order by age desc limit 4,2;

七、DQL语句的执行顺序 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Binkkkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值