函数
1.函数的定义
- 函数是指一段可以直接被另一段程序调用的程序或代码。
2.字符串函数
-
MySQL中内置了很多字符串函数,常用的几个如下:
分类 全称 CONCAT(S1, S2,…, Sn) 字符串拼接,将S1, S2,…, Sn拼接成一个字符串 LOWER(str) 将字符串str全部转化为小写 UPPER(str) 将字符串str全部转化为大写 LPAD(str, n, pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 RPAD(str, n, pad) 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度 TRIM(str) 去掉字符串头部和尾部的空格 SUBSTRING(str, start, len) 返回从字符串str从start位置起的len个长度的字符串
3.数值函数
-
常见的数值函数如下:
函数 功能 CEIL(x) 向上取整 FLOOR(x) 向下取整 MOD(x, y) 返回x/y的模 RAND() 返回0~1内的随机数 ROUND(x, y) 求参数x的四舍五入的值,保留y位小数
4.日期函数
-
常见的日期函数如下:
函数 功能 CURDATE() 返回当前日期 CURTIME() 返回当前时间 NOW() 返回当前日期和时间 YEAR(date) 获取指定date的年份 MONTH(date) 获取指定date的月份 DAY(date) 获取指定date的日 DATE_ADD(date, INTERVAL expr type) 返回一个日期/时间值加上type类型expr个时间间隔后的时间 DATEDIFF(date1, date2) 返回起始时间date1和结束时间date2之间的天数 (date1 - date2) //例1: 返回往后推十天的时间, 格式为'YYYY-MM-DD HH:mm:ss'。 DATE_ADD(NOW(), INTERVAL 10 DAY) //例2: 返回往后推十天的日期, 格式为'YYYY-MM-DD' DATE_ADD(CURDATE(), INTERVAL 10 DAY) //例3-特殊: 返回当天日期00:00:01, 格式为'YYYY-MM-DD 00:00:01' DATE_ADD(CURDATE(), INTERVAL 1 second) 注:DATE_ADD的使用严格遵守格式,其中type可以为second, minute, hour, day, month, year。
5.流程函数
-
流程函数可以实现SQL语句条件筛选,提高语句执行效率。常见的流程函数如下:
函数 功能 IF(value, val1, val2) 如果value为true则返回val1,否则返回val1 IFNULL(val1, val2) 如果value1不为NULL则返回val1,否则返回val2 CASE WHEN [val1] THEN [res1] … ELSE [default] END 如果val1为true则返回res1 … 否则返回default默认值 CASE [expr] WHEN [val1] THEN [res1] … ELSE [default] END 如果expr的值等于val1则返回res1 … 否则返回default默认值 //以下两种写法结果相同 1 select name, ( case workAddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end ) from emp 2 select name, ( case when workAddress = '北京' then '一线城市' when workAddress = '上海' then '一线城市' else '二线城市' end ) from emp