首页 > 数据库 > MySQL > 正文

MySQL基础篇 系统和自定义函数总结 触发器使用解说

2024-07-24 12:35:58
字体:
来源:转载
供稿:网友
       MySQL基础篇 系统和自定义函数总结 触发器使用解说:

  系统封装函数
  
  MySQL 有很多内置的函数,可以快速解决开发中的一些业务需求,大概包括流程控制函数,数值型函数、字符串型函数、日期时间函数、聚合函数等。以下列出了这些分类中常用的函数。
 
  1、控制流程函数
  
  case...when
  
  根据值判断返回值,类比编程中的IF-ELSE判断。
 
  -- DEMO 01
  
  SELECT CASE DATE_FORMAT(NOW(),'%Y-%m-%d')
  
      WHEN '2019-12-29' THEN 'today'
  
      WHEN '2019-12-28' THEN 'yesterday'
  
      WHEN '2019-12-30' THEN 'tommor'
  
      ELSE 'Unknow' END;
  
  -- DEMO 02
  
  SELECT (CASE WHEN 1>0 THEN 'true' ELSE 'false' END) AS result;
  
  if(expr1,expr2,expr3)
  
  如果表达式 expr1 是TRUE,则 IF()的返回值为expr2; 否则返回值则为 expr3。
 
  SELECT IF(1>2,'1>2','1<2') AS result ;
  
  SELECT IF(1<2,'yes ','no') AS result ;
  
  SELECT IF(STRCMP('test','test'),'no','yes');
  
  ifnull(expr1,expr2)
  
  如果表达式 expr1不为NULL,则返回值为expr1;否则返回值为 expr2。
 
  SELECT IFNULL(NULL,'cicada');
  
  SELECT IFNULL(1/1,'no');
  
  2、常用字符串函数
  
  CHAR_LENGTH()
  
  返回值为字符串的长度 。
 
  SELECT CHAR_LENGTH(' c i c ') ;-- 包含空格
  
  SELECT LENGTH(' S q l ') ;
  
  CONCAT(str1...)
  
  拼接串联字符串。
 
  SELECT CONCAT('My', 'S', 'ql');
  
  SELECT CONCAT('My', NULL, 'QL'); -- 包含Null 则返回Null
  
  SELECT CONCAT("%", "Java", "%"); -- mybatis中拼接模糊查询
  
  ELT(N,str1,str2,...)
  
  若N = 1,则返回值为 str1 ,若N = 2,则返回值为 str2 ,以此类推,可以用来转换返回页面的状态。
 
  SELECT ELT(1,'提交','审核中','规则通过') ;
  
  SELECT ELT(2,'提交','审核中','规则通过') ;
  
  FORMAT(X,D)
  
  格式化数字类型。
 
  SELECT FORMAT(3.1455,2) ; -- 四舍五入保留两位
  
  SELECT TRUNCATE(3.1455,2) ; -- 直接截取两位
  
  TRIM(str)
  
  清空字符串空格。
 
  SELECT LTRIM('  hel l o ') ;-- 清空左边
  
  SELECT RTRIM('  hel l o ') ;-- 清空右边
  
  SELECT TRIM('  hel l o ') ; -- 清空两边
  
  SELECT REPLACE('M y S Q L',' ','') ; -- 替换掉全部空格
  
  3、 时间日期函数
  
  ADDDATE(date,INTERVAL expr type)
  
  给指定日期,以指定类型进行运算。
 
  SELECT DATE_ADD('2019-12-29', INTERVAL 3 DAY); -- 2020-01-01
  
  CURDATE()
  
  将当前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表