数学

ABS(x) 返回x的绝对值

  1. SELECT ABS(-1)

CEILING(x) 返回大于x的最小整数值

  1. SELECT CEILING(1.1)

FLOOR(x) 返回小于x的最大整数值

  1. SELECT FLOOR(3.5)

MOD(x,y) 返回x/y的模(余数)

  1. SELECT MOD(6,4)

PI() 返回pi的值(圆周率)

  1. SELECT PI()

RAND() 返回0到1内的随机值

  1. SELECT RAND()

ROUND(x,y) 返回参数x的四舍五入的有y位小数的值

  1. SELECT ROUND(4.11111, 2)

TRUNCATE(x,y) 返回数字x截短为y位小数的结果

  1. SELECT TRUNCATE(4.1111,3)

聚合

AVG(col) 返回指定列的平均值

  1. SELECT AVG(e.salary) 平均薪资
  2. FROM employee AS e

COUNT(col) 返回指定列中非NULL值的个数

  1. SELECT MIN(salary) NULL值的个数
  2. FROM employee

MIN(col) 返回指定列的最小值

  1. SELECT MIN(salary) 最小值
  2. FROM employee

MAX(col) 返回指定列的最大值

  1. SELECT MAX(salary) 最大值
  2. FROM employee

SUM(col) 返回指定列的所有值之和

  1. SELECT SUM(id) sum
  2. FROM department

字符

CONCAT(s1,s2…,sn) 将s1,s2…,sn连接成字符串

CONCAT_WS(sep,s1,s2…,sn) 将s1,s2…,sn连接成字符串,并用sep字符间隔

TRIM(str) 去除字符串首部和尾部的所有空格

LTRIM(str) 从字符串str中切掉开头的空格

RTRIM(str) 返回字符串str尾部的空格

日期

CURDATE()或CURRENT_DATE() 返回当前的日期

  1. SELECT CURDATE()

CURTIME()或CURRENT_TIME() 返回当前的时间

  1. SELECT CURTIME()

TIMESTAMPDIFF(part, date1,date2) 返回date1到date2之间相隔的part值,part是用于指定的相隔的年或月或日等

part参数

image.png

  1. SELECT TIMESTAMPDIFF(YEAR,'2000-1-1','2021-1-1')
  1. -- 查询所有员工的年龄并按照升序排列
  2. SELECT TIMESTAMPDIFF(YEAR,birthday,CURDATE()) age
  3. FROM employee
  4. ORDER BY AGE