MYSQL常用函数

一、数学函数

ABS(x) 返回x的绝对值

SELECT ABS(-1)

 MYSQL常用函数

CEIL(x),CEILING(x)    向上取整

SELECT CEIL(1.5)

MYSQL常用函数

RAND()    返回0到1的随机数

SELECT RAND()

 MYSQL常用函数

PI()    返回圆周率(3.141593)

SELECT PI()

 MYSQL常用函数

TRUNCATE(x,y)   返回数值x保留到小数点后y位的值(与ROUND最大的区别是不会进行四舍五入)

ROUND(x,y)     保留x小数点后y位的值,但截断时要进行四舍五入

SELECT TRUNCATE(1.23456,3)
SELECT ROUND(1.23456,3) 

 MYSQL常用函数

MYSQL常用函数

POW(x,y).POWER(x,y)    返回x的y次方

SELECT POW(2,3)

 MYSQL常用函数

SQRT(x)    返回x的平方根

select sqrt(3)

 MYSQL常用函数

EXP(x)    返回e的x次方

SELECT EXP(3)

 MYSQL常用函数

MOD(x,y)    返回x除以y以后的余数

SELECT MOD(5,2)

 MYSQL常用函数

二、字符串函数(数据库中字符串索引从1开始)

CHAR_LENGTH(s)    返回字符串s的字符数

SELECT CHAR_LENGTH('你好123')

MYSQL常用函数

CONCAT(s1,s2,...)    将字符串s1,s2等多个字符串合并为一个字符串

SELECT CONCAT('12','34')

 MYSQL常用函数
CONCAT_WS(x,s1,s2,...)    同CONCAT(s1,s2,...)函数,但是每个字符串直接要加上x

SELECT CONCAT_WS('@','12','34') 

MYSQL常用函数
INSERT(s1,x,len,s2)    将字符串s2替换成 s1的x位置开始长度为len的字符串

SELECT INSERT('12345',1,3,'abc') 

MYSQL常用函数

UPPER(s),UCAASE(S)    将字符串s的所有字母变成大写字母

SELECT UPPER('abc') 

MYSQL常用函数
LOWER(s),LCASE(s)    将字符串s的所有字母变成小写字母

SELECT LOWER('ABC') 

MYSQL常用函数
LEFT(s,n)    返回字符串s的前n个字符

SELECT LEFT('abcde',2) 

MYSQL常用函数
RIGHT(s,n)    返回字符串s的后n个字符

SELECT RIGHT('abcde',2) 

MYSQL常用函数
LTRIM(s)    去掉字符串s开始处的数据 (L是left)
RTRIM(s)    去掉字符串s结尾处的数据(R是right)
TRIM(s)    去掉字符串s开始和结尾处的数据

SELECT TRIM('@' FROM '@@abc@@')

MYSQL常用函数
REPEAT(s,n)    将字符串s重复n次

SELECT REPEAT('ab',3)

MYSQL常用函数
SPACE(n)    返回n个空格
REPLACE(s,s1,s2)    将字符串s2替代字符串s中的字符串s1

SELECT REPLACE('abca','a','x')

MYSQL常用函数
STRCMP(s1,s2)    比较字符串s1和s2   相同返回0  不同返回1
SUBSTRING(s,n,len)    获取从字符串s中的第n个位置开始长度为len的字符串
LOCATE(s1,s),POSITION(s1 IN s)    从字符串s中获取s1的开始位置

SELECT LOCATE('b', 'abc')

MYSQL常用函数

REVERSE(s)    将字符串s的顺序反过来
SELECT REVERSE('abc')
FIELD(s,s1,s2...)    返回第一个与字符串s匹配的字符串位置

SELECT FIELD('c','a','b','c') 

 MYSQL常用函数

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

CURDATE(),CURRENT_DATE()    
返回当前日期

SELECT CURDATE()
->2014-12-17

CURTIME(),CURRENT_TIME    
返回当前时间

SELECT CURTIME()
->15:59:02


NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),

SYSDATE(),LOCALTIMESTAMP()

返回当前日期和时间

SELECT NOW()
->2014-12-17 15:59:02

YEAR(d),
MONTH(d)
DAY(d)
返回日期d中的月份值,1->12

SELECT MONTH('2011-11-11 11:11:11')
->11

MONTHNAME(d)    
返回日期当中的月份名称,如Janyary

SELECT MONTHNAME('2011-11-11 11:11:11')
->November

DAYNAME(d)    
返回日期d是星期几,如Monday,Tuesday

SELECT DAYNAME('2011-11-11 11:11:11')
->Friday

DAYOFWEEK(d)    
日期d今天是星期几,1星期日,2星期一

SELECT DAYOFWEEK('2011-11-11 11:11:11')
->6

WEEKDAY(d)    
日期d今天是星期几,

 0表示星期一,1表示星期二

WEEK(d),WEEKOFYEAR(d)    
计算日期d是本年的第几个星期,范围是0->53

SELECT WEEK('2011-11-11 11:11:11')
->45

DAYOFYEAR(d)    
计算日期d是本年的第几天

SELECT DAYOFYEAR('2011-11-11 11:11:11')
->315

DAYOFMONTH(d)    
计算日期d是本月的第几天

SELECT DAYOFMONTH('2011-11-11 11:11:11')
->11

QUARTER(d)    
返回日期d是第几季节,返回1->4

SELECT QUARTER('2011-11-11 11:11:11')
->4

HOUR(t)    
返回t中的小时值

SELECT HOUR('1:2:3')
->1

MINUTE(t)    
返回t中的分钟值

SELECT MINUTE('1:2:3')
->2

SECOND(t)    
返回t中的秒钟值

SELECT SECOND('1:2:3')
->3




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

函数    作用
VERSION()    
返回数据库的版本号

SELECT VERSION()
->5.0.67-community-nt

CONNECTION_ID()     返回服务器的连接数
DATABASE()、SCHEMA    返回当前数据库名
USER()、SYSTEM_USER()
返回当前用户

五、加密函数
  加密函数是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