常用函数
字符串函数
concat(S1,S2....,Sn) 链接s1 s2 ...... 任何字符串和null链接显示为null
insert(str,x,y,instr) 将str从x位开始y字符长的子串替换为insert
lower(str) upper(str)大小写转换
left(str,x) right(str,x) 返回str左边/右边的x个字符 如果是null则不返回 0返回空白?
LPAD(str,n,pad) RPAD(str,n,pad) 用字符串pad对str左边/右边填充知道长度为n个字符
LTRIM RTIM(str) 去掉左边/右边的空格
repeat(str,x)返回str重复x次的结果
replace(str,a,b) 用字符串b替换str里所有的字符串a
strcmp(s1,s2) 比较字符串s1 s2 s1比s2小返回-1 相等则返回0 大则返回1
trim(str) 去掉头尾的空格
substring(str,x,y)返回字符串str x位置起y个字符长度的字符串
数值函数
ABS(x) 返回x的绝对值
ceil(x) floor(x)向上/向下取整
mod(X/Y) 返回x/y取模 任何一个数为NULL 结果为NULL
rand()返回0~1的随机值
这样就可以得到1~100的数据了
round(x,y)返回x四舍五入的带有y位小数的值
turncate(x,,y) 返回数字x截断y位的小数
日期和时间函数
curedate()当前日期
curtime()当前时间
now()返回当前日期时间
unix_timestamp(date)返回日期date的unix时间戳
from_unixtime 返回unix时间戳的地址 和之前的函数互为逆操作
week/ year (date) 返回日期date的第几周/年份
hour/minute(time) 返回time的小时/分钟
monthname(date) 返回date的月份名
date_format(date,fmt) 返回fmt格式化日期date值
如 select date_format(now(),'%M,%D,%Y');
这里区分大小写了
也可以用负数
date_add(date,interval expr type) 返回一个日期或时间加上一个时间间隔的时间值(绕口令)
interval是一个间隔符
datediff(expr,expr2) 返回expr和结束时间expr2之间的天数
流程函数
if(value,t,f) 如果value 是真 返回t 否则返回f 这个像(expr):a?b;了
ifnull(value1,value2)如果value1不为空则返回 value1 否则value2
CASE WHEN [value1] THEN [result1]....ELSE[default]END 如果value1为真,返回result1 否则返回default 这两个有点像if else
CASE[expr]WHEN[value1]THEN[result1]....else[default]END 如果expr等于value1返回result1 否则返回defult
其他常用函数
datebase() 返回当前数据库名
version() 返回当前数据库版本
user()返回用户名
inet_aton(ip) 返回IP地址的数字表示
inet_ntoa(num) 返回数字代表的ip地址
由于比较字符串大小是一个一个字符比较的 那需要把ip地址转换为数字代表来比较才行
如 select * from t where inet_aton(ip)>=inet_aton('192.168.1.3') and inet_aton(ip)<=inet_aton('192.168.1.20');
password(str) 返回字符串str的加密版本 这个函数只用来设置系统用户的密码 但是不能用来对应用数据加密 应用数据可以用MD5等其他加密函数来加密
MD5(str) 返回字符串的MD5值
其他很多函数可以查一查MYSQL官方文档