MySQL自带函数十分丰富,合理使用可以减少很多编码工作。
一、数学函数
数学函数主要用于处理数字,包括整型、浮点数等。数学函数包括绝对值函数、正弦函数、余弦函数、获取随机数的函数等。
ABS(X):返回X的绝对值
MOD(N,M)或%:返回N被M除的余数
FLOOR(X):返回不大于X的最大整数值
二、字符串函数
ASCII(str):返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL
CONCAT(str1,str2,...):返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式
LENGTH(str):返回字符串str的长度
INSTR(str,substr):返回子串substr在字符串str中的第一个出现的位置
LEFT(str,len):返回字符串str的最左面len个字符
RIGHT(str,len):返回字符串str的最右面len个字符
LTRIM(str):返回删除了其前置空格字符的字符串str
REPLACE(str,from_str,to_str):返回字符串str,其字符串from_str的所有出现由字符串to_str代替
REPEAT(str,count):返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL。
REVERSE(str):返回颠倒字符顺序的字符串str
INSERT(str,pos,len,newstr):返回字符串str,在位置pos起始的子串且len个字符长的子串由字符串newstr代替
三、日期和时间函数
DAYOFWEEK(date):返回日期date的星期索引(1=星期天,2=星期一, …7=星期六)
WEEKDAY(date):返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)
MONTH(date):返回date的月份,范围1到12
DAYNAME(date):返回date的星期名字
四、条件判断函数
流程控制主要用在存储过程和一些自定义函数的编写中。
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
在第一个方案的返回结果中, value=compare-value。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。
IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
STRCMP(expr1,expr2)
如果字符串相同,STRCMP()返回0,如果第一参数根据当前的排序次序小于第二个,返回-1,否则返回1。
五、系统信息函数
系统信息函数用来查询MySQL数据库的系统信息。例如,查询数据库的版本,查询数据库的当前用户等。本小节将详细讲解系统信息函数的作用和使用方法。
获取MySQL版本号、连接数、数据库名的函数
VERSION()函数返回数据库的版本号;
CONNECTION_ID()函数返回服务器的连接数,也就是到现在为止MySQL服务的连接次数;
DATABASE()和SCHEMA()返回当前数据库名。
获取用户名的函数
USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()和CURRENT_USER这几个函数可以返回当前用户的名称。
获取字符串的字符集和排序方式的函数
CHARSET(str)函数返回字符串str的字符集,一般情况这个字符集就是系统的默认字符集;COLLATION(str)函数返回字符串str的字符排列方式。
获取最后一个自动生成的ID值的函数
LAST_INSERT_ID()函数返回最后生成的AUTO_INCREMENT值
六、加密函数
加密函数是MySQL中用来对数据进行加密的函数。因为数据库中有些很敏感的信息不希望被其他人看到,就应该通过加密方式来使这些数据变成看似乱码的数据。例如用户的密码,就应该经过加密。
下面是各种加密函数的名称、作用和使用方法。
加密函数PASSWORD(str)
PASSWORD(str)函数可以对字符串str进行加密。一般情况下,PASSWORD(str)函数主要是用来给用户的密码加密的
加密函数MD5(str)
MD5(str)函数可以对字符串str进行加密。MD5(str)函数主要对普通的数据进行加密
加密函数ENCODE(str,pswd_str)
ENCODE(str,pswd_str)函数可以使用字符串pswd_str来加密字符串str。加密的结果是一个二进制数,必须使用BLOB类型的字段来保存它
DECODE(crypt_str,pswd_str)函数可以使用字符串pswd_str来为crypt_str解密。crypt_str是通过ENCODE(str,pswd_str)加密后的二进制数据
七、格式化函数
ORMAT(x,n)函数可以将数字x进行格式化,将x保留到小数点后n位。这个过程需要进行四舍五入。例如FORMAT(2.356,2)返回的结果将会是2.36;FORMAT(2.353,2)返回的结果将会是2.35