学习回顾mysql常用函数(1)

来源:互联网 发布:物流管理信息系统软件 编辑:程序博客网 时间:2024/05/28 11:50

最近很多编程大牛谈谈他们的心得,大都是这个意思,就是要时常回顾基础,勿在浮沙筑高台之类的。这里在学些回顾数据库的一些基础。所有SQL中,大部分自带的函数是很类似的。笔者打算学习回顾学习过的数据库一些比较基础的知识。

1、获取指定列的平均值avg(col)

select avg(subsys_sn) from user_log 

结果
13
刚好该字段所有的值都是13

2、获取指定列中非NULL值的个数count(col)

select count(subsys_sn) from user_log 

结果
138

所有subsys_sn都有值
使用count(*)可以获取查询结果所有条数

select count(*) from user_log 

结果
138

3、获取指定列的最小值min(col)

select min(op_role) from user_log 

结果
0

4、获取指定列的最大值max(col)

select max(op_role) from user_log 

结果
2

5、获取指定列的所有值之和sum(col)

select sum(op_role) from user_log

结果
258

6、获取属于一个分组连接组合而成的结果group_concat(col)。

select group_concat(Time_zone_id) from time_zone group by Use_leap_seconds;

结果
结果有点长,有两条数据。每条数据包含很多个Time_zone_id对应的值。

7、将char转换为ASCII码格式,ASCII

mysql> select ascii(65) from user;+-----------+| ascii(65) |+-----------+|        54 ||        54 ||        54 ||        54 |+-----------+

7、获取字符串的比特长度。bit_length(str)

mysql> select bit_length(User) from user;+------------------+| bit_length(User) |+------------------+|              104 ||              104 ||               72 ||               32 |+------------------+4 rows in set (0.00 sec)mysql> select User from user;+---------------+| User          |+---------------+| healthchecker || mysql.session || mysql.sys     || root          |+---------------+4 rows in set (0.00 sec)

8、拼接字符串concat(s1, s2, s3)

mysql> select concat(Host, ' ',User) from user;+-------------------------+| concat(Host, ' ',User)  |+-------------------------+| localhost healthchecker || localhost mysql.session || localhost mysql.sys     || localhost root          |+-------------------------+4 rows in set (0.00 sec)

9、连接字符串,并用sep字符间隔(concat_ws)
用法
concat_ws(sep, s1, s2, …, sn)

mysql> select concat_ws(' ','127.0.0.1', User) from user;+----------------------------------+| concat_ws(' ','127.0.0.1', User) |+----------------------------------+| 127.0.0.1 healthchecker          || 127.0.0.1 mysql.session          || 127.0.0.1 mysql.sys              || 127.0.0.1 root                   |+----------------------------------+4 rows in set (0.00 sec)

10、更替字符串的子串(insert)
用法:
insert(str, start, length, instr)
将字符串str从第x位置开始,length个字符长的子串更替为字符串instr,返回结果。
所有参数都是必输。

mysql> select insert('1234567890', 'abc') from user;ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') from user' at line 1mysql> select insert('1234567890', 1, 3, 'abc') from user;+-----------------------------------+| insert('1234567890', 1, 3, 'abc') |+-----------------------------------+| abc4567890                        || abc4567890                        || abc4567890                        || abc4567890                        |+-----------------------------------+4 rows in set (0.00 sec)mysql> select insert('1234567890', 1, 4, 'abc') from user;+-----------------------------------+| insert('1234567890', 1, 4, 'abc') |+-----------------------------------+| abc567890                         || abc567890                         || abc567890                         || abc567890                         |+-----------------------------------+4 rows in set (0.00 sec)mysql> select insert('1234567890', 1, 1, 'abc') from user;+-----------------------------------+| insert('1234567890', 1, 1, 'abc') |+-----------------------------------+| abc234567890                      || abc234567890                      || abc234567890                      || abc234567890                      |+-----------------------------------+4 rows in set (0.00 sec)mysql> select insert('1234567890', 1, 10, 'abc') from user;+------------------------------------+| insert('1234567890', 1, 10, 'abc') |+------------------------------------+| abc                                || abc                                || abc                                || abc                                |+------------------------------------+4 rows in set (0.00 sec)
原创粉丝点击