MySQL常用函数总结

79 阅读3分钟

MySQL函数总结

一. 内置函数

  1. 数值运算函数:

    • abs() 返回一个正整数
    • floor() 返回最大整数,使这个整数小于或等于指定数的数值运算。
    • round() 四舍五入一个正数或者负数,结果为一定长度的值。
    • truncate() 按照小数位数,进行数值截取
  2. 字符串函数

    • length():utf8字符集编码下,一个汉字是算三个字符,一个数字或字母算一个字符。

    • char_length():返回值为字符串string或者对应字段长度,长度的单位为字符,一个多字节字符(例如:汉字)算作一个单字符;

    • concat():返回输入字符串连接后的结果

      concat(字符串,'-',字符串)
      
    • format():格式化字符串

      format(格式化字段,规定的格式)
      
    • left(str,len):字符串截取,从左往右开始数截取长度为len个字符串

      left(字符串,截取的长度)
      
    • right(str,len):字符串截取,从右往左开始数截取长度为len个字符串

      right(字符串,截取长度)
      
    • substr(str,pos,len):从pos开始的位置,截取len个字符

      substr(字符串,开始的位置,截取长度)
      
    • from_base64():解码操作base64编码的字符串

    • to_base64():编码操作

    • lpad(str,len,padstr):lpad(要查询的字段,长度,用来填充的字段),lpad是在左边填充

    • rpad():右边填充

    • trim():去除头尾空格字符串

      • ltrim():去除左边空格字符串
      • rtrim():去除右边空格字符串
    • lower():字符串将大写转为小写

    • upper():字符串将小写转为大写

    • reverse():倒置函数,将字符串逆序输出

  3. 日期时间函数:

    • current_date():返回当前日期 年月日的方式返回

    • current_time():返回当前时间 时分秒

    • current_timestamp():返回当前日期和时间。

    • datediff(datepart,startdate,enddate):返回datepart的时间差值,datepart的值可以为:

      datadiff(day,'2020/7/1','2020/7/5') -- 返回值为4
      
    • timestampdiff(unit,begin,end):用来计算date或者datetime两个值之间的差值

    • date_add(date,expr):向日期添加指定的时间间隔

    • date_sub(date,expr):从日期当中减去指定的时间间隔

    • date_format(date,format):用于不同格式时间按照指定格式输出,date:时间、format:指定格式

    • year(date):返回年的值

    • month(date):返回月的值

    • day(date):返回天的值

    • weekday(date):数返回一个日期的工作日索引值

      注意:即星期一为0,星期二为1,星期日为6

    • quarter(date):时间所对应的季度值

    • hour(datetime):返回当前时间的小时

    • minute(datetime):返回当前时间的分钟

  4. 流程控制函数

    • if(expr1,expr2,expr3):这个是MySQL函数的方言,在其它数据库当中不一定能够正常使用。expr1为条件语句,如果为真,返回exrp2,为假,返回exrp3
    • ifnull(expression, alt_value):判断expression是否为空,为空就返回alt_value
    • nullif(exrp1,exrp2):如果exrp1等于exrp2,则返回null
    • case when exrp1 then exrp2 else exrp3 end:sql当中的控制语句,不受数据库类型的控制
  5. 聚合函数

    • sum(): 求和
    • avg():求平均
    • max():求最大值
    • min():求最小值
    • count():求数量
    • var_pop():求总体方差
    • var_samp():求样本方差
    • stddev_pop():求总体标准差
    • stddev_samp():求样本标准差
  6. 窗口函数

    juejin.cn/post/727083…

二. 自定义函数

直接上案例

-- 定义函数时,分号表示一个语句的结束并不是整段代码的结果
-- 重新定义代码的终止符为$$
delimiter $$
-- 自定义函数
create function truncate_string(
	original_string varchar(16383),
	max_length int unsigned 
)returns varchar(16383) deterministic
begin 
	declare result varchar(16383) default original_string;
	if char_length(original_string) > max_length then 
		set result = concat(left(original_string,max_length),'......');
	else
		set result = original_string ;
	end if;
	return result;
end $$

-- 还原之前的终止符
delimiter ;