0609mysql基础:内置函数

mysql内置函数(对查出的列进行操作)

对字符串的操作============================================================================

一、字符串截取

  1、left('absd',3) = abs:截取左边三个字符
  2、right('absd',3) = bsd:截取右边三个字符
  3、substring('sqlstudy.com', 4) = study.com:从字符串的第 4 个字符位置开始取,直到结束。
  4、substring('sqlstudy.com', 4, 2) = st:从字符串的第 4 个字符位置开始取,只取 2 个字符。
  5、substring('sqlstudy.com', -4) = .com:从字符串的倒数第 4 个字符位置开始取,直到结束。
  6、substring('sqlstudy.com', -4, 2) = .c:从字符串的倒数第 4 个字符位置开始取,只取 2 个字符。

二、大小写转换
  1、LOWER('abcDE你好') = abcde你好:字符串转小写
  2、UPPER('abcDE你好') = ABCDE你好:字符串转大写
三、返回长度
  1、length(列名)
  2、select length(sname) from student;
四、字符串连接
  1、concat()函数可以连接一个或者多个字符串、返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
  concat(列1,列2,'str1')、select concat(sname,'性别是',ssex) from student

  2、CONCAT_WS是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

  concat_ws(separator,str1,str2)

  separator是在str1与str2连接中间显示的自定义字符
  select  concat_ws('---',sname,ssex) from student

  3、group_concat()分组拼接函数

  group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
五、字符串替换
  1、insert(str,start,len,newstr)返回str,其起始于start位置,长度为len的子串被newstr取代。
  insert('abcdefg',2,4,'hello') 从b开始数4位(bcde) 把bcde替换成hello
  2、replace(str,a,b) 在字符串str中用字符串b替换所有的字符串a
  也可以用来去除字符串中的空格
六、删除空格
        1、删除字符串的左边空格:ltrim(列)
        2、删除字符串的右边空格:rtrim(列)
        3、删除字符串两边的空格:trim(列)
七、比较
        strcmp(s1,s2):如果S1比S2小,返回-1;如果S1比S2大则返回1;如果相等则返回0
八、填充
        1、左填充:lpad(str,n,pad)用pad对字符串str从最左边进行填充,直到总长度达到n
        2、右填充:rpad(str,n,pad)  用pad对字符串str从最右边进行填充,直到总长度达到n
        select lpad(sname,4,'abc') from student
九、重复
        repeat(str,count):返回str重复count次得到的新字符串:select repeat(sname,4) from student
数学函数=================================================================================
一、Abs()返回一个数的绝对值:select abs(age) from users;
二、Rand()返回0~1之间的随机数
三、Count()不指定列时包括所有的值,指定列时不包括NULL值的列。
四、Min()不包括NULL值的列。
五、Max()不包括NULL值的列。
六、Avg()不包括NULL值的列。
七、ceil(x)返回大于x的最小整数
八、floor(x)返回小于x的最大整数
九、truncate(n,m)返回数字n被截断为m位小数的数值:select truncate(1.235,2)==》结果为1.23
日期时间函数=============================================================================
一、返回当前日期
  1、curdate():返回格式 2018-06-05:select curdate() from student limit 1
       2、curdate()+0:返回格式 20180605省略-的时间格式:select curdate()+0 from student
二、返回当前日期+时间
        1、now():返回格式 2018-06-05 18:25:26
        2、now()+0:返回格式20180605182526
三、获取当前时间
        1、curtime():返回格式 18:25:26
        2、curtime()+0:返回格式 182526
四、把日期格式的数据转换为时间戳返回
        unix_timestamp():select unix_timestamp(sbirthday)  from student
五、把时间戳转换为时间格式(2018-06-05 18:25:26)返回
        from_unixtime(时间戳)
六、返回年份
        year(date):返回该日期的年份 2018
七、返回月份
  1、month(date):返回数字形式的月份
       2、monthname(date):返回英文的月份
八、返回星期
  1、dayname(date):返回英文的星期几
       2、dayofweek(date)返回数字形式的周几
九、返回天
  1、day(date):返回数字形式的哪天
     2、返回时间中的小时、分钟、秒
    (1)、hour(date):返回时间中的小时数
    (2)、minute(date):返回时间中的分钟数
    (3)、second(date):返回时间中的秒数
条件判断===================================================================================
一、if(value,true,false):如果value值为真,则返回true,否则,返回false
  select if (class > 3000,'Hight','Low') from student
二、ifnull(value1,value2):如果value1不为空,则返回value1,不然返回value2,可以用来进行空值替换
  select ifnull(sname,'') from student
三、casewhen [value] then … else …end:如果value值为真,执行then之后的语句,不然执行eles后的语句,不要忘记end!
        select case when class <= 3000  then "Low"  else  "Hight" end from student

  --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END

  --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END
系统信息函数====================================================================================
一、database():当前数据库
  select database();
二、version():当前数据库版本
三、user():当前登录用户
加密函数=======================================================================================
一、password(str):返回加密的str字符串
二、md5():在应用程序中进行数据加密
其他函数=======================================================================================
一、inet_aton(ip) #ip地址的网络字节顺序
  select inet_aton('192.168.139.1');
二、inet_ntoa #返回数字所代表的ip
  select inet_ntoa(3232271105);

原文地址:https://www.cnblogs.com/zhangbaozhong/p/9158368.html