MySQL操作(第五章)-常用函数
MySQL函数可以分为数学函数、字符串函数、日期和时间函数、流程控制函数、其他函数。
数学函数:
ABS(x):返回x的绝对值
SQRT(x):返回非负数x的平方根
PI():返回圆周率
MOD(x,y)或%:返回x被y除的余数
CEIL(x)、CEILING(x):向上取整
FLOOR(x):向下取整
ROUND(x,y):对x四舍五入,保留小数点后y位,若y为负数,保留到小数点左边y位 不设置y时保留整数
TRUNCATE(x,y):对x进行截断,保留小数点后y位
RAND():每次产生不同的随机数(0-1) 若括号内写数字,叫做随机种子,再次调用同一个随机种子时返回的随机数相同
SIGN(x):负数返回-1,0返回0,正数返回1
POW(x,y)、POWER(x,y):返回x的y次方
EXP(x):返回以e为底的x次方
LOG(x):返回以e为底x的对数
LOG10(x):以10为底x的对数
RADIANS(x):角度转弧度
DEGREES(x):弧度转角度
SIN(x):x的正弦 ASIN(x):正弦值为x的值 x为弧度值 反正切中,若x不在-1到1间,返回NULL
COS(x):x的余弦 ACOS(x):余弦值为x的值
TAN(x):x的正切 ATAN(x):正切值为x的值
字符串函数;
CHAR_LENGTH(str):返回字符串所包含字符的个数 一个汉字为一个字符
LENGTH(str):返回字符串的长度 utf8下,一个汉字占三个长度
CONCAT(s1,s2,...):字符串连接
CONCAT_WS(x,s1,s2,...):用x将s1、s2等连接起来
INSERT(s1,x,len,x2):在s1中将起始位置为x长度为len的子串用s2代替
LOWER(str):全部小写 UPPER(str):全部大写
LEFT(s,n):返回最左边n长度的字符 RIGHT(s,n):返回最右边n长度的字符
LPAD(s1,len,s2)、RPAD(s1,len,s2):用s2将s1填充到len长,首字母L、R分别代表左边和右边填充
TRIM(s1 from s):删除s1两端所有的字符串s
LTRIM(s):删除左侧空格 RTRIM(s):删除右侧空格
REPTAT(s,n):使用s组成n长的字符串
SPACE(n):使用空格组成n长字符串
REPLACE(s,s1,s2):将s字符串中s1字符替换成s2
STRCMP(s1,s2):比较s1和s2字符串大小 全部相同一模一样返回0,s1小于s2返回-1,s1
大于s2返回1
SUBSTRING(s,n,len):从字符串s中返回从n位置起len长的子字符串 MID(s,n,len)作用相同
LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1):返回子字符串str1在字符串str中的开始位置
REBERSE(s):反转字符串
ELT(N,字符串1,字符串2,字符串3,...,字符串N):若N=1,返回字符串1,N=2,返回字符串2以此类推 若N小于1或大于参数数目,返回NULL
时间和日期函数:
CURDATE()和CURRNT_DATE():获取当前日期
NOW():返回服务器当前日期和时间
CURTIME():返回当前时间,只包含时分秒
UTC_DATE():返回世界标准时间日期
UTC_TIME():返回世界标准时间
TIMEDIFF(expr1,expr2):返回两个日期相减相差的时间数
DATEDIFF(expr1,expr2):返回俩个日期相减相差的天数
DATE_ADD(日期,INTERVAL 时间间隔值):日期加上时间间隔值
DATE_SUB(日期,INTERVAL 时间间隔值):日期减去时间间隔值
DATE(date)、TIME(date)、YEAR(date):选取日期时间的各个部分
EXTRACT(unit from date):从日期中抽取出某个单独的部分或组合
个性化显示时间日期:
dayofweek(date):一周中的第几天
dayofmonth(date):一月中的第几天
dayofyear(date):一年中的第几天
dayname():周几
monthname():几月
格式化输出日期和时间:
DATE_FORMAT(dare,format)、TIME_FORMAT(time,format):date是合法的日期,format是规定的输出格式
流程控制函数:
CASE:
CASE WHEN [condition] THEN result [WHEN [condition] THEN result......] [ELSE result] END
匹配第一个when后的情况如果符合返回第一个then后的结果,依次匹配,如果没有匹配的情况,返回else后的结果,没有else返回NULL
IF:
IF(expr1,expr2,expr3) 若expr1值为TRUE,返回expr2,否则返回expr3
IFNULL、NULLIF:
IFNULL(expr1,expr2)、NULLIF(expr1,expr2):
expr1不为NULL,返回expr1 否则返回expr2
其他函数:
Database():返回使用UTF8字符集的默认(当前)数据库名
Version():返回指示MySQL服务器版本的字符串
User():返回当前MySQL用户名和主机名
Inet_aton():给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数
Inet_ntoa():给定一个数字网络地址,返回作为字符串的该地址的点地址表示
Password(str):从原文密码str计算并返回字符串,当参数为NULL时返回NULL
Md5(str):为字符串算出一个MD5 128比特检查和。

浙公网安备 33010602011771号