MySQL函数(经典收藏)

MySQL函数

  MySQL数据库提供了很多函数包括:

  • 数学函数;
  • 字符串函数;
  • 日期和时间函数;
  • 条件判断函数;
  • 系统信息函数;
  • 加密函数;
  • 格式化函数;

一、数学函数

  数学函数主要用于处理数字,包括整型、浮点数等。

二、字符串函数

  字符串函数是MySQL中最常用的一类函数,字符串函数主要用于处理表中的字符串。

三、日期时间函数

  MySQL的日期和时间函数主要用于处理日期时间。

四、条件判断函数

  1、IF(expr,v1,v2)函数

  如果表达式expr成立,返回结果v1;否则,返回结果v2。

SELECT IF(1 > 0,'正确','错误')    
->正确

2、IFNULL(v1,v2)函数

  如果v1的值不为NULL,则返回v1,否则返回v2。

SELECT IFNULL(null,'Hello Word')
->Hello Word

  3、CASE

  语法1:

CASE 
  WHEN e1
  THEN v1
  WHEN e2
  THEN e2
  ...
  ELSE vn
END

  CASE表示函数开始,END表示函数结束。如果e1成立,则返回v1,如果e2成立,则返回v2,当全部不成立则返回vn,而当有一个成立之后,后面的就不执行了。

SELECT CASE 
  WHEN 1 > 0
  THEN '1 > 0'
  WHEN 2 > 0
  THEN '2 > 0'
  ELSE '3 > 0'
  END
->1 > 0

  语法2:

CASE expr 
  WHEN e1 THEN v1
  WHEN e1 THEN v1
  ...
  ELSE vn
END

  如果表达式expr的值等于e1,返回v1;如果等于e2,则返回e2。否则返回vn。

SELECT CASE 1 
  WHEN 1 THEN '我是1'
  WHEN 2 THEN '我是2'
ELSE '你是谁'

五、系统信息函数

  系统信息函数用来查询MySQL数据库的系统信息。

六、加密函数

  加密函数是MySQL用来对数据进行加密的函数。

  1、PASSWORD(str)

  该函数可以对字符串str进行加密,一般情况下,PASSWORD(str)用于给用户的密码加密。

SELECT PASSWORD('123')
    ->*23AE809DDACAF96AF0FD78ED04B6A265E05AA257

  2、MD5

  MD5(str)函数可以对字符串str进行散列,可以用于一些普通的不需要解密的数据加密。

SELECT md5('123')
    ->202cb962ac59075b964b07152d234b70

  3、ENCODE(str,pswd_str)与DECODE(crypt_str,pswd_str)

  ENCODE函数可以使用加密密码pswd_str来加密字符串str,加密结果是二进制数,需要使用BLOB类型的字段保存。该函数与DECODE是一对,需要同样的密码才能够解密。

SELECT ENCODE('123','xxoo')
    ->;vx
SELECT DECODE(';vx','xxoo')
    ->123

七、其他函数

  1、格式化函数FORMAT(x,n)

  FORMAT(x,n)函数可以将数字x进行格式化,将x保留到小数点后n位。

SELECT FORMAT(3.1415926,3)
    ->3.142

  2、不同进制的数字进行转换

  • ASCII(s) 返回字符串s的第一个字符的ASCII码;
  • BIN(x) 返回x的二进制编码;
  • HEX(x) 返回x的十六进制编码;
  • OCT(x) 返回x的八进制编码;
  • CONV(x,f1,f2) 返回f1进制数变成f2进制数;

  3、IP地址与数字相互转换的函数

  • INET_ATON(IP)函数可以将IP地址转换为数字表示;IP值需要加上引号;
  • INET_NTOA(n)函数可以将数字n转换成IP形式。
SELECT INET_ATON('192.168.0.1')
    ->3232235521
SELECT INET_NTOA(3232235521)
    ->192.168.0.1

  4、加锁函数和解锁函数

  • GET_LOCK(name,time)函数定义一个名称为nam、持续时间长度为time秒的锁。如果锁定成功,则返回1;如果尝试超时,则返回0;如果遇到错误,返回NULL。
  • RELEASE_LOCK(name)函数解除名称为name的锁。如果解锁成功,则返回1;如果尝试超时,返回0了如果解锁失败,返回NULL;
  • IS_FREE_LOCK(name)函数判断是否已使用名为name的锁定。如果使用,返回0,否则,返回1;
SELECT GET_LOCK('MySQL',10)
    ->1    (持续10秒)
SELECT IS_FREE_LOCK('MySQL')
    ->1    
SELECT RELEASE_LOCK('MySQL')
    ->1

  5、重复执行指定操作的函数

  BENCHMARK(count.expr)函数将表达式expr重复执行count此,然后返回执行时间。该函数可以用来判断MySQL处理表达式的速度。

SELECT BENCHMARK(10000,NOW())
    ->0    返回系统时间1万

  6、改变字符集的函数

  CONVERT(s USING cs)函数将字符串s的字符集变成cs。

SELECT CHARSET('ABC')
    ->utf-8    

SELECT CHARSET(CONVERT('ABC' USING gbk))
    ->gbk

  7、转换数据类型

  • CAST(x AS type)
  • CONVERT(x,type)

  这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。

SELECT CAST('123' AS UNSIGNED INTEGER) + 1
    ->124

SELECT '123' + 1
    ->124 其实MySQL能默认转换

SELECT CAST(NOW() AS DATE)
  ->2014-12-18

最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(777)领取,祝大家更上一层楼!!!

Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐