MYSQL常见函数归纳

字符串函数

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(s)                       返回字符串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尾部的空格
STRCMP(s1,s2)                   比较字符串s1和s2
TRIM(str)                       去除字符串首部和尾部的所有空格
UCASE(str)或UPPER(str)           返回将字符串str中所有字符转变为大写后的结果

数学函数

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的值(圆周率)
RAND()                          返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
ROUND(x,y)                      返回参数x的四舍五入的有y位小数的值
SIGN(x)                         返回代表数字x的符号的值
SQRT(x)                         返回一个数的平方根
TRUNCATE(x,y)                   返回数字x截短为y位小数的结果

日期时间函数

CURDATE()或CURRENT_DATE()        返回当前的日期
CURTIME()或CURRENT_TIME()        返回当前的时间
DATE_FORMAT(date,fmt)           依照指定的fmt格式格式化日期date值
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的月份名,如:SELECT MONTHNAME(CURRENT_DATE);
NOW()                           返回当前的日期和时间
QUARTER(date)                   返回date在一年中的季度(1~4),如SELECT QUARTER(CURRENT_DATE);
WEEK(date)                      返回日期date为一年中第几周(0~53)
YEAR(date)                      返回日期date的年份(1000~9999)
DATE_ADD(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化)


附录:
    1,日期时间格式:

                    %S, %s 两位数字形式的秒( 00,01, ..., 59)
                    %I, %i 两位数字形式的分( 00,01, ..., 59)
                    %H 两位数字形式的小时,24 小时(00,01, ..., 23)
                    %h 两位数字形式的小时,12 小时(01,02, ..., 12)
                    %k 数字形式的小时,24 小时(0,1, ..., 23)
                    %l 数字形式的小时,12 小时(1, 2, ..., 12)
                    %T 24 小时的时间形式(hh:mm:ss)
                    %r 12 小时的时间形式(hh:mm:ss AM 或hh:mm:ss PM)
                    %p AM或PM
                    %W 一周中每一天的名称(Sunday, Monday, ..., Saturday)
                    %a 一周中每一天名称的缩写(Sun, Mon, ..., Sat)
                    %d 两位数字表示月中的天数(00, 01,..., 31)
                    %e 数字形式表示月中的天数(1, 2, ..., 31)
                    %D 英文后缀表示月中的天数(1st, 2nd, 3rd,...)
                    %w 以数字形式表示周中的天数( 0 = Sunday, 1=Monday, ..., 6=Saturday)
                    %j 以三位数字表示年中的天数( 001, 002, ..., 366)
                    %U 周(0, 1, 52),其中Sunday 为周中的第一天
                    %u 周(0, 1, 52),其中Monday 为周中的第一天
                    %M 月名(January, February, ..., December)
                    %b 缩写的月名( January, February,...., December)
                    %m 两位数字表示的月份(01, 02, ..., 12)
                    %c 数字表示的月份(1, 2, ...., 12)
                    %Y 四位数字表示的年份
                    %y 两位数字表示的年份
                    %% 直接值“%”

    2,日期间隔类型(keyword)
                    MICROSECOND
                    SECOND
                    MINUTE
                    HOUR
                    DAY
                    WEEK
                    MONTH
                    QUARTER
                    YEAR
                    SECOND_MICROSECOND
                    MINUTE_MICROSECOND
                    MINUTE_SECOND
                    HOUR_MICROSECOND
                    HOUR_SECOND
                    HOUR_MINUTE
                    DAY_MICROSECOND
                    DAY_SECOND
                    DAY_MINUTE
                    DAY_HOUR
                    YEAR_MONTH 

加密

AES_ENCRYPT(str,key)       返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,以BLOB类型存储
AES_DECRYPT(str,key)       返回用密钥key对字符串str利用高级加密标准算法解密后的结果
DECODE(str,key)            使用key作为密钥解密加密字符串str
ENCRYPT(str,salt)          使用UNIXcrypt()函数,用关键词salt(一个可以惟一确定口令的字符串,就像钥匙一样)加密字符串str
ENCODE(str,key)            使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串,它以BLOB类型存储
MD5()                      计算字符串str的MD5校验和
PASSWORD(str)              返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法。
SHA()                      计算字符串str的安全散列算法(SHA)校验和

流程控制

CASE WHEN[test1] THEN [result1]...ELSE [default] END       如果testN是真,则返回resultN,否则返回default
CASE [test] WHEN[val1] THEN [result]...ELSE [default]END   如果test和valN相等,则返回resultN,否则返回default
IF(test,t,f)                                               如果test是真,返回t;否则返回f
IFNULL(arg1,arg2)                                          如果arg1不是空,返回arg1,否则返回arg2
NULLIF(arg1,arg2)                                          如果arg1=arg2返回NULL;否则返回arg1

其他常用函数

AVG(col)                 返回指定列的平均值
COUNT(col)               返回指定列中非NULL值的个数
MIN(col)                 返回指定列的最小值
MAX(col)                 返回指定列的最大值
SUM(col)                 返回指定列的所有值之和
GROUP_CONCAT(col)        返回由属于一组的列值连接组合而成的结果
FORMAT(x,y)              把x格式化为以逗号隔开的数字序列,y是结果的小数位数
INET_ATON(ip)            返回IP地址的数字表示
INET_NTOA(num)           返回数字所代表的IP地址
TIME_FORMAT(time,fmt)    依照字符串fmt格式化时间time值
DATABASE()               返回当前数据库名
BENCHMARK(count,expr)    将表达式expr重复运行count次
CONNECTION_ID()          返回当前客户的连接ID
FOUND_ROWS()             返回最后一个SELECT查询进行检索的总行数
USER()或SYSTEM_USER()    返回当前登陆用户名
VERSION()                返回MySQL服务器的版本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值