在上篇文章中我们介绍到查询里面关于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的文章。