首页 > 代码库 > MySQL 常用函数
MySQL 常用函数
一、字符类型简介
1、CHAR, VARCHAR, TEXT 称为非二进制字符串;
2、BINARY, VARBINARY, BLOB 称为二进制字符串
3、列类型 存储空间
CHAR(M) M个字节,0 <= M <= 255 (L为固定的=255,不够补空格)
VARCHAR(M) L+1个字节,其中L <= M 且0 <= M <= 65535(参见下面的注释)(MySQL5.0之前都是最大255)
BINARY(M) M个字节,0 <= M <= 255
VARBINARY(M) L+1个字节,其中L <= M 且0 <= M <= 255
TINYBLOB, TINYTEXT L+1个字节,其中L < 28 (256)
BLOB, TEXT L+2个字节,其中L < 216 (65536)
MEDIUMBLOB, MEDIUMTEXT L+3个字节,其中L < 224(167772150)
LONGBLOB, LONGTEXT L+4个字节,其中L < 232 (4294967295)
ENUM(‘value1‘,‘value2‘,...) 1个字节(小于256成员) 或 2个字节(大于255成员),取决于枚举值的个数(最多65,535个值)
SET(‘value1‘,‘value2‘,...) 1(0~8成员)、2(9~16成员)、3(17~24成员)、4(25~32成员)、8(33~64成员)字节,最多64个成员
二、常用函数
1、字符串函数
CANCAT(str1,str2,...strn) 连接 str1,str2,...strn 为一个字符串
INSERT(str , x , y ,instr) 将字符串 str 从第 x 位置开始, y 个字符长的子串以字符串 instr 替换
LOWER/UPPER(str) 返回字符串 str 的 小写/大写
LEFT/RIGHT(str,x) 返回字符串 str 最左边/右边 的 x 个字符
LPAD/RPAD(str ,n,pad) 用字符串 pad 对 str 最左边/右边进行填充,str 长度为 n 个字符
LTRIM/RTRIM/TRIM(str) 去掉字符串 str 行首/行尾/行首尾的空格
REPEAT(str , x) 返回 str 重复 x 次的结果
REPLACE(str,a,b) 用字符串 b 替换字符串 str 中所有出现的字符串 a
STRCMP(str1,str2) 比较字符串 str1 和 str2
SUBSTRING(str,x,y) 返回从字符串 str 从 x 位置起 y 个字符长度的子字符串
2、数值函数
ABS(x) 返回 x 的绝对值
CEIL(x) 返回大于 x 的最大整数值
FLOOR(x) 返回小于 x 的最大整数值
MOD(x,y) 返回 x/y 的模
RAND() 返回 0~1 内的随机值
ROUND(x,y) 返回参数 x 的四舍五入的有 y 位小数的值
TRUNCATE(x,y) 返回数字 x 截断为 y 位小数的结果
3、日期时间函数
CURDATE() /CURTIME()/NOW() 返回当前 日期/时间/日期和时间
UNIX_TIMESTAMP(date) 返回日期 date 的UNIX 时间戳
FROM_UNIXTIME (unix_timestampe,format) 返回 UNIX 时间戳的日期值
========================时间字符串格式化 format=========================
%S,%s 两位数字形式的秒 (00,01,...,59)
%i 两位数字形式的分 (00,01,...,59)
%H 两位数字形式的小时,24小时 (00,01,...,23)
%h,%I 两位数字形式的小时,12小时 (01,02,...,12)
%k 数字形式的小时,24小时 (0,1,...,23)
%l 数字形式的小时,12小时 (1,2,...,12)%T 24小时的时间形式 (hh:mm:ss)
%r 12小时的时间形式(hh:mm:ssAM or hh:mm:ssPM)
%p AM 或 PM
%W 一周中每一天的名称 (Sunday,Monday,...,Saturday)
%a 一周中每一天的名称缩写 (Sun,Mon,...,Sat)
%w 以数字形式表示周中的天数 (0=Sunday,1=Monday,...,6=Saturday)
%d 两位数字表表示月中的天数 (00,01,...,31)
%e 数字形式表示月中的天数(1,2,...,31)
%D 英文后缀表示月中的天数(1st,2nd,3rd,...)
%j 以3分数字表示年中的天数(001,002,...366)
%U 周 (0,1,52)以Sunday为周中的第一天
%u 周 (0,1,52)以Monday为周中的第一天
%M 月名(January,Feburary,...,December)
%b 缩写的月名(Jan,Feb,...,Dec)
%m 两位数字表示的月份(01,02,...,12)%c 数字表示的月份(1,2,...,12)
%Y 4位数字的年份
%y 2位数字的年份
%% 直接值 “%”
======================== end ========================
YEAR(date) 返回日期 date 的年份
MONTHNAME(date) 返回日期 date 的月份名
WEEK(date) 返回日期 date 为一年中的第几周
HOUR(time) 返回 time 的小时值
MINUTE(time) 返回 time 的分钟值
DATE_FORMAT(date,fmt) 返回按字条串 fmt 格式化日期 date 值
DATE_ADD(date,INTERVAL expr type) 返回一个日期或时间值加上一个时间间隔的时间值
DATEDIFF(expr1,expr2) 返回起始时间 expr1 和结束时间 expr2 之间的天数