Mysql-内置函数

Mysql-内置函数

Mysql-内置函数

mysql中的内置函数
  • 字符串函数
    • 查看字符的ascii码值ascii(str),str是空串时返回0
      • select ascii("a");
    • 查看ascii码值对应的字符char(数字)
      • select char(97);
    • 拼接字符串concat(str1,str2...)
      • select concat(12,34,'ab');
    • 包含字符个数length(str)
      • select length('abc');
    • 截取字符串  
      • 返回字符串str的左端len个字符 left(str,len)
      • 返回字符串str的右端len个字符 right(str,len)
      • 返回字符串str的位置pos起len个字符 substring(str,pos,len)
        • 例子:select substring('abc123',2,3);
    • 去除空格
      • ltrim(str)返回删除了左空格的字符串str
      • rtrim(str)返回删除了右空格的字符串str
      • trim([方向 “x” from str)返回从某侧删除remstr后的字符串str,方向词包括both、leading、trailing,表示两侧、左、右(只填入一个字符串默认删除两侧的空格)
        • select trim(trailing 'x' FROM 'xxxbarxxx');
    • 返回由n个空格字符组成的一个字符串space(n)
      • select space(10);
    • 替换字符串replace(str,from_str,to_str)
      • select replace('abc123','123','def');     “将字符串中的123替换为def”
    • 大小写转换,函数如下
      • lower(str)   将字符串全部变为小写
      • upper(str)  将字符串全部变为大写
  • 数学函数
    • 求绝对值abs(n)
      • select abs(-32);
    • 求m除以n的余数mod(m,n),同运算符%
      • select mod(10,3);
    • 地板floor(n),表示不大于n的最大整数
      • select floor(2.3);
    • 天花板ceiling(n),表示不小于n的最小整数
      • select ceiling(2.3);
    • 求四舍五入值round(n,d),n表示原数,d表示小数位置,默认为0
      • select round(1.6);
    • 求x的y次幂pow(x,y)
      • 求x的y次幂pow(x,y)
    • 获取圆周率PI()
      • select PI();
    • 随机数rand(),值为0-1.0的浮点数
      • select rand();
        • 可以用  order by rand() 对结果进行乱序排序;
  • 日期时间函数
    • 提醒:日期的格式:2016-12-21 00:00:00
    • 获取日期/时间中的子值(值为整数类型)
      • year(date)返回date的年份(范围在1000到9999)
      • month(date)返回date中的月份数值
      • day(date)返回date中的日期数值
      • hour(time)返回time的小时数(范围是0到23)
      • minute(time)返回time的分钟数(范围是0到59)
      • second(time)返回time的秒数(范围是0到59)
    • 日期计算,使用+/-运算符,数字后面的关键字为year、month、day、hour、minute、second(可以用interval来将数值转换为标准日期的格式)
      • 示例:select '2016-12-21 00:00:00'+interval 1 day;
    • 日期格式化 date_format(datetime,format)    “获得构造的fomat形式的日期格式”
      • 参数format可选值如下:
      • 示例:
        • select date_format('2016-12-21 00:00:00','%Y %m %d');
    • 当前日期current_date()
      • select current_date();
    • 当前时间current_time()
      • select current_time();
    • 当前日期时间now()
      • select now();
  • 类型转换函数
    • 类型换换函数 cast 
      • 格式:cast(value as type)      “value表示要转换的值, type表示目标类型”
      • 示例:SELECT CAST('125.83' AS signed);
    • 类型换换函数 convert
      • 格式:convert(value, type)    value表示要转换的值, type表示目标类型
      • 示例:SELECT CONVERT('125.83',SIGNED);
  • 流程控制
    • 绍:类似于python中的if语句,进行选择判断,根据输入值的不同,返回不同的结果;
    • case 语法:
      • case语法1:等值判断
        • 说明:当变量等于某个比较值的时候,对应的结果会被返回;如果所有的比较值都不相等则返回else的结果;如果没有else并且所有比较值都不相等则返回null。
        • 格式:
          • case 变量 when 比较值1 then 结果1 when 比较值2 then 结果2 ... else 结果n end
        • 示例:
          • select case n when 1 then 'one' when 2 then 'two' else 'zero' end。。。;
      • case语法2:非等值判断,可以进行 > 、<、!=等判断
        • 说明:当某个条件返回true时,对应的结果被返回;如果所有的条件都不返回true则返回else的结果;如果没有else并且所有条件都不返回true则返回null
        • 格式:
          • case when 条件1 then 结果1 when 条件2 then 结果2 ... else 结果n end
        • 示例:
          • select case when 1 > 2 then 'part1' when 3 > 2 then 'part2' else 'part3' end 。。。;
    • if 语句:
      • 说明:如果表达式的结果为true,则返回结果1,否则返回结果2
      • 格式:
        • if(表达式,结果1,结果2)
      • 例子:
        • select if(1 > 2,2,3) as result;
    • ifnull 语句
      • 说明:如果表达式1不为null,则返回表达式1的结果,否则返回表达式2的结果。
      • 格式:
        • ifnull(表达式1,表达式2)
      • 示例:
        • select ifnull(1,0) as result;
    • nullif语句
      • 说明:如果表达式1等于表达式2,则返回null,否则返回表达式1的结果;
      • 格式:
        • nullif(表达式1,表达式2)
      • 示例:
        • select nullif(1,0) as result;
    • 备注:所有的as result 都可以不写



刘小恺(Kyle) wechat
如有疑问可联系博主