mysql中也会运用函数来来实现某些功能运算和完成各种特定操作。使用函数能够允许标准组件式编程,提高了SQL语句的重用性、共享性和可移植性,可以减少重复编写程序段的工作量,提高程序的可读性,提高程序编译和运行效率,产生质量较高的目标代码。
mysql常见函数的第一大类,即单行函数。
单行函数里面又分字符函数、数学函数、日期函数、控制函数和其他函数。
(1)字符函数
length(str):统计字符串的字节数(取决于编码方式,utf8汉字3字节,gbk汉字2字节)
concat(str1, str2):拼接字符
substr/substring(str, n1 [,n2]):切割字符,n1起始位置(mysql下标从1开始),n2可选,表示切割长度
instr(str1, str2):返回str2在str1中首次出现的位置;如果没有找到,则返回0。不区分大小写。
trim(str [, substr]):取出字符串前后的substr字符串,默认为空格
upper(str):字母变大写
lower(str):字母变小写
lpad(str1,length,str2)。其中str1是第一个字符串,length是结果字符串的长度,str2是一个填充字符串。如果str1的长度没有length那么长,则使用str2填充;如果str1的长度大于length,则截断。
rpad(str1, length, str2):参考lpad
replace(object,search,replace):把object对象中出现的的search全部替换成replace。
(2)数学函数
round(num, 2):四舍五入,保留两位小数
ceil(num):向上取整
floor(num):向下取整
truncate(num, 2):从小数点后两位直接截断,比如truncate(3.1415926, 3) = 3.141
mod(num, 2):求余数 num % 2
(3)日期函数
now():当前系统时间
curdate():当前系统时间的日期
curtime():当前系统时间的时间
year():年份
month():月
monthname():英文形式
day():日
hour():小时
minute():分钟
second():秒
str_to_date(“1997-06-03 19:23:12”, "%Y-%m-%d %H:%i:%s):通过后面的模式将前面的字符串进行转换成date格式
date_format(“1997/6/3”, “%Y年%m月%d日”):将日期转为字符
datediff(date1, date2):计算两个日期之差
from_unixtime(time,要转换的格式):把括号里面的时间转化成想要的格式
str_to_date:将日期格式的字符转换为指定格式的日期
date_format:将日期转换成字符
timestampdiff(minute,时间1,时间2):计算差多少分钟
(4)流程控制函数
①if函数:等同与if else的效果,语法为if(条件表达式,表达式1,表达式2)
②case函数,有两种使用方法。
第一种等同于switch case的效果:
case 要判断的字段或表达式
when 常量1 then 要显示的值(或语句1)【如果是值的话不用分号】
when 常量2 then 要显示的值(或语句2)
......
else 要显示的值或语句n【没有其他情况else可以省略】
end;
第二种用法类似于多重if:
case
when 条件1 then 要按时的值1或语句1
when 条件2 then 要按时的值1或语句2
......
else 要显示的值或语句n
end;
(5)其他函数
select version; 查看当前数据库版本
select database; 查看当前数据库
select databases; 查看所有数据库
select user(); 查看当前用户
select password('字符'); 返回该字符的密码形式,加密
select MD5('字符'); 返回MD5的加密形式