mySql常用函数说明

#mySql的数学函数
select ABS(-5); #绝对值
select ceiling(-5.8); #取大整数
select floor(-5.8); #取小整数
select LEAST(10,3,23,40,0);#取最小数
select GREATEST(1,23,4,6,9,12,9);#取最大数
select MOD(10,3);#除余
select PI();#π的值
select RAND(2);#随机数
select ROUND(10.4367,3);#四舍五入 取后面三位小数
select TRUNCATE(10.12321,2); #后两位截断函数
select SIGN(3.4);#判断正负数   负数返回-1 ,正数返回1  0 返回 0
select COS(1);#余弦函数
select DEGREES(1);#弧度转换为角度
select Power(2,3);#二的三次方 Pow 简写
select SQRT(4);#开方

#聚合函数
select AVG(a.sex) from `user` a; #平均值
select MAX(a.sex) from `user` a; #最大值
select MIN(a.sex) from `user` a; #最小值
select SUM(a.sex) from `user` a; #求和
select COUNT(a.sex) from `user` a; #统计个数
select STD(a.sex)  from `user` a; #标准偏差

#字符串处理函数
select  LENGTH('hello');#取长度
select  LCASE('hello');#取小写
select  UCASE('hello');#取大写
select  STRCMP('hello','yes');#比较两个字符串的大小(开头字母的顺序)hello>yes:1 hello<yes:-1  等于: 0
select  position('yes' IN 'hyesman');#字符串查找定位
select  replace('yes','y','hello');#替换字符串
select  insert('yes man!',2,3,'hello');#插入函数2,3位之间插入
select  concat('hello','world');#合并函数
select  concat_ws(':','world','hello');#加上间隔符号合并
select  left('helloworld',3);#取左边的前三个字符
select  right('hello',3);#取最后面三个字符
select  ltrim('     hello   ');#去出左边空格
select  rtrim('     hello   ');#去除右边空格
select  trim('     hello   ');#去除佐佑两边空格
select  substring('macket',2,3);#从第二位开始往后取三位字符串

#日期函数
select  now();#取现在的是时间
select  curtime();#取当前时间
select  curdate();#去现在的时间
select  year('20160609');#取年份
select  month('2016-06-09');#取月份
select  monthname('2016-06-09');#取月份的英文名称
select  dayofyear('2016-06-09');#这一年中的第几天
select  dayofweek('2016-06-09');#在一个星期中的第几天
select  dayname('2016-06-09');#Thursday 取星期
select  hour('14:56');#    取小时
select  minute('14:56');#    取分钟
select  second('14:56:23');#取秒
select  date_add(now(),interval 3 year);#当前时间往后推三年
select  date_add(now(),interval 3 month);#当前时间往后推三个月
select  date_add(now(),interval 3 day);#当前时间往后推三天
select  date_sub(now(),interval 3 day);#当前时间往前推三天
select  date_sub(now(),interval 3 month);#当前时间往前推三个月
select  date_sub(now(),interval 3 year);#当前时间往前推三年

#对日期格式化函数
#W:星期几   D:那一天  M:月份  Y:年份  r:当前时间
select date_format(now(),'%W %D %M %Y %r');
select date_format(now(),'%w %d %m %y %r');
#时间,格式化  100个小时 21分,12秒
select time_format('100:21:12','%h:%i %p');
#数字转换IP地址 & IP地址转换成一个数字
select inet_aton('192.168.11.133');
select inet_ntoa('3232238469');#


#类型转换函数
select 1 + '99';
select 1 + cast('99' as signed)

#加了 binary 区分大小写
select 'f'=binary 'F','f'=cast('F' as binary);#转二进制
select convert('23',signed);#数值,转换数据类型


#mySql的数据加密函数
select password('secret'),password('secret');#加密过程不可逆,同一字符串加密相同
select encrypt('secret','abc');#
select encode('tanmujiang','key');#互相可逆加密效果,key为解密效果
select decode(encode('tanmujiang','key'),'key');#解密
select aes_encrypt('secret','key');#aes加密
select aes_decrypt(aes_encrypt('secret','key'),'key');#解密
select MD5('secret');#MD5加密
select SHA('secret');#SHA加密


#mySql控制流函数
select  if(1<10,2,3);#相当于三元表达式
select ifnull(1,2);#如果第一个字符为空,返回本身 1,否则返回二
select ifnull(null,2);#返回2
select nullif(1,2);#如果第一个参数和第二个参数相等返回1,相等返回null
select nullif(1,1);#返回null

#如果前面条件成立,返回一个指定值
SELECT
    CASE 4
WHEN 0 THEN
    '一等奖'
WHEN 0 THEN
    '二等奖'
WHEN 3 THEN
    '三等奖'
ELSE
    '幸运奖'
END;

SELECT
    CASE 'green'
WHEN 'red' THEN
    100
WHEN 'green' THEN
    200
ELSE
    300
END;


#最后记录一个逼格高点清空表数据方法
truncate table visit;

原文地址:https://www.cnblogs.com/laotan/p/5568692.html