MySQL(5.6)函数

字符串函数

ASCII(str)
说明:返回字符串str最左边字符的ASCII值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT ASCII('2');  
  2.         -> 50  
  3. mysql>   SELECT ASCII(2);  
  4.         -> 50  
  5. mysql>   SELECT ASCII('a');  
  6.         -> 97  
  7. mysql>   SELECT ASCII('');  
  8.         -> 0  
  9. mysql>   SELECT ASCII(NULL);  
  10.         -> NULL  

BIN(N)
说明:返回数值N的二进制字符串表示,在此N是一个长整数(BIGINT)数字
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT BIN(10);  
  2.         -> '1010'  
  3. mysql>   SELECT BIN(NULL);  
  4.         -> NULL  

OCT(N)
说明:返回数值N的八进制字符串表示,在此N是一个长整数(BIGINT)数字
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT OCT(10);  
  2.         -> 12  

HEX(N)
说明:返回数值N的十六进制字符串表示,在此N是一个长整数(BIGINT)数字
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT HEX(256);  
  2.         -> 100  

HEX(str)
说明:返回字符串str每个字符对应的十六进制ASCII值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT HEX('MySQL');  
  2.         -> '4D7953514C'  

UNHEX(str)
说明:HEX(str)的逆过程
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT UNHEX('4D7953514C');  
  2.         -> 'MySQL'  

BIT_LENGTH(str)
说明:返回字符串str的比特数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT BIT_LENGTH('MySQL');  
  2.         -> 40  
  3. mysql>   SELECT BIT_LENGTH(NULL);  
  4.         -> NULL  

CHAR_LENGTH(str)
说明:返回字符串的字符数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT CHAR_LENGTH('MySQL');  
  2.         -> 5  
  3. mysql>   SELECT CHAR_LENGTH('中文');  
  4.         -> 2  
  5. mysql>   SELECT CHAR_LENGTH(NULL);  
  6.         -> NULL  

CHARACTER_LENGTH(str)
说明:与CHAR_LENGTH(str)同义

LENGTH(str)
说明:返回字符串str的字节数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LENGTH('MySQL');  
  2.         -> 5  
  3. mysql>   SELECT LENGTH('中文');  
  4.         -> 6  

OCTET_LENGTH(str)
说明:与LENGTH(str)同义

CHAR(N,... [USING charset_name])
说明:将参数解释为整数,返回这些整数对应的ASCII字符组成的字符串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT CHAR(77, 121, 83, 81, 76);  
  2.         -> 'MySQL'  
  3. mysql>   SELECT CHAR(77.0, 121.1, 83.2, 81.3, 76.4);  
  4.         -> 'MySQL'  
  5. mysql>   SELECT CHAR('77''121''83''81''76');  
  6.         -> 'MySQL'  
  7. mysql>   SELECT CHAR(NULL);  
  8.         -> NULL  

CONCAT(str1,str2,...)
说明:返回字符串列表拼接成的字符串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT CONCAT('My''SQL');  
  2.         -> 'MySQL'  
  3. mysql>   SELECT CONCAT('My'NULL'MySQL');  
  4.         ->   
  5. mysql>   SELECT CONCAT('My''SQL', 5.6);  
  6.         -> 'MySQL5.6'  

CONCAT_WS(separator,str1,str2,...)
说明:用分隔符separator拼接字符串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT CONCAT_WS(' ''Hello''World');  
  2.         -> 'Hello World'  
  3. mysql>   SELECT CONCAT_WS(',''Hello''' ,'World');  
  4.         -> 'Hello,,World'  
  5. mysql>   SELECT CONCAT_WS(',''Hello'NULL ,'World');  
  6.         -> 'Hello,World'  
  7. mysql>   SELECT CONCAT_WS(NULL'Hello''World');  
  8.         -> NULL  

ELT(N,str1,str2,str3,...)
说明:返回字符串列表的第N个元素
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT ELT(1, 'str1''str2''str3');  
  2.         -> 'str1'  
  3. mysql>   SELECT ELT(0, 'str1''str2''str3');  
  4.         -> NULL  
  5. mysql>   SELECT ELT(4, 'str1''str2''str3');  
  6.         -> NULL  

EXPORT_SET(bits,on,off[,separator[,number_of_bits]])
说明:返回一个字符串,对bits值的置一的比特位得到字符串on,对清零的比特位得到字符串off,bits中的比特值按照从右到左的顺序接受检验。字符串由分隔符separator(默认值为',')隔开,字符串长度为number_of_bits(默认值为64) 
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT EXPORT_SET(6, '1''0''', 10);  
  2.         -> '0110000000'  

FIELD(str,str1,str2,str3,...)
说明:返回字符串str在字符串列表中的位置
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT FIELD('str''str1''str2''str3');  
  2.         -> 0  
  3. mysql>   SELECT FIELD('str2''str1''str2''str3');  
  4.         -> 2  

FIND_IN_SET(str,strlist)
说明:返回字符串str在字符串列表strlist中的位置,其中strlist的元素是由','隔开
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   FIND_IN_SET('str''str1,str2,str3');  
  2.         -> 0  
  3. mysql>   FIND_IN_SET('str2''str1,str2,str3');  
  4.         -> 2  

FORMAT(X,D[,locale])
说明:将数值X置为'#,###,###.##'的格式,四舍五入保留D位小数,locale表示地区(默认值为'en_US')
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT FORMAT(12345.6789, 2);  
  2.         -> '12,345.68'  
  3. mysql>   SELECT FORMAT(12345.6789, 2, 'de_DE');  
  4.         -> '12.345,68  

TO_BASE64(str)
说明:对字符串str进行BASE64编码
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TO_BASE64('MySQL');  
  2.         -> 'TXlTUUw='  

FROM_BASE64(str)
说明:对字符串str进行BASE64解码
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT FROM_BASE64('TXlTUUw=');  
  2.         -> 'MySQL'  

INSERT(str,pos,len,newstr)
说明:将字符串str从位置pos开始的len个字符替换成新字符串newstr
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT INSERT('basketball', 4, 3, 'e');  
  2.         -> 'baseball'  
  3. mysql>   SELECT INSERT('MySQL', 3, 100, 'Eclipse');  
  4.         -> 'MyEclipse'  
  5. mysql>   SELECT INSERT('MySQL', 0, 2, 'MS');  
  6.         -> 'MySQL'  

INSTR(str,substr)
说明:返回字串substr在字符串str中第一次出现的位置
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT INSTR('MySQL''SQL');  
  2.         -> 3  
  3. mysql>   SELECT INSTR('Oracle''sql');  
  4.         -> 0  

LOWER(str)
说明:根据最新的字符映射集(默认是latin1)将字符串转换为小写字母
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LOWER('MySQL');  
  2.         -> 'mysql'  

LCASE(str)
说明:与LOWER(str)同义

UPPER(str)
说明:根据最新的字符映射集(默认是latin1)将字符串转换为大写字母
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT UPPER('MySQL');  
  2.         -> 'mysql'  

UCASE(str)
说明:与UPPER(str)同义

LEFT(str,len)
说明:返回字符串str最左的len个字符
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LEFT('MySQL', 2);  
  2.         -> 'My'  

RIGHT(str,len)
说明:返回字符串str最右的len个字符
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT RIGHT('MySQL', 3);  
  2.         -> 'SQL'  

LOAD_FILE(file_name)
说明:返回从文件file_name读取的内容。该文件必须存在于服务器上,指定完整的路径名,还要拥有文件的权限,并且文件的内容是可读的,内容长度小于max_allowed_packet
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LOAD_FILE('D:\\tmp.txt');  

LOCATE(substr,str)
说明:返回字串substr在字符串str中第一次出现的位置
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LOCATE('SQL' , 'MySQL');  
  2.         -> 3  
  3. mysql>   SELECT LOCATE('SQL' , 'Oracle');  
  4.         -> 0  

LOCATE(substr,str,pos)
说明:返回字串substr在字符串str中第pos个字符后第一次出现的位置
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LOCATE('SQL' , 'MySQL', 1);  
  2.         -> 3  
  3. mysql>   SELECT LOCATE('SQL' , 'MySQL', 4);  
  4.         -> 0  

POSITION(substr IN str)
说明:与LOCATE(substr,str)同义

LPAD(str,len,padstr)
说明:往字符串str左边填充字符串padstr至长度为len
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LPAD('MySQL', 10, '*');  
  2.         -> '*****MySQL'  
  3. mysql>   SELECT LPAD('MySQL', 2, '*');  
  4.         -> 'My'  

RPAD(str,len,padstr)
说明:往字符串str右边填充字符串padstr至长度为len
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT RPAD('MySQL', 10, '*');  
  2.         -> 'MySQL*****'  
  3. mysql>   SELECT RPAD('MySQL', 2, '*');  
  4.         -> 'My'  

LTRIM(str)
说明:移除字符串左边的空白字符
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LTRIM('   MySQL   ');  
  2.         -> 'MySQL   '  

RTRIM(str)
说明:移除字符串右边的空白字符
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT RTRIM('   MySQL   ');  
  2.         -> '   MySQL'  

TRIM([remstr FROM] str)
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
说明:移除字符串str指定的前缀和/或后缀(默认值是空格字符)
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TRIM('   MySQL   ');  
  2.         -> 'MySQL'  
  3. mysql>   SELECT TRIM('*' FROM '***MySQL***');  
  4.         -> 'MySQL'  
  5. mysql>   SELECT TRIM(BOTH '*' FROM '***MySQL***');  
  6.         -> 'MySQL'  
  7. mysql>   SELECT TRIM(LEADING '*' FROM '***MySQL***');  
  8.         -> 'MySQL***'  
  9. mysql>   SELECT TRIM(TRAILING '*' FROM '***MySQL***');  
  10.         -> '***MySQL'  

# MAKE_SET(bits,str1,str2,...)
说明:返回一个设定值 (一个包含被‘,’分开的字符串),由在bits组中具有相应的比特的字符串组成。str1对应比特0,str2对应比特1,以此类推。str1,str2,...中的NULL值不会被添加到结果中。  
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT MAKE_SET(1, 'str1''str2''str3''str4');  
  2.         -> 'str1'  
  3. mysql>   SELECT MAKE_SET(3, 'str1''str2''str3''str4');  
  4.         -> 'str1,str4'  
  5. mysql>   SELECT MAKE_SET(1 | 4, 'str1''str2''str3''str4');  
  6.         -> 'str1,str3'  
  7. mysql>   SELECT MAKE_SET(1 | 4, 'str1''str2'NULL'str4');  
  8.         -> 'str1'  

ORD(str)
说明:如果字符串最左边的字符是个多字节字符,则返回该字符的代码,代码计算公式为:(1st byte code)+(2nd byte code * 256)+(3rd byte code * 2562...;如果该字符不是个多字节字符,则返回与ASCII(str)相同的返回值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT ORD('a');  
  2.         -> 97  
  3. mysql>   SELECT ORD('烫')  
  4.         -> 15172523  

QUOTE(str)
说明:引证一个字符串,由此产生一个在SQL语句中可用作完全转义数据值的结果。返回的字符串由单引号标注,每例都带有单引号(‘'’)、反斜线符号(‘\’)、 ASCII NUL以及前面有反斜线符号的Control-Z。如果自变量的值为NULL, 则返回不带单引号的单词 “NULL” 。
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT QUOTE('I\'m');  
  2.         -> ''I\'m''  
  3. mysql>   SELECT QUOTE('MySQL');  
  4.         -> ''MySQL''  
  5. mysql>   SELECT QUOTE(NULL)  
  6.         -> 'NULL'  

REPEAT(str,count) 
说明:返回由字符串str重复count次组成的字符串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT REPEAT('MySQL', 3);  
  2.         -> 'MySQLMySQLMySQL'  
  3. mysql>   SELECT REPEAT('MySQL', 0);  
  4.         -> ''  

REPLACE(str,from_str,to_str)
说明:将字符串str中的子串from_str替换成字符串to_str
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT REPLACE('abc123abc''abc''xyz');  
  2.         -> 'xyz123xyz'  

REVERSE(str)
说明:返回与字符串str相反顺序的字符串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT REVERSE('MySQL')  
  2.         -> 'LQSyM'  

SPACE(N)
说明:返回由N个空格符组成的字符串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SPACE(3);  
  2.         -> '   '  

SUBSTR(str,pos)
说明:返回字符串str从pos位置开始后的子串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SUBSTR('abcdefg', 3);  
  2.         -> 'cdefg'  
  3. mysql>   SELECT SUBSTR('abcdefg', -3);  
  4.         -> 'efg'  
  5. mysql>   SELECT SUBSTR('abcdefg', 0);  
  6.         -> ''  
  7. mysql>   SELECT SUBSTR('abcdefg', 10);  
  8.         -> ''  

SUBSTR(str FROM pos)
说明:与SUBSTR(str,pos)同义

SUBSTR(str,pos,len)
说明:返回字符串str从pos位置开始,长度为len的子串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SUBSTR('abcdefg', 3, 4);  
  2.         -> 'cdef'  
  3. mysql>   SELECT SUBSTR('abcdefg', 0, 4);  
  4.         -> ''  
  5. mysql>   SELECT SUBSTR('abcdefg', -4, 3);  
  6.         -> 'def'  
  7. mysql>   SELECT SUBSTR('abcdefg', 3, 10);  
  8.         -> 'cdefg'  

SUBSTR(str FROM pos FOR len)
说明:与SUBSTR(str,pos,len)同义

SUBSTRING(str,pos)
说明:与SUBSTR(str,pos)同义

SUBSTRING(str FROM pos)
说明:与SUBSTR(str FROM pos)同义

SUBSTRING(str,pos,len)
说明:SUBSTR(str,pos,len)同义

SUBSTRING(str FROM pos FOR len)
说明:与SUBSTR(str FROM pos FOR len)同义

MID(str,pos,len)
说明:与SUBSTR(str,pos,len)同义

SUBSTRING_INDEX(str,delim,count)
说明:count大于0时返回字符串str从左数第count个定界符delim左边的子串,count小于0时返回字符串str从右数第count个定界符delim右边的子串
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SUBSTRING_INDEX('str1.str2.str3.str4''.', 2);  
  2.         -> 'str1.str2'  
  3. mysql>   SELECT SUBSTRING_INDEX('str1.str2.str3.str4''.', -2);  
  4.         -> 'str3.str4'  
  5. mysql>   SELECT SUBSTRING_INDEX('str1.str2.str3.str4''.', 0);  
  6.         -> ''  
  7. mysql>   SELECT SUBSTRING_INDEX('str1str2str3str4''.', 2);  
  8.         -> 'str1str2str3str4'  

STRCMP(expr1,expr2)
说明:返回字符串的比较结果
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT STRCMP('abc''cba');  
  2.         -> -1  
  3. mysql>   SELECT STRCMP('cba''abc');  
  4.         -> 1  
  5. mysql>   SELECT STRCMP('abc''abc');  
  6.         -> 0  
  7. mysql>   SELECT STRCMP('abc'NULL);  
  8.         -> NULL  

数值函数

PI()
说明:返回π值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT PI();  
  2.         -> 3.141593  

SIN(X)
说明:返回X的正弦值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SIN(PI() / 2);  
  2.         -> 1  

ASIN(X)
说明:返回X的反正弦值,X不在-1和1之间则返回NULL
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT ASIN(0);  
  2. -> 0  
  3. mysql> SELECT ASIN(1.01);  
  4. -> NULL  

COS(X)
说明:返回X的余弦值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT COS(PI());  
  2. -> -1  

ACOS(X)
说明:返回X的反余弦值,X不在-1和1之间则返回NULL
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT ACOS(1);  
  2. -> 0  
  3. mysql> SELECT ACOS(1.01);  
  4. -> NULL  

ATAN(X)
说明:返回X的反正切值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT ATAN(1);  
  2. -> 0.7853981633974483  
  3. mysql> SELECT ATAN(-1);  
  4. -> -0.7853981633974483  

ATAN(Y,X)
ATAN2(Y,X)
说明:返回  两个变量Y和X的反正切值,其值相当于ATAB(Y/N)
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT ATAN(6 / 3);  
  2.         -> 1.1071487177940904  
  3. mysql>   SELECT ATAN(6, 3);  
  4.         -> 1.1071487177940904  
  5. mysql>   SELECT ATAN2(6, 3);  
  6.         -> 1.1071487177940904  

TAN(X)
说明:返回X的正切值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT TAN(1);  
  2. -> 1.5574077246549023  
  3. mysql> SELECT TAN(0);  
  4. -> 0  

COT(X)
说明:返回X的余切值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT COT(1);  
  2. -> 0.6420926159343306  

DEGREES(X)
说明:将X由弧度转换为度
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT DEGREES(PI());  
  2. -> 180  

RADIANS(X)
说明:将X由读转换为弧度
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT RADIANS(180);  
  2. -> 3.141592653589793  

ABS(X)
说明:返回X的绝对值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT ABS(1);  
  2. -> 1  
  3. mysql> SELECT ABS(-1);  
  4. -> 1  

CEIL(X)
说明:返回不小于X的最小整数值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT CEIL(1.2);  
  2. -> 2  
  3. mysql> SELECT CEIL(1.0);  
  4. -> 1  

CEILING(X)
说明:与CEIL(X)同义


FLOOR(X)返回不大于X的最小整数值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT FLOOR(1.2);  
  2. -> 1  
  3. mysql> SELECT FLOOR(-1.2);  
  4. -> -2  

CONV(N,from_base,to_base)
说明:将N由from_base进制表示转换为to_base进制表示
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT CONV('F', 16, 2);  
  2. -> '1111'  
  3. mysql> SELECT CONV(12, 8, 10);  
  4. -> '10'  

CRC32(expr)
说明:返回表达式expr的32位循环冗余校验值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT CRC32('MySQL');  
  2. -> 3259397556  

EXP(X)
说明:返回自然底数e的X次方值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT EXP(1);  
  2. -> 2.718281828459045  

LN(X)
说明:返回X的自然对数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT LN(EXP(2));  
  2. -> 2  

LOG(X)
说明:与LN(X)同义


LOG(B,X)
说明:返回以B为底的X的对数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT LOG(2, 4);  
  2. -> 2  

LOG2(X)
说明:返回以2为底的X的对数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT LOG2(4);  
  2. -> 2  

LOG10(X)
说明:返回以10为底的X的对数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT LOG10(100);  
  2. -> 2  

MOD(N,M) 
N MOD M
N % M
说明:返回N除以M的余数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT MOD(10, 3)  
  2. -> 1  
  3. mysql> SELECT MOD(10.1, 3);  
  4. -> 1.1  

POW(X,Y)
说明:返回X的Y次方
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT POW(2, 10);  
  2. -> 1024  

POWER(X,)
说明:与POW(X,Y)同义


RAND()
说明:返回0到1的随机数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT RAND();  
  2. -> 0.23654564771479522  
  3. mysql> SELECT RAND();  
  4. -> 0.7700120906997585  

RAND(N)
说明:返回0到1的随机数,种子值指定为N
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT RAND(1);  
  2. -> 0.40540353712197724  
  3. mysql> SELECT RAND(1);  
  4. -> 0.40540353712197724  
  5. mysql> SELECT RAND(2);  
  6. -> 0.6555866465490187  
注:返回a到b之间的随机数:FLOOR(a + RAND() * (b – a + 1))
例如,返回10到15之间的随机数:
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT FLOOR(10 + (RAND() * 6));  

ROUND(X)
说明:返回X四舍五入后的整数值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT ROUND(10.25);  
  2. -> 10  
  3. mysql> SELECT ROUND(10.50);  
  4. -> 11  
  5. mysql> SELECT ROUND(10.75);  
  6. -> 11  

ROUND(X,D)
说明:返回X四舍五入后保留D位小数的值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT ROUND(10.002, 2);  
  2. -> 10  
  3. mysql> SELECT ROUND(10.007, 2);  
  4. -> 10.01  
  5. mysql> SELECT ROUND(10.005, 2);  
  6. -> 10.01  

SIGN(X)
说明:X>0则返回1,X<0则返回-1,X=0则返回0
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT SIGN(10);  
  2. -> 1  
  3. mysql> SELECT SIGN(-10);  
  4. -> -1  
  5. mysql> SELECT SIGN(0);  
  6. -> 0  

SQRT(X)
说明:返回非负数X的二次方根
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT SQRT(4);  
  2. -> 2  
  3. mysql> SELECT SQRT(-1);  
  4. -> NULL  

TRUNCATE(X,D)
说明:返回被舍去至小数点后D位的数字X。若D的值为0,则结果不带有小数点或不带有小数部分。可以将D设为负数,则截去(归零)X小数点左起第D位开始后面所有低位的值。
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql> SELECT TRUNCATE(123.456, 2);  
  2. -> 123.45  
  3. mysql> SELECT TRUNCATE(123.456, 0);  
  4. -> 123  
  5. mysql> SELECT TRUNCATE(123.456, -2);  
  6. -> 100  

日期和时间函数

ADDDATE(expr,days)
说明:向日期加上指定的天数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT ADDDATE('2014-10-01', 7);  
  2.         -> '2014-10-08'  

ADDDATE(date,INTERVAL expr unit)
说明:向日期加上指定的时间间隔
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT ADDDATE('2014-10-01', INTERVAL 31 DAY);  
  2.         -> '2014-11-01'  
  3. mysql>   SELECT ADDDATE('2014-10-01', INTERVAL 6 MONTH);  
  4.         -> '2015-04-01'  
  5. mysql>   SELECT ADDDATE('2014-10-01', INTERVAL 2 QUARTER);  
  6.         -> '2015-04-01'  
  7. mysql>   SELECT ADDDATE('2014-10-01', INTERVAL -1 YEAR);  
  8.         -> '2013-10-01'  

DATE_ADD(date,INTERVAL expr unit)
说明:与ADDDATE(date,INTERVAL expr unit)同义

SUBDATE(expr,days)
说明:向日期减去指定的天数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SUBDATE('2014-10-01', 1);  
  2.         -> '2014-09-30'  

SUBDATE(date,INTERVAL expr unit)
说明:向日期减去指定的时间间隔
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SUBDATE('2014-10-01', INTERVAL 1 QUARTER);  
  2.         -> '2014-07-01'  

DATE_SUB(date,INTERVAL expr unit)
说明:与SUBDATE(date,INTERVAL expr unit)同义

ADDTIME(expr1,expr2)
说明:返回日期时间表达式expr1加上日期时间表达式2后的结果
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT ADDTIME("2014-10-01 00:00:00""02:30:00");  
  2.         -> '2014-10-01 02:30:00'  
  3. mysql>   SELECT ADDTIME("2014-10-01 00:00:00""01 02:30:00");  
  4.         -> '2014-10-02 02:30:00'  

SUBTIME(expr1,expr2)
说明:返回日期时间表达式expr1减去日期时间表达式2后的结果
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SUBTIME("2014-10-01 00:00:00""02:30:00");  
  2.         -> '2014-09-30 21:30:00'  
  3. mysql>   SELECT SUBTIME("2014-10-01 00:00:00""01 02:30:00");  
  4.         -> '2014-09-29 21:30:00'  

CONVERT_TZ(dt,from_tz,to_tz)
说明:返回将日期时间dt从时区from_tz转成时区to_tz后的结果
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT CONVERT_TZ('2014-10-01 08:00:00''+08:00''+9:00');  
  2.         -> '2014-10-01 09:00:00'  

CURDATE()
说明:返回当前日期
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT CURDATE();  
  2.         -> '2014-10-26'  

CURRENT_DATE()
说明:与CURDATE()同义


CURTIME()
说明:返回当前时间
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT CURTIME();  
  2.         -> '21:02:42'  

CURRENT_TIME()
说明:与CURTIME()同义

NOW()
说明:返回当前日期时间
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT NOW();  
  2.         -> '2014-10-26 21:03:06'  

LOCALTIME()
说明:与NOW()同义

LOCALTIMESTAMP()
说明:与NOW()同义

SYSDATE()
说明:返回当前的系统日期时间
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SYSDATE();  
  2.         -> '2014-10-26 21:03:06'  

DATE(expr)
说明:提取表达式expr的日期部分
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT DATE('2014-10-01 08:00:00');  
  2.         -> '2014-10-01'  

TIME(expr)
说明:提取表达式expr的时间部分
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TIME('2014-10-01 08:00:00');  
  2.         -> '08:00:00'  

DATEDIFF(expr1,expr2)
说明:返回表达式expr1和表达式expr2的日期间隔
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT DATEDIFF('2014-10-01 08:00:00''2014-10-02 08:00:00');  
  2.         -> -1  
  3. mysql>   SELECT DATEDIFF('2014-10-01 23:59:59''2014-10-02 00:00:00');  
  4.         -> -1  

TIMEDIFF(expr1,expr2)
说明:返回表达式expr1和表达式expr2的时间间隔
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT DATEDIFF('2014-10-01 23:59:59''2014-10-02 00:00:00');  
  2.         -> -1  

DATE_FORMAT(date,format)
说明:格式化日期
说明符说明
%a工作日的缩写名称  (Sun..Sat)
%b月份的缩写名称  (Jan..Dec)
%c月份,数字形式(0..12)
%D带有英语后缀的该月日期  (0th, 1st, 2nd, 3rd, ...)
%d该月日期, 数字形式 (00..31)
%e该月日期, 数字形式(0..31)
%f微秒 (000000..999999)
%H小时(00..23)
%h小时(01..12)
%I小时 (01..12)
%i分钟,数字形式 (00..59)
%j一年中的天数 (001..366)
%k小时 (0..23)
%l小时 (1..12)
%M月份名称 (January..December)
%m月份, 数字形式 (00..12)
%p上午(AM)或下午( PM)
%r时间 , 12小时制 (小时hh:分钟mm:秒数ss 后加 AM或PM)
%S秒 (00..59)
%s秒 (00..59)
%T时间 , 24小时制 (小时hh:分钟mm:秒数ss)
%U周 (00..53), 其中周日为每周的第一天
%u周 (00..53), 其中周一为每周的第一天
%V周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用
%v周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用
%W工作日名称 (Sunday..Saturday)
%w一周中的每日 (0=周日..6=周六)
%X该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用
%x该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用
%Y年份, 数字形式,4位数
%y年份, 数字形式 (2位数)
%%%字符







































[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT DATE_FORMAT('2014-10-01 08:00:00''%W %M %Y');  
  2.         -> 'Wednesday October 2014'  

STR_TO_DATE(str,format)
说明:DATE_FORMAT(date,format)的逆过程,将给定的字符串str按format格式解析成日期
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT STR_TO_DATE('04/31/2014''%m/%d/%Y');  
  2.         -> '2014-04-31'  

TIME_FORMAT(time,format)
说明:用法与DATE_FORMAT一样,但可能只处理时、分、秒和微秒
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TIME_FORMAT('16:30:00''%h:%i %p');  
  2.         -> '04:30 PM'  

DAYOFMONTH(date)
说明:返回该月份的第几天
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT DAYOFMONTH('2014-10-08');  
  2.         -> 8  

DAYOFYEAR(date)
说明:返回该年的第几天
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT DAYOFYEAR('2014-12-31');  
  2.         -> 365  

DAYOFWEEK(date)
说明:返回星期对应的索引值(1表示周日,2表示周一,……7表示周六)
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT DAYOFWEEK('2014-10-20');  
  2.         -> 2  

WEEKDAY(date)
说明:返回星期对应的索引值(0表示周一,1表示周二,……6表示周日)
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT WEEKDAY('2014-10-20');  
  2.         -> 0  

DAYNAME(date)
说明:返回星期的名称
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT DAYNAME('2014-10-20');  
  2.         -> 'Monday'  

MONTHNAME(date)
说明:返回月份的名称
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT MONTHNAME('2014-10-08');  
  2.         -> 'October'  

EXTRACT(unit FROM date)
说明:提取日期date中的unit部分
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT EXTRACT(YEAR FROM '2014-10-08');  
  2.         -> 2014  
  3. mysql>   SELECT EXTRACT(YEAR_MONTH FROM '2014-10-08');  
  4.         -> 201410  
  5. mysql>   SELECT EXTRACT(HOUR_SECOND FROM '2014-10-08 12:30:00');  
  6.         -> 123000  

FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)
说明:将时间戳unix_timestamp格式化成字符串形式,format同DATE_FORMAT
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT FROM_UNIXTIME(1414066392)  
  2.         -> '2014-10-23 20:13:12'  
  3. mysql>   SELECT FROM_UNIXTIME(1414066392) + 0  
  4.         -> 20141023201312  

GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
说明返回:返回一个格式字符串,结果依赖参数的组合:
函数调用结果
GET_FORMAT(DATE,'USA')'%m.%d.%Y'
GET_FORMAT(DATE,'JIS')'%Y-%m-%d'
GET_FORMAT(DATE,'ISO')'%Y-%m-%d'
GET_FORMAT(DATE,'EUR')'%d.%m.%Y'
GET_FORMAT(DATE,'INTERNAL')'%Y%m%d'
GET_FORMAT(DATETIME,'USA')'%Y-%m-%d-%H.%i.%s'
GET_FORMAT(DATETIME,'JIS')'%Y-%m-%d %H:%i:%s'
GET_FORMAT(DATETIME,'ISO')'%Y-%m-%d %H:%i:%s'
GET_FORMAT(DATETIME,'EUR')'%Y-%m-%d-%H.%i.%s'
GET_FORMAT(DATETIME,'INTERNAL')'%Y%m%d%H%i%s'
GET_FORMAT(TIME,'USA')'%h:%i:%s %p'
GET_FORMAT(TIME,'JIS')'%H:%i:%s'
GET_FORMAT(TIME,'ISO')'%H:%i:%s'
GET_FORMAT(TIME,'EUR')'%H.%i.%S'
GET_FORMAT(TIME,'INTERNAL')'%H%i%s'



















[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT GET_FORMAT(DATE'EUR');  
  2.         -> '%d.%m.%Y'  

LAST_DAY(date)
说明:返回当月的最后一天
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT LAST_DAY('2014-10-08');  
  2.         -> '2014-10-31'  

YEAR(date)
说明:返回日期对应的年份
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT YEAR('2014-10-08');  
  2.         -> 2014  

QUARTER(date)
说明:返回日期对应的季度
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT QUARTER('2014-10-08');  
  2.         -> 4  

MONTH(date)
说明:返回日期对应的月份
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT MONTH('2014-10-08');  
  2.         -> 10  

WEEK(date[,mode])
说明:返回日期对应的星期数,参数mode为计算规则,描述如下:
mode一周的第一天范围Week 1 is the first week …
0星期日0-53with a Sunday in this year
1星期一0-53with 4 or more days this year
2星期日1-53with a Sunday in this year
3星期一1-53with 4 or more days this year
4星期日0-53with 4 or more days this year
5星期一0-53with a Sunday in this year
6星期日1-53with 4 or more days this year
7星期一1-53with a Sunday in this year











[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT WEEK('2014-01-01', 1);  
  2.         -> 1  

DAY(date)
说明:与DAYOFMONTH(date)同义

HOUR(time)
说明:返回time对应的小时数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT HOUR('12:20:15');  
  2.         -> 12  

MINUTE(time)
说明:返回time对应的分钟数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT MINUTE('12:20:15');  
  2.         -> 20  

SECOND(time)
说明:返回time对应的秒数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SECOND('12:20:15');  
  2.         -> 15  

MICROSECOND(expr)
说明:返回时间表达式expr对应的微秒数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT MICROSECOND('12:00:00.123456');  
  2.         -> 123456  

MAKEDATE(year,dayofyear)
说明:根据给定的年份和天数得到一个日期
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT MAKEDATE(2014, 32);  
  2.         -> '2014-02-01'  

MAKETIME(hour,minute,second)
说明:根据给定的时分秒得到一个时间
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT MAKETIME(12,30,0);  
  2.         -> '12:30:00'  

PERIOD_ADD(P,N)
说明:添加N个月至周期P(格式为YYMM或YYYYMM),返回格式为YYYYMM,注意周期参数不是日期值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT PERIOD_ADD(201406, 3);  
  2.         -> 201409  
  3. mysql>   SELECT PERIOD_ADD(9801, 36);  
  4.         -> 200101  

PERIOD_DIFF(P1,P2)
说明:返回周期P1和P2之间的月份数,P1和P2的格式为YYMM或YYYYMM,注意周期参数不是日期值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT PERIOD_DIFF(201410, 1310);  
  2.         -> 12  

SEC_TO_TIME(seconds)
说明:将给定的秒数转换成时分秒格式
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT SEC_TO_TIME(3661);  
  2.         -> '01:01:01'  
  3. mysql>   SELECT SEC_TO_TIME(3661) + 0;  
  4.         -> 10101  

TIME_TO_SEC(time)
说明:将时间time转换为秒数
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TIME_TO_SEC('02:00:01');  
  2.         -> 7201  

TIMESTAMP(expr)
说明:返回表达式expr的日期时间值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TIMESTAMP('2014-10-01');  
  2.         -> '2014-10-01 00:00:00'  

TIMESTAMP(expr1,expr2)
说明:返回将表达式expr2添加到表达式expr1的结果的日期时间值
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TIMESTAMP('2014-10-01 12:00:00','12:00:00');  
  2.         -> '2014-10-02 00:00:00'  

TIMESTAMPADD(unit,interval,datetime_expr)
说明:向给定的日期时间值加上指定的时间间隔
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TIMESTAMPADD(MONTH, 1, '2014-10-01 12:00:00');  
  2.         -> '2014-11-01 12:00:00'  
  3. mysql>   SELECT TIMESTAMPADD(HOUR, -1, '2014-10-01 12:00:00');  
  4.         -> '2014-10-01 11:00:00'  

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
说明:返回日期时间表达式datetime_expr1和datetime_expr2的时间间隔,单位由unit给定
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT TIMESTAMPDIFF(HOUR'2014-10-01 12:00:00''2014-10-01 13:30:00');  
  2.         -> 1  

UNIX_TIMESTAMP()
说明:返回当前时间的UNIX时间戳
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT UNIX_TIMESTAMP();  
  2.         -> 1414330231  

UNIX_TIMESTAMP(date)
说明:返回date对应的UNIX时间戳
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT UNIX_TIMESTAMP('2014-10-01 12:00:00');  
  2.         -> 1412136000  

UTC_DATE()
说明:返回当前的UTC日期
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT UTC_DATE();  
  2.         -> '2014-10-26'  

UTC_TIME()
说明:返回当前的UTC时间
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT UTC_TIME();  
  2.         -> '13:31:18'  

UTC_TIMESTAMP()
说明:返回当前的UTC日期时间
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT UTC_TIMESTAMP();  
  2.         -> '2014-10-26 13:31:18'  

WEEKOFYEAR(date)
说明:返回日期对应的星期数,相当于WEEK(date, 3)
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT WEEKOFYEAR('2014-01-01');  
  2.         -> 1  

YEARWEEK(date[,mode])
说明:日期对应的年份和星期数,参数mode与WEEK()作用相同。
[sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. mysql>   SELECT YEARWEEK('2014-01-01');  
  2.         -> 201352  

加密和压缩函数

AES_ENCRYPT(str,key_str);
AES_DECRYPT(crypt_str,key_str);
说明:AES加密解密函数
[sql]  view plain copy
  1. mysql>   SELECT AES_DECRYPT(AES_ENCRYPT('hello''MySQL'), 'MySQL');  
  2.         -> 'hello'  

DES_ENCRYPT(str[,{key_num|key_str}])
DES_DECRYPT(crypt_str[,key_str])
说明:DES加密解密函数
[sql]  view plain copy
  1. mysql>   SELECT DES_DECRYPT(DES_ENCRYPT('hello''MySQL'), 'MySQL');  
  2.         -> 'hello'  

ENCODE(str,pass_str)
DECODE(crypt_str,pass_str)
说明:以pass_str作为密码进行加密解密
[sql]  view plain copy
  1. mysql>   SELECT DECODE(ENCODE('hello''MySQL'), 'MySQL');  
  2.         -> 'hello'  

ENCRYPT(str[,salt])
说明:使用Unix crypt()系统调用加密,Windows不支持该函数
[sql]  view plain copy
  1. mysql>   SELECT ENCRYPT('hello');  
  2.         -> 'VxuFAJXVARROc'  

MD5(str)
说明:32位MD5加密
[sql]  view plain copy
  1. mysql>   SELECT MD5('hello');  
  2.         -> '5d41402abc4b2a76b9719d911017c592'  

SHA(str)
SHA1(str)
说明:SHA1加密
[sql]  view plain copy
  1. mysql>   SELECT SHA1('hello');  
  2.         -> 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d'  

SHA2(str,hash_length)
说明:SHA2加密,hash_length的值只能是224,256,384,512或0(等同于256)
[sql]  view plain copy
  1. mysql>   SELECT SHA2('hello', 256);  
  2.         -> '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'  

PASSWORD(str)
说明:返回字符串str加密后的密文,PASSWORD()加密是单向不可逆的。
[sql]  view plain copy
  1. mysql>   SELECT PASSWORD('hello');  
  2.         -> '*6B4F89A54E2D27ECD7E8DA05B4AB8FD9D1D8B119'  
注:PASSWORD()函数在MySQL服务器中的鉴定系统使用;你不应将它用在你个人的应用程序中。为达到同样目的,可使用MD5()或SHA1()代替。

COMPRESS(string_to_compress)
说明:压缩字符串string_to_compress
[sql]  view plain copy
  1. mysql>   SELECT LENGTH(COMPRESS(REPEAT('a',1000)));  
  2.         -> 21  
  3. mysql>   SELECT LENGTH(COMPRESS('a'));  
  4.         -> 13  
  5. mysql>   SELECT LENGTH(COMPRESS(''));  
  6.         -> 0  

UNCOMPRESS(string_to_uncompress)
说明:将被压缩的字符串解压
[sql]  view plain copy
  1. mysql>   SELECT UNCOMPRESS(COMPRESS('hello'));  
  2.         -> 'hello'  

UNCOMPRESSED_LENGTH(compressed_string)
说明:返回被压缩的字符串compressed_string在被压缩前的长度
[sql]  view plain copy
  1. mysql>   SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a',1000)));  
  2.         -> 1000  

VALIDATE_PASSWORD_STRENGTH(str)
说明:验证密码的强度,值的范围是0(弱)到100(强),如果没有安装validate_password插件值永远是0,该函数在5.6.6版本新增的。
Password TestReturn Value
Length < 4 0
Length ≥ 4 and < validate_password_length25
Satisfies policy 1 (LOW) 50
Satisfies policy 2(MEDIUM) 75
Satisfies policy 3(STRONG) 100








信息函数

CHARSET(str)
说明:返回字符串自变量的字符集
[sql]  view plain copy
  1. mysql>   SELECT CHARSET('数据库');  
  2.         -> 'utf8'  

COERCIBILITY(str)
说明:返回字符串自变量的整序可压缩性值。
CoercibilityMeaningExample
0Explicit collationValue with COLLATE clause
1No collationConcatenation of strings with different collations
2Implicit collationColumn value, stored routine parameter or local variable
3System constantUSER() return value
4CoercibleLiteral string
5IgnorableNULL or an expression derived from NULL








[sql]  view plain copy
  1. mysql>   SELECT COERCIBILITY('hello');  
  2.         -> 4  

COLLATION(str)
说明:返回字符串自变量的排序方式
[sql]  view plain copy
  1. mysql>   SELECT COLLATION('hello')  
  2.         -> 'utf8_general_ci'  

CONNECTION_ID()
说明:返回连接的连接ID(线程ID)
[sql]  view plain copy
  1. mysql>   SELECT CONNECTION_ID();  
  2.         -> 13  

CURRENT_USER()
说明:返回被验证过的用户名和主机
[sql]  view plain copy
  1. mysql>   SELECT CURRENT_USER();  
  2.         -> 'root@localhost'  

USER()
说明:返回提供给客户端的用户名和主机
[sql]  view plain copy
  1. mysql>   SELECT USER();  
  2.         -> 'root@localhost'  

SESSION_USER()
说明:与USER()同义

SYSTEM_USER()
说明:与USER()同义

DATABASE()
说明:返回默认(当前)的数据库名
[sql]  view plain copy
  1. mysql>   SELECT DATABASE()  
  2.         -> 'hueyhome'  

SCHEMA()
说明:与DATABASE()同义


VERSION()
说明:返回当前MySQL服务器的版本
[sql]  view plain copy
  1. mysql>   SELECT VERSION();  
  2.         -> '5.6.10'  

其他函数

BIT_COUNT(N)
说明:返回数值N对应的二进制表示被置一的个数。
[sql]  view plain copy
  1. mysql>   SELECT BIT_COUNT(15);  
  2.         -> 4  

DEFAULT(col_name)
说明:返回字段col_name的默认值


INET_ATON(expr)
说明:返回IPv4地址对应的数值
[sql]  view plain copy
  1. mysql>   SELECT INET_ATON('127.0.0.1');  
  2.         -> 2130706433  

INET_NTOA(expr)
说明:返回数值对应的IPv4地址
[sql]  view plain copy
  1. mysql>   SELECT INET_NTOA(2130706433);  
  2.         -> '127.0.0.1'  

INET6_ATON(expr)
说明:返回IPv6地址对应的数值
[sql]  view plain copy
  1. mysql>   SELECT HEX(INET6_ATON('fdfe::5a55:caff:fefa:9089'));  
  2.         -> 'FDFE0000000000005A55CAFFFEFA9089'  

INET6_NTOA(expr)
说明:返回数值对应的IPv6地址
[sql]  view plain copy
  1. mysql>   SELECT INET6_NTOA(UNHEX('FDFE0000000000005A55CAFFFEFA9089'));  
  2.         -> 'fdfe::5a55:caff:fefa:9089'  

IS_IPV4(expr)
说明:判断expr是否为一个IPv4地址
[sql]  view plain copy
  1. mysql>   SELECT IS_IPV4('127.0.0.1');  
  2.         -> 1  
  3. mysql>   SELECT IS_IPV4('127.0.0.256');  
  4.         -> 0  

IS_IPV4_COMPAT(expr)
说明:判断expr是否为一个IPv4兼容地址
[sql]  view plain copy
  1. mysql>   SELECT IS_IPV4_COMPAT(INET6_ATON('::135.75.43.52'));  
  2.         -> 1  

IS_IPV4_MAPPED(expr)
说明:判断expr是否为一个IPv4映射地址
[sql]  view plain copy
  1. mysql>   SELECT IS_IPV4_MAPPED(INET6_ATON('::ffff:1.2.3.4'));  
  2.         -> 1  

IS_IPV6(expr)
说明:判断expr是否为一个IPv6地址
[sql]  view plain copy
  1. mysql>   SELECT IS_IPV6('fdfe::5a55:caff:fefa:9089');  
  2.         -> 1  

UUID()
说明:返回通用唯一识别码
[sql]  view plain copy
  1. mysql>   SELECT UUID();  
  2.         -> 'ad238618-6661-11e4-87cf-b01041757ad4'  

UUID_SHORT()
说明:返回整数值的UUID
[sql]  view plain copy
  1. mysql>   SELECT UUID_SHORT();  
  2.         -> '23742392683200512'  

SLEEP(duration)
说明:休眠duration秒
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值