数学函数

ABS(X)
PI()
SQRT()
MOD(x,y) #求余函数
CEIL (x)  CEILING (x)#返回不小于X的最小整数
FLOOR (x) #返回不大于X的最大整数
RAND() 和 RAND(x) #RAND(x)参数相同时,将产生相同的随机数
ROUND(x), ROUND(x,y), #返回最接近参数x的整数,保留到小数点y位
TRUNCATE(x,y) 返回被舍去至小数点后y位的数字x

SIGN(x)#返回参数的符号

POW(x, y) #返回x的y次乘方
EXP(x) #返回e的x次方
LOG (x) #返回X的自然对数
LOG10 (x) #返回x基数为10的对数
RADIANS(x)DEGREES(x)  # 角度与弧度相互转换的函数
SIN(x)ASIN(x)
COS(x) ACOS(x)
TAN(x) ATAN(x)

字符串函数

CHAR_LENGTH(str)#返回字符串所包含的字符个数
LENGTH(str) #返回字符串的字节长度
CONCAT(S1,S2....) #返回连接参数产生的字符串
CONCAT_WS(x, S1, S2...) #concat with separator x为分隔符
INSERT (s1,x,len,s2) #替换字符串函数,字符串S1,其字符始于x位置和被字符串s2取代len字符
 LOWER(str) LCASE(str) UPPER (str) UCASE(str) #字符串字母转换为小写
 LPAD(s1,len,s2) RPAD(s1,len,s2) # s1左起,由字符串s2填补到len字符长度
 eg. SELECT LPAD('hello',4,'??') output: hell
       SELECT LPAD('hello',10,'??') output: ?????hello
LTRIM (S) #删除字符串左边的空格 
RTRIM(S)  #删除字符串右边的空格
TRIM(S) #删除字符串两边的空格
TRIM(S1 from S) #删除字符串s中两端所有的字符串s1
Repeat(s,n) #重复生成字符串函数 s=string,n=重复次数
SPACE(n)#返回一个有n个空格组成的字符串
REPLACE(s,s1,s2) #使用字符串s2代替字符串s中的s1
STRCMP(S1,S2) #若所有字符串均相同返回0,第一个<第二个 返回-1,第一个>第二个 返回1
SUBSTRING(s,n,len)和MID(s,n,len) #从字符串s返回一个长度和len字符相同的子字符串,起始位置于n
LOCATE(str1,str) POSITION(str1 in str) INSTR(str, str1) #3个函数作用相同,返回子字符串str1在s中的开始位置
REVERSE(s) #字符串逆序 将s字符串反转
ELT(n,s1,s2,s3....sn) #f返回指定位置的字符串函数
FIELD (s,s1,s2,....sn) #返回指定字符串位置的函数FIELD(s,s1,s2....sn)
FIND_IN_SET(s1,s2) #返回字符串位置的函数

日期和时间函数

CURDATE() = CURRENT_DATE() #获取当前日期
CURTIME() = CURRENT_TIME() #获取当前时间
CURRENT_TIMESTAMP() = LOCALTIME() = NOW() = SYSDATE #获取当前日期和时间函数
MONTH(date) # 获取当前月份的函数
MONTHNAME(date) #返回日期月份的英文名
DAYNAME(date)# 返回date对应的工作日的英文名称
DAYOFWEEK(date)#返回日期对应的周索引
WEEKDAY(date) # 返回日期对应的工作日索引
WEEK(date)#日期d是一年中的第几周
WEEKOFYEAR(date)#计算某天位于一年中的第几周
DAYOFYEAR(date) DAYOFMONTH(date) #返回date是一年中的第几天
YEAR() #返回特定数据的年度信息
QUARTER(date)
MINUTE(time)
SECOND(time)
TIME_TO_SEC(time)
SEC_TO_TIME(time)
ADDDATE() SUBDATE() ADDTIME() SUBTIME() #时间函数的加减
DATE_DIFF() #计算两个date中间时间的差值
getdate()#返回当前数据库系统的日期和时间
getutcdate()#返回当前 UTC(世界标准时间)日期值
#函数之间只要符合语法规范是可以嵌套的。
datepart(dp,d)#返回指定日期中相应的部分的整数值
#例子
select datepart(year,getdate())
--2019
select datepart(dayofyear,getdate())
--45

条件判断函数

IF(expr, V1, V2)
IFNULL(V1, V2)
CASE函数 SELECT CASE 2 WHEN 1 THEN 'ONE' WHEN 2 THEN 'TWO' WHEN 3

系统信息函数

VERSION() #获取服务器版本号
CONNECTION_ID() #获取服务器当前连接的次数
SHOW PROCESSLIST #查看有哪些线程在链接
USER()

加密函数

MD5(str)#为字符串算出一个MD5 比特校验符
SHA(str) #从原明文密码str计算并返回加密后的密码字符串
SHA2(str,hash_hash) # 使用hash_length 作为长度加密str

窗口函数

见单独一章 窗口函数的用法