mysql函数

Mysql中的常用函数种类:

                 mysql中提供了很多函数,可以简化操作。常见的函数类型有数学函数,字符串函数,日期和时间函数,条件判断函数,系统信息函数,加密函数,格式化函数。

 

 数学函数:

 

函数名 注释 使用方法 返回 
CEIL(X)/DEILING(X) 返回大于或等x的最小整数 select ABS(-1) 1
CEIL(X)/DEILING(X) 返回大于或等x的最小整数 select CEIL(1.5) 2
FLOOR(X) 返回小于或等于x的最大整数 select FLOOR(1.5) 1
EXP(X) 返回e的x次方,对数 select exp(3) 20.085536923188
GREATEST(expr1,expr2) 返回列表中最大的值 select GREATEST(34,25) 34
LEAST(expr1,expr2) 返回列表中最小的值 select LEAST(34,25) 25
LN(x) 返回x的自然对数 select LN(2) 0.6931471805599453
LOG(x) 返回自然对数(以e为底的对数) select LOG(20.085536923188) 3
POW(x,y)/POWER(X,Y) 返回x的y次方 select POW(2,2) 4
RAND() 返回一个0-1的随机数 select RAND() 小于1的随机小数
SIGN(x) 返回x的符号 select SIGN(x) x为负数,0,正数分别返回-1,0,1
SQRT(X) 返回x的平方根 select SQRT(25) 5

TRUNCATE(x,y)

返回x保留小数点到y位的值(不进行四舍五入) select TRUNCATE(1.2556,2) 1.25

 

 

 

字符串函数:

函数名 注释 使用方法 返回
ASCII() 返回字符串的第一个字符的ASCII码 select ASCII(‘ADF’) 65
LENGTH() 返回字符串长度 select LENGTH('ASDF') 4
CHAR_LENGTH() 返回字符串长度 select CHAR_LENGTH('ASDF') 4
VARCHAR_LENGTH() 返回字符串长度 select VACHAR_LENGTH('ASDF') 4
CONCAT(s1,s2,s3) 拼接字符串 select CONCAT('hello','word') helloword

FIND_IN_SET(s1,s2)

返回在字符传中s2中与s1匹配的字符传位置

select FIND_IN_SET('c','a,c,v') 2
FORMAT(x,n) 可以将数字x进行格式化,将x保留到小数点n位,最后一位四舍五入 select FORMAT(11123.456,2) 11,123.46
INSERT(s1,n,m,s2) 将s2替换s1的n位置开始长度为m的字符串 select INSERT('baidu.com',1,5,'nihao') nihao.com
LOCATE(s1,s) 从字符串s中获取s1的开始位置 select LOCATE('sr','dsfsr') 4
LCASE(s)/LOWER(s) 将字符串s的所有字母变成小写字母 select LCASE(‘DDSS’) ddss
UCASE(s)/UPPER(s) 将字符串s的字母变成大写字母 select UCASE(‘ddd’) DDD

TRIM(s)

将字符串s的左右空格删掉 select TRIM(‘  run  ’) run
LTRIM(s) 将字符串s的左空格删掉 select LTRIM(‘  run  ’) run 
RTRIM(s) 将字符串s的右边空个删掉 select LTRIM(‘  run  ’)  run
SUBSRT(s,n,m) 从字符串s的处截取m长度的子字符串 select SUBSRT('sdff',3) sdf
POSITION(s1 in s) 从字符串s中获取s1的开始位置 select POSITION('a' in 'bac') 2
REPEAT(s,n) 将字符串s重复n次,且自动拼接 select REPEAT(‘dds’,2) ddsdds
REVESE(s) 字符串反转 select REVESE(‘asdf’) fdsa
 STRCMP(s1,s2)  比较s1和s2长度和内部元素,如果相等就返回0,若s1>s2返回1,若s1<s2就返回-1  select STRCMP('asf','asf')  0

  

 日期函数:

函数名 注释 使用方法 返回
CURDATE/CURRENT_DATE 返回当前日期 select  CURDATE() 2020-02-02
CURRENT_TIME/CURTIME 返回当前时间 select CURTIME() 21:21:23
CURRENT_TIMESTRAP 返回当前日期和时间 select CURREND_TIMESTRAP()

2020-02-02 

21:23:24

ADDDATE(d,n) 计算起始日期d加上n天的日期 select ADDDATE(‘2020-02-02’,10 ) 2020-02-12
ADDTIME(t,n) 计算其实时间t加上n秒的时间 select ADDTIME('2020-02-02 21:28:35',5) 2020-02-02 21:28:40
DATE() 从日期或时间表达式中提取日期值 select DATE('2020-02-02 22:24:33')  2020-02-02
DAY(d) 返回日期值d的日期部分 select DAY('2020-02-02')  2
DATEDIFF(d1,d2) 计算d1和d2之间相隔的天数 select DATEDIFF('2020-02-02','2021-02-02')   -366
DATE_FORMAT 按照表达式显示日期 select DATE_FORMAT('2020.02.02 22:29:35','%Y-%m-%d %r')  2020-02-02 22:29:35 PM
 DAYNAME(d) 返回日期d是星期几 select DAYNAME('2020-02-02') Sunday
 DAYOFMONTH(d) 返回日期d是本月的第几天 select DAYOFMONTH('2020-02-02')  2
 DAYOFWEEK(d) 返回日期d是星期几,星期日是1,星期六是7,依次类推  select DAYOFWEEK('2020-02-02')  1
 DAYOFYEAR(d)  返回日期d是本年的第几天  select DAYOFYEAR('2020-02-01')  32
 extract(type FROM d)  从日期d中获取指定的值  select EXTRACT(day FROM '2020-02-01')  1
 UNIX_TIMESTAMP  时间戳,不传参数默认当前时间戳  select UNIX_TIMESTAMP()  1580654832
 FROM_UNIXTIME  时间戳转结构化时间  select FROM_UNIXTIME(UNIX_TIMESTAMP())  2020-02-02 22:46:28

 

条件判断函数:

    MySql中有4个函数用来进行条件操作,进行流程控制,也叫做流程控制函数,这些函数可以实现sql的条件逻辑。

              1 CASE WHEN X THEN Y ELSE N END 

                   当x为真时,返回y,否则返回n

    2 IF(x,y,n)

      当x为真,返回y,否则返回n

    3 IF(arg1,arg2)

      当arg1不是空,则返回arg1,否则返回arg2

    4 NULLIF(arg1,arg2)

      当arg1=arg2返回null,否则返回arg1 

    mysql中的多路分支,case函数

类型转化函数:

                  mysql中的cast函数可以转化数据类型

select cast(now() as signed INTEGER),curdate()+0;

 

系统函数:

查看当前数据库名称
-- select DATABASE()
将表达式pow(2,4)运行20次
-- select BENCHMARK(20,(POW(2,4)))
查看链接数
-- select CONNECTION_ID()
查看最后一个select查询进行检索的总行数
-- select FOUND_ROWS()
查看当前登录用户名
-- select USER();
-- select SYSTEM_USER()
查看数据库版本
select VERSION()

  

 

加密函数:

-- 返回用秘钥key_str对字符串str  利用加密算法后的二进制结果
-- select AES_ENCRYPT(str,key_str)

-- 返回用秘钥key_str对字符串crypt_str解密密后的结果
-- select AES_DECRYPT(crypt_str,key_str)

--  使用pass_str作为解密加密
-- select DECODE(crypt_str,pass_str)

--  使用salt 加密字符串

-- select ENCRYPT(str[,salt])


-- 使用pass_str作为秘钥加密,二进制

-- select ENCODE(str,pass_str)

-- 使用md5加密

select MD5(str)

-- 返回str加密版本,不可逆
select PASSWORD(str)

--  计算字符串str的安全散列算法校验和
select SHA(str)

  

posted @ 2020-02-02 18:13  Yuan_x  阅读(179)  评论(0编辑  收藏  举报