内置函数:
1.字符串函数:
拼接字符串concat(str1,str2…)
例:select concat(12,34,‘ab’);
例:select name,hometown,concat(name,‘的家乡是’,hometown) from students
2.某个字符串的个数是几:length(str)
例:select length(‘abc’);
注意:一个中文length长度为3,其他长度都为1 与varchar有区别,varchar长度都是1个
select * from students where length(name)=6
3.截取字符串:
left(str,len) 返回字符串str的左端len个字符
– 例:select left(‘abc’,1)
– select name,sex,concat(left(name,1),’**’) from students
right(str,len) 返回字符串str的右端len个字符
– 例:select right(‘abc’,1)
substring(str,pos,len) 返回字符串str的位置pos起len个字符
例:select substring(‘abc’,2,1)
4.去除空格
ltrim(str)返回删除了左空格的字符串str
– select ltrim(’ abc ‘)
rtrim(str)返回删除了右空格的字符串str
– select rtrim(’ abc ‘)
去除两边空格:
– select ltrim(rtrim(’ abc ‘))
– select trim(’ abc ')
5.大小写转换,函数如下:
转换为小写:lower(str) 例:select lower(‘abDFG’)
转换为大写: upper(str) 例:select upper(‘abDFG’)
数学函数:
1.求四舍五入值round(n,d),n表示原数,d表示小数位置,默认为0
select round(1.6); 注意:小数位置没有值表示不要小数,即结果为整数
2.求x的y次幂pow(x,y)
select pow(2,3);
3.获取圆周率PI()
select PI();
4.随机数rand(),值为0-1.0的浮点数
select rand();
求随机0-10的整数:select round(rand()*10);
随机从一个表中取一条记录:select * from students order by rand() limit 1
日期时间函数
1.当前日期current_date()
select current_date();
2.当前时间current_time()
select current_time();
3.当前日期时间now()
select now();
4.日期格式化date_format(date,format)
参数format可选值如下
%Y 获取年,返回完整年份
%y 获取年,返回简写年份
%m 获取月,返回月份
%d 获取日,返回天值
%H 获取时,返回24进制的小时数
%h 获取时,返回12进制的小时数
%i 获取分,返回分钟数
%s 获取秒,返回秒数
自定义函数
语法如下
delimiter $$
create function 函数名称(参数列表) returns 返回类型
begin
sql语句
end
$$
delimiter ;
说明:delimiter用于设置分割符,默认为分号
在“sql语句”部分编写的语句需要以分号结尾,此时回车会直接执行,所以要定义函数前需
要指定其它符号作为分割符,此处使用$$,也可以使用其它字符