数据库技能实战进阶之常用结构化sql语句(中)

  1. 云栖社区>
  2. 博客>
  3. 正文

数据库技能实战进阶之常用结构化sql语句(中)

技术小阿哥 2017-11-27 15:52:00 浏览611
展开阅读全文

   在上篇文章中我们介绍到查询里面关于order by对查询结果的排序处理,接下来我们将介绍其他的一部分操作。

10、limit 限制查询结果条数

   在mysql数据库里面我们要想显示前10行,或者第x行到n行之类的格式显示,这时limit将是我们最好的选择。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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,...) 可以用来拼接查询结果,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
select   CONCAT(username,'*****',passwordfrom 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,'',passwordfrom user #不指定间隔直接拼接两列
kailinuxjavadocker
LInuxmysqlNULL
pythonNULL
LInuxredis
 
 由此可以看出concat()函数在拼接的时候可以指定任意连接符,达到对数据查询不同结果的显示。

随机函数rand()

  这种随机函数,可以在查询结果里面随机排序之类的处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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   就可以查询出某表里面包含多少条数据等,这里挑选列时一般选择主键相关的列。

1
2
3
4
select   count(*)  from user  ;
24
 
select count(id ) from user  ;  但是这种在数据量大时会比较慢

求和函数sum()

1
2
3
select   sum(id)  from user  ; #对id求和
 
356

求最大值max()

1
2
select   max(id)  from user  ;
28

求最小值函数()

1
2
select   min(id)  from user  ;
1

平均函数avg()

1
2
select   avg(id)  from user  ;
14.8333

分组函数group  by

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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的文章。


本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1908573,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小阿哥
+ 关注