MySQL学习(5):SQL语句之数据查询语言:DQL

1.DQL语法

select 字段列表
from 表名列表   #DQL是可以进行多表查询的
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序字段列表
limit 分页参数

2.基本查询(select)

2.1查询多字段

select 字段1,字段2,字段3,......from 表名;

select * from 表名;
#显示表内所有数据
#这条命令最好不要用,影响执行效率

2.2设置别名

select 字段1 [as] 别名1,字段2 [as] 别名2,字段3 [as] 别名3......from 表名;
#这条语句的作用就是,让查询结果中的字段名显示为别名,看起来更清晰
#as可以省略

2.3去除重复记录

select distinct 字段列表 from 表名;

3.条件查询(where)

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

where后的条件列表有很多种

比较运算符>大于
<小于
>=大于等于
<=小于等于
<>或!=不等于
=等于
in(...)括号内的值多选一,类似于多个或运算

like 占位符

模糊匹配。

_匹配单个字符,%匹配多个字符

is null查询为空的数据
between A and B在A到B的范围内(包含A、B,A必须>B)
逻辑运算符

and或&&

与,多个条件同时成立
or或||或,多个条件任意一个成立

not或!

非,条件不成立

(1)between...and...

(2)in(...)

(3)like 占位符

4.聚合函数(count、max、min、avg、sum)

select 聚合函数(字段名) from 表名;
聚合函数功能
count统计数量
max求最大值
min求最小值
avg求平均值
sum求和

聚合函数是不对null值进行运算的(包括count)

5.分组查询(group by、having)

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
#where条件是在分组前生效的,having条件是对分组后的字段生效的
#where不可以对聚合函数进行判断,having可以对聚合函数进行判断

上图语句中的第一个gender使结果出现了"男、女",如果省略掉,则只会得到2个数值

count(*)可以当做被检索的目标,因此也就代替了select后的*,也就是字段列表。也就是说,当有聚合函数出现时,select后面就不再跟字段列表了

分组查询往往配合聚合函数进行使用

select workaddress,count(*) from emp group by workaddress;
#这条语句会显示每个地址的人数

select workaddress,count(*) from emp where age < 45 group by workaddress;
#这条语句会显示每个地址下年龄小于45的人数

select workaddress,count(*) from emp where age < 45 group by workaddress having count(*) >= 3;
#对于每个地址下年龄小于45的人数,这条语句会显示这个人数大于等于3的地址与人数

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

6.排序查询

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2......;
#排序方式有2种:ASC、DESC,分别代表升序和降序。如果不填,则默认为升序
#order by后出现多个字段排序时,会在第一个字段相同时,再对第二个字段进行排序

7.分页查询

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

*起始索引=(查询页码-1)*每页显示记录数

*分页查询的关键词在不同的数据库中是不同的,mysql的关键词是limit

*如果查询的是第一页数据,起始索引可以省略

8.执行顺序

如下图所示,蓝色关键字代表语法顺序,红色圈数字代表执行顺序

因为from优先级最高,所以如果给表起了别名,后续就只能使用别名,不能使用表的原名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值