
一、数学函数和控制流函数
1、数学函数
(1)abs(x)
计算x的绝对值。
1 select abs(‐5.5),abs(10)

(2)pow(x,y)
计算x的y次方的值。
1 select pow(2,8),pow(8,2)

(3)round(x) 和 round(x,y)
对数字x进行四舍五入,结果是整数 / 对数字x进行四舍五入,保留小数点后面y位
1 select round(2.5),round(‐2.35),round(2.35,1),round(3.1415926,3)

(4)rand() 和 rand(x)
随机产生一个浮点数,范围在(0,1)之间 / 产生重复序列
1 select rand(),rand(),rand(7),rand(7),round(rand())

(5)truncate(x,y)
截取数字x的小数点后y位
1 select truncate(2.35,1),truncate(3.785,2),truncate(10,3),truncate(250,‐2)

2、控制流函数
(1)if(条件表达式,v1,v2)如果条件表达式的结果为true,返回v1,否则返回v2
1 select if(7>8,'正确','错误')

(2)ifnull(v1,v2)
如果v1不为null,就返回v1,否则返回v2
1 select id,name,sex,ifnull(class,'待分配') as class from student

二、字符串函数
1、char_length(s)
获取字符串包含的字符数目。
1 select char_length('19计算机网络技术,')

2、concat(s1,s2,...)
字符串合并。
1 select concat('101','‐','鱼鱼')
3、insert(str,pos,len,newstr)
字符串替换。
参数说明:(1)str:代表被操作的字符串;(2)pos:操作字符串的其实位置;(3)len:需要操作的字符串的长度;(4)newstr:替换被操作的字符串的字符串
1 select insert('中国加油',1,2,'武汉')

4、substr(str,pos,len)
字符从截取。参数说明:(1)str:代表被操作的字符串;(2)pos:操作字符串的其实位置;(3)len:需要操作的字符串的长度1 select substr ( '533022200101211423' , 7 , 8 )

5、locate(s,str)
匹配字符串s在字符串str中第一次出现的位置。
1 select locate('3','533022200101211423')

三、日期和时间函数
1、curdate()、curtime()、now()/sysdate()
curdate():获取当前系统日期。curtime():获取当前系统时间。now()/sysdate():获取当前系统日期+时间。
1 select curdate(),curtime(),now(),sysdate()

2、year(date)/month(date)/day(date)
返回日期的年/月/日
1 select year('2020‐04‐07'),month('2020‐04‐07'),day('2020‐04‐07')

3、dayofyear(date)
返回日期是对应年份的第几天。
1 select dayofyear('2020‐03‐28')

4、datediff(date1,date2)
计算两个日期之间间隔多少天。date2代表起始日期,date1代表结束日期。
1 select datediff('2020‐04‐07','2001‐01‐21')

四、系统信息函数和加密函数
1、系统信息函数
(1)version()
返回当前MySQL的版本号。
1 select version()

(2)show processlist
返回当前所有的连接数和连接状态。
1 show processlist

2、加密函数
(1)password(str)(2)md5(str)
1 select password('admin123'),md5('admin123')
注意:password和md5加密不可逆。
(3)encode(str,pwd_str) / decode(encode(str,pwd_str),pwd_str)
1 select encode('admin123','hello')
2 select decode(encode('admin123','hello'),'hello')