MySQL流程控制函数
(1)IF函数
IF(expr1,expr2,expr3):如果expr1是真,返回expr2,否则返回expr3;
SELECT name,IF(age>18,'成年','未成年') FROM user;
(2)IFNULL函数
IFNULL(expr1,expr2):如果expr1不是NULL,返回expr1,否则返回expr2;
(3)NULLIF函数
NULLIF(expr1,expr2):如果expr1=expr2成立,返回值为NULL,否则返回expr1;
SELECT name,NULLIF(name,loginName) FROM user;
(4)CASE函数
CASE[expr] WHEN[value] THEN[result] ...ELSE[default] END:如果value是真,返回result,否则返回default;
SELECT name,CASE sex WHEN '女' THEN '女生' WHEN '男' THEN '男生' ELSE '未知' END as result FROM user;
MySQL常用函数
数学函数
常用的数学函数如下:
(1)CEILING(x):返回大于x的最小整数值,他是向上取整。
(2)FLOOR(x):返回小于x的最大整数值,它是向下取整。
(3)ROUND(x,y):返回参数x的四舍五入的由y位小数的值,进行四舍五入,保留y位小数。
(4)TRUNCATE(x,y):返回数字x截短为y位小数的结果,不进行四舍五入,保留y位小数。
(5)MOD(x,y):返回x/y的模,也是取余数,和x%y是等价的。
字符串函数
常用的字符串函数如下:
(1)LENGTH(str):获取字符串的长度。
(2)LOWER(str)、UPPER(str):进行大小写字母的转换。
(3)STRCMP(s1,s2):比较两个字符串的大小(开头字母的顺序)hello>yes:1 hellow<yes:-1 等于:0。
(4)REPLACE(s,s1,s2):替换字符串。
(5)CONCAT(s1,s2,...,sn):合并拼接字符串。
(6)CONCAT_WS(sep,s1,s2,...sn):使用分隔符合并拼接字符串。
(7)LTRIM(STR)、RTRIM(str)、TRIM(str):去除空格。
(8)SUBSTRING(s,n,len):截取字符串。
日期和时间函数
常用的日期函数和时间函数如下:
(1)NOW():当前日期和时间,如2017-11-29 23:21:19。
(2)CURDATE():当前日期,如2017-11-29。
(3)CURTIME():当前时间,如23:22:45。
(4)YEAR(d):提取日期中的年份,如YEAR('2017-11-23')。
(5)MONTH(d):提取日期中的月份,如MONTH('2017-11-23')。
(6)DAYOFYEAR(d):提取日期里一年中的第几天,如DAYOFYEAR('2017-11-30')。
(7)DAYOFWEEK(d):提取日期里一星期中的第几天,如DAYOFWEEK('2017-11-30')。
(8)HOUR(d):提取时间中的小时,如HOUR('11:20')。
(9)MINUTE(d):提取时间中的分钟,如MINUTE('11:30')。
(10)SECOND(d):提取时间中的秒数,如SECOND('11:30:59')。
(11)DATE_ADD():向后推迟时间。DATE_ADD(NOW(),INTERVAL 3 YEAR)表示当前时间向后推迟3年。
(12)DATE_SUB():向前推时间。DATE_SUB(NOW(),INTERVAL S DAY)表示当前时间往前推3天。
系统信息函数
通过系统函数可以获取数据库的版本号、服务器的连接数、当前数据库名、当前用户、字符串的编码集。
加密函数
(1)PASSWORD(str)加密函数:可以对字符串str进行加密,加密函数通常用于对用户的密码进行加密。
(2)MD5(str)加密函数:常用于一些不需要解密的数据。
(3)ENCODE(str,pswd_str)与DECODE(crypt_str,pswd_str)加密解密函数:是一对加密解密函数。
(4)AES_ENCRYPT(str,key)与AES_DECRYPT(str,key)加解密函数:是一对加密解密函数。
(5)SHA(str)加解密函数:计算字符串str的安全散列算法(SHA)校验和。
格式化函数
(1)格式化日期函数DATE_FORMAT(date,fmt):根据fmt日期格式对date日期进行格式化转换。
(2)格式化时间函数TIME_FORMAT(time,fmt):根据fmt时间格式对time时间进行格式化转换。
(3)格式化IP函数INET_ATON(ip)和INET_NTOA(num):INET_ATON(ip)将ip转换为数字,INET_NTOA(num)将数字转换为ip。
(4)格式化浮点数函数FORMAT(x,y):把x格式化为以逗号隔开的数字序列,y是结果的小数位。
自定义函数
函数的基本语法
创建自定义函数
DELIMITER $$
CREATE FUNCTIO function_name(参数列表)
RETURNS 返回值类型
BEGIN
DECLARE x VARCHAR(255) DEFAULT '';
SET x=CONCAT(a1,'word');
RETURN x;
END $$
查看自定义函数
SHOW FUNCTION STATUS like 'fun';(查看自定义函数的状态,包括所属数据库、类型、函数名称、修改时间等状态的信息)
SHOW CREATE FUNCTION fun;(用来查看函数的信息,包括函数内容等)
调用自定义函数
SELECT function_name(parameter_value,...)
SELECT FUN();
修改自定义函数
ALTER FUNCTION function_name[characteristic ...]
删除自定义函数
DROP FUNCTION function_name;