首页 > 代码库 > 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 之间的天数