Mysql常用函数总结

MySql常使用的函数。参考

CONCAT()、CONCAT_WS()、GROUP_CONCAT():字符拼接函数

  • concat('str1','str2',...):拼接多个字符串,使用 ''(空字符串连接)
  • concat('a','b') 得到字符串 ab(concat像group_concat一样拼接数据表中字段也是可以的)
Mysql常用函数总结_第1张图片
  • select distinct concat(id,age) as s from test 拼接id字段和age字段

  • concat_ws(sep,s1,s2,...):指定字符sep连接s1,s2等字符或字段名称。(用法和concat一致)

  • group_concat(expr):该函数常常和group by分组结合使用,使用逗号拼接group by出来的重复数据。

  • select group_concat(expr) ... group by ...

Mysql常用函数总结_第2张图片
  • select group_concat(expr) ....
Mysql常用函数总结_第3张图片

Null相关函数:

  • isnull(expr):如果expr为null,那么返回1,否则返回0。
  • select isnull(null):返回 1
  • select isnull(20):返回 0
  • isnull()函数和is null的用法有相似之处。
select * from `test` where `name` is null;
select * from `test` where isnull(`name`);
查询出来的结构定是一样的。
Mysql常用函数总结_第4张图片

MySQL流程控制语句(函数):

  • select case ... when ... then流程语句。
 SELECT CASE WHEN [test1] THEN [result1] ... ELSE [default] END
如果testN是真,则返回resultN,否则返回default
SELECT CASE [test] WHEN [val1] THEN [result] ... ELSE [default] END
如果test和valN相等,则返回resultN,否则返回default
Mysql常用函数总结_第5张图片

Mysql常用函数总结_第6张图片
  • IFNULL(expr1,expr2):如果expr1不是null,返回expr1;否则返回expr2。(ifnull函数返回一个数字或字符串)
  • select ifnull('a','e') :返回 a
  • select ifnull(null,'e'):返回 e
Mysql常用函数总结_第7张图片
  • NULLIF(expr1,expr2):如果expr1=expr2返回NULL,否则返回expr1。
  • select NULLIF(1,1):得到 NULL
  • select NULLIF(10,20):得到 10
Mysql常用函数总结_第8张图片
  • if(判断条件,'yes','no'):当判断条件成立,返回yes,否则返回no
  • select if(20>3,'yes','no'):得到 yes
  • select if(20<3,'yes','no'):得到 no

select id from test where age = sex;
select id from test where if(age=sex,true,false);等价的。

Mysql常用函数总结_第9张图片
  • 上面的流程判断函数,都能当做字段使用,也能用在where条件后面。

mysql常用聚合函数。

  • count(expr):统计当前字段在数据的个数。
  • 最常用的使用方法一:count (expr) (expr表示一个字段名)
 select count(name) from test;
 count在统计的时候,**不会统计值为NULL**
Mysql常用函数总结_第10张图片
  • count(DISTINCT expr1[, expr2, ...]) :去除重复,多字段统计。(关于expr中存在Null的字段也不会被统计在内)
 select count(distinct `name`,`age`) from test;
 name或age中存在null都不会被统计在内。
Mysql常用函数总结_第11张图片

test中存在8条数据。


Mysql常用函数总结_第12张图片
  • max()、min():取某个字段的最大、最小值。(由于max和min的使用基本一致,这里只总结max的具体用法)
  • max(expr)max(distinct expr):这两种使用好像并没有什么区别。
 select max(age) as age_max from test;
 select max(distinct age) as age_max from test;
Mysql常用函数总结_第13张图片
  • sum():求和函数:
  • 该函数使用 sum(age)sum(distinct age)是存在一定的区别。(distinct 会排除age字段中重复的数据)
Mysql常用函数总结_第14张图片
  • avg():求平均数函数:
  • 该函数的使用 avg(expr)avg(distinct expr)(distinct在统计的时候,会去掉重复的数据)
Mysql常用函数总结_第15张图片

以上聚合函数在,处理字符串时,会转换成对应的编码运算。


MySQL系统信息函数:

  • database():返回当前数据库名称。
  • version():返回MySQL服务器的版本。
  • user()system_user():返回当前登录的用户名
  • found_rows():返回最后一个SELECT查询进行检索的总行数(该函数需要和select查询语句一起使用有效)
  • connection_id():返回当前客户的连接id。
Mysql常用函数总结_第16张图片
  • benchmark(count,expr):将表达式expr重复运行count次。

MySQL加密函数:

  • password(str):返回字符串的加密版本,该加密没有md5安全。password加密长度41位(* 开头)。
  • sha(str)sha1(str):计算字符串str的安全散列算法(SHA)校验和,加密长度为40位。
  • md5(str):不可逆转破解,加密长度32位。
Mysql常用函数总结_第17张图片
  • aes_encrypt(str,key):返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,以BLOB类型存储
  • aes_decrypt(str,key):返回用密钥key对字符串str利用高级加密标准算法解密后的结果

查询后结构:


Mysql常用函数总结_第18张图片
  • encrypt(str,key):使用UNIXcrypt()函数,用关键词salt(一个可以惟一确定口令的字符串,就像钥匙一样)加密字符串str
  • decode(str,key):使用key作为密钥解密加密字符串str(相对于上面加密等级较低)
    使用方法如上,这里就不在举例。(上面的加密都能嵌套使用

字符串函数:

  • ascii(str):返回字符的ASCII码值。(我们知道ASCII编码只有一个字节,也就是最大255,并且只能是一个字符。如果str是字符串,取第一个字符
Mysql常用函数总结_第19张图片
  • 这里的字符串函数太多了,就不一一举例了。
Mysql常用函数总结_第20张图片

MySQL数学函数:

  • 由于这些都很简单,这里就不在举例说明了。

x:参数这里需要的是数值类型

Mysql常用函数总结_第21张图片

  • sign(x):x,只能是数值,其他类型会报错误。x为正数-返回 1;x为负数-返回 -1
  • mod(x,y):x,y可以是小数,余数也可以是小数。如select MOD(45,5.6) 得到 0.2余数。

MySQL时间和日期函数:

  • 所有的用法如下:
Mysql常用函数总结_第22张图片

MySQL类型转换函数:

  • CAST (expr AS type):把一个值转化为指定的数据类型。支持类型(BINARY,CHAR,DATE,TIME,DATETIME,SIGNED,UNSIGNED
Mysql常用函数总结_第23张图片

MySQL格式化函数:

  • 参看下面图:
Mysql常用函数总结_第24张图片

你可能感兴趣的:(Mysql常用函数总结)