字符串函数
拼接
select concat(123, 'abc')
# 123abc
select name, hometown, concat(name, hometown) from students;
长度
select length('abc')
select length(name) from students;
截取
- left(str, len)返回字符串str的左端len个字符
- right(str, len)返回字符串str的右端len个字符
- substring(str, pos, len)返回字符串str的位置pos起len个字符
select substring('abc123',2,3);
数学函数
四舍五入:round
select round(n, d) n表示原数, d表示小数位置,默认为0
求x的y次幂pow(x, y)
select pow(2, 3)
# 8
圆周率
select PI()
随机数
select rand();
日期函数
当前日期
select current_date()
当前时间
select current_time()
当前日期时间
select now()
日期格式化
select date_format(date, format)
参数format可选值:
%Y 获取年,返回完整年份
%y 获取年,返回简写年份
%m 获取月,返回月份
%d 获取日,返回天值
%H 获取时,返回24进制的小时数
%h 获取时,返回12进制的小时数
%i 获取分,返回分钟数
%s 获取秒,返回秒数
流程控制
case 值
when 比较值1 then 结果1
when 比较值2 then 结果2 ...
else 结果
end
例:
select case 1
when 1 then 'one'
when 2 then 'two'
else 'zero'
end as result;
自定义函数
创建
语法如下
delimiter $$
create function 函数名称(参数名称) returns 返回类型
begin
sql语句
end
$$
delimiter ;
说明:delimiter为分割符,默认为分号
以分号结尾,会回车执行,所以指定其他符号作为分割符,
推荐使用//,也可以使用其他字符
示例:
# 设置分割符
delimiter //
# 创建函数
create function my_trim(str varchar(100)) returns varchar(100)
begin
return ltrim(rtrim(str));
end
//
# 还原delimiter ;
# 使用自定义函数
select ' abc ',my_trim(' abc ')
navicat 操作
存储过程
指一条或者多条SQL语句的集合
delimiter //
create procedure 存储过程名称(参数列表)
begin
sql语句
end
//
delimiter ;
示例
# 定义分割符
delimiter //
# 创建存储过程
create procedure proc_stu()
begin
select * from students;
end
//
# 还原分割符
delimiter ;
# 调用
# 语法
# call 存储过程(参数列表);
call proc_stu();