数据库技能实战进阶之常用结构化sql语句(中)
短信预约 -IT技能 免费直播动态提醒
在上篇文章中我们介绍到查询里面关于order by对查询结果的排序处理,接下来我们将介绍其他的一部分操作。
10、limit 限制查询结果条数
在mysql数据库里面我们要想显示前10行,或者第x行到n行之类的格式显示,这时limit将是我们最好的选择。
select * from user limit 5; #显示前5行
1 kailinux javadocker
2 LInuxmysql NULL
3 python NULL
4 LInux redis
5 linux 0
假如我们想看倒数3行,但是limit不支持倒序,我们可以用以前的方式实现
select * from user limit 21,3;
26 redispyhon
27 PYthon234
28 winner1234
从3开始显示5条
select * from user limit 3,5;
4 LInux redis
5 linux 0
6 redis name
7 kailinux javadocker
8 LInux redis
11、mysql 常用函数
连接函数concat()
语法:CONCAT(str1,str2,...) 可以用来拼接查询结果,
select CONCAT(username,'*****',password) from user #将user表的username和password列用4
个****拼接。
结果:
kailinux*****javadocker
LInuxmysql*****NULL
python*****NULL
LInux*****redis
linux*****0
用下划线或者横线拼接
kailinux_javadocker
LInuxmysql_NULL
python_NULL
LInux_redis
kailinux-javadocker
LInuxmysql-NULL
python-NULL
select CONCAT(username,'',password) from user #不指定间隔直接拼接两列
kailinuxjavadocker
LInuxmysqlNULL
pythonNULL
LInuxredis
由此可以看出concat()函数在拼接的时候可以指定任意连接符,达到对数据查询不同结果的显示。
随机函数rand()
这种随机函数,可以在查询结果里面随机排序之类的处理
select * from user order by rand();
5 linux 0
8 LInux redis
15 python javadocker
16 LInux
2 LInuxmysql NULL
7 kailinux javadocker
28 winner1234
20 centos
17 linux 999
6 redis name
3 python NULL
26 redispyhon
22 rediswinner
25 PYTHoREDIS
27 PYthon234
这种随机数里面就可以用来抽奖之类的,我们将随机排序的再获取3行,
select * from user order by rand() limit 3;
23 PYthonmysql
27 PYthon234
4 LInux redis
统计列数count()
select count(*) from user 就可以查询出某表里面包含多少条数据等,这里挑选列时一般选择主键相关的列。
select count(*) from user ;
24
select count(id ) from user ; 但是这种在数据量大时会比较慢
求和函数sum()
select sum(id) from user ; #对id求和
356
求最大值max()
select max(id) from user ;
28
求最小值函数()
select min(id) from user ;
1
平均函数avg()
select avg(id) from user ;
14.8333
分组函数group by
select username,count(*) from user GROUP BY username ; #按用户名分组,可以统计
出相同用户的信息
centos 1
kailinux 3
LInux 5
LInuxmysql 1
python 2
PYthon234 1
PYTHonmysql 2
PYTHoREDIS 1
redis 3
redispyhon 1
rediswinner 1
ubuntu 1
winner1234 1
winnerredis 1
关于多表查询的相关知识请看之前的有关mysql的文章。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341