mysql基本函数
记录一下mysql中常用到的函数,也可以用在存储过程中,随时用到随时整理
1、字符串函数
语法 | 解释 |
---|
ASCII(char) | 返回字符的ASCII码值 |
BIT_LENGTH(str) | 返回字符串的比特长度 |
CONCAT(s1,s2…,sn) | 将s1,s2…,sn连接成字符串 |
CONCAT_WS(sep,s1,s2…,sn) | 将s1,s2…,sn连接成字符串,并用sep字符间隔 |
INSERT(str,x,y,instr) | 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果 |
FIND_IN_SET(str,list) | 分析逗号分隔的list列表,如果发现str,返回str在list中的位置 |
LCASE(str) / LOWER(str) | 返回将字符串str中所有字符改变为小写后的结果 |
LEFT(str,x) | 返回字符串str中最左边的x个字符 |
LENGTH(str) | 返回字符串str中的字符数 |
LTRIM(str) | 从字符串str中切掉开头的空格 |
POSITION(substr,str) | 返回子串substr在字符串str中第一次出现的位置 |
QUOTE(str) | 用反斜杠转义str中的单引号 |
REPEAT(str,srchstr,rplcstr) | 返回字符串str重复x次的结果 |
REVERSE(str) | 返回颠倒字符串str的结果 |
RIGHT(str,x) | 返回字符串str中最右边的x个字符 |
RTRIM(str) | 返回字符串str尾部的空格 |
SPACE(count) | 生成count个空格 |
STRCMP(s1,s2) | 比较字符串s1和s2 |
SUBSTRING(str,position[,length]) | 从str的position开始,取length个字符 |
TRIM(str) | 去除字符串首部和尾部的所有空格 |
UCASE(str) / UPPER(str) | 返回将字符串str中所有字符转变为大写后的结果 |
注:mysql中处理字符串时,默认第一个字符下标为1,即参数position必须大于等于1
2、数字类型
语法 | 解释 |
---|
ABS(x) | 返回x的绝对值 |
BIN(x) | 返回x的二进制(OCT返回八进制,HEX返回十六进制) |
CEILING(x) | 返回大于x的最小整数值 |
EXP(x) | 返回值e(自然对数的底)的x次方 |
FLOOR(x) | 返回小于x的最大整数值 |
GREATEST(x1,x2,…,xn) | 返回集合中最大的值 |
LEAST(x1,x2,…,xn) | 返回集合中最小的值 |
LN(x) | 返回x的自然对数 |
LOG(x,y) | 返回x的以y为底的对数 |
MOD(x,y) | 返回x/y的模(余数) |
PI() | 返回pi的值(圆周率) |
POWER(number,power) | 求指数 |
RAND() | 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。 |
ROUND(x,y) | 返回参数x的四舍五入的有y位小数的值 |
SIGN(x) | 返回代表数字x的符号的值 |
SQRT(x) | 返回一个数的平方根 |
TRUNCATE(x,y) | 返回数字x截短为y位小数的结果 |
3、日期类型
语法 | 解释 |
---|
CURDATE() / CURRENT_DATE() | 返回当前的日期 2020-01-01 |
CURTIME() / CURRENT_TIME() | 返回当前的时间 18:01:01 |
DATE_ADD(date,INTERVAL int keyword) | 返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECT DATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH); |
DATE_FORMAT(date,fmt) | 依照指定的fmt格式格式化日期date值 |
DATE_SUB(date,INTERVAL int keyword) | 返回日期date减去间隔时间int的结果(int必须按照关键字进行格式化),如:SELECT DATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH); |
DAYOFWEEK(date) | 返回date所代表的一星期中的第几天(1~7) |
DAYOFMONTH(date) | 返回date是一个月的第几天(1~31) |
DAYOFYEAR(date) | 返回date是一年的第几天(1~366) |
DAYNAME(date) | 返回date的星期名,如:SELECT DAYNAME(CURRENT_DATE); |
FROM_UNIXTIME(ts,fmt) | 根据指定的fmt格式,格式化UNIX时间戳ts |
HOUR(time) | 返回time的小时值(0~23) |
MINUTE(time) | 返回time的分钟值(0~59) |
MONTH(date) | 返回date的月份值(1~12) |
MONTHNAME(date) | 返回date的月份名,如:ELECT MONTHNAME(CURRENT_DATE); |
NOW() | 返回当前的日期和时间 |
QUARTER(date) | 返回date在一年中的季度(1~4),如 : SELECT QUARTER(CURRENT_DATE); |
WEEK(date) | 返回日期date为一年中第几周(0~53) |
YEAR(date) | 返回日期date的年份(1000~9999) |
4、聚合函数
语法 | 解释 |
---|
AVG(col) | 返回指定列的平均值 |
COUNT(col) | 返回指定列中非NULL值的个数 |
MIN(col) | 返回指定列的最小值 |
MAX(col) | 返回指定列的最大值 |
SUM(col) | 返回指定列的所有值之和 |
GROUP_CONCAT(col) | 返回由属于一组的列值连接组合而成的结果 |