字符串函数
拼接字符串concat(str1,str2…)
select concat(12,34,‘ab’);
案例:体现类似"王昭君的家乡是北京"的功能.
包含字符个数length(str)
select length(‘abc’);
案例:查找班级里边名字为两个字的所有学生信息
截取字符串
left(str,len)返回字符串str的左端len个字符
right(str,len)返回字符串str的右端len个字符
substring(str,pos,len)返回字符串str的位置pos起len个字符
select substring(‘abc123’,2,3);
案例:实现王昭君叫王某某,张飞叫张某某的功能.
去除空格
ltrim(str)返回删除了左空格的字符串str
rtrim(str)返回删除了右空格的字符串str
select ltrim(’ bar ');
案例:实现左右空格都去掉的功能
大小写转换,函数如下
lower(str)
upper(str)
select lower(‘aBcD’);
数学函数
求四舍五入值round(n,d),n表示原数,d表示小数位置,默认为0
select round(1.6);
求x的y次幂pow(x,y)
select pow(2,3);
获取圆周率PI()
select PI();
随机数rand(),值为0-1.0的浮点数
select rand();
案例1:实现0-10之间的随机数
案例2:做出一个从学生中抽奖的功能
日期时间函数
当前日期current_date()
select current_date();
当前时间current_time()
select current_time();
当前日期时间now()
select now();
日期格式化date_format(date,format)
参数format可选值如下
%Y 获取年,返回完整年份
%y 获取年,返回简写年份
%m 获取月,返回月份
%d 获取日,返回天值
%H 获取时,返回24进制的小时数
%h 获取时,返回12进制的小时数
%i 获取分,返回分钟数
%s 获取秒,返回秒数
例:将使用-拼接的日期转换为使用空格拼接
select date_format(‘2016-12-21’,’%Y %m %d’);
流程控制
case语法:等值判断
说明:当值等于某个比较值的时候,对应的结果会被返回;如果所有的比较值都不相等则返回else的结果;如果没有else并且所有比较值都不相等则返回null
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
c
r
e
a
t
e
f
u
n
c
t
i
o
n
函
数
名
称
(
参
数
列
表
)
r
e
t
u
r
n
s
返
回
类
型
b
e
g
i
n
s
q
l
语
句
e
n
d
create function 函数名称(参数列表) returns 返回类型 begin sql语句 end
createfunction函数名称(参数列表)returns返回类型beginsql语句end
delimiter ;
说明:delimiter用于设置分割符,默认为分号
在“sql语句”部分编写的语句需要以分号结尾,此时回车会直接执行,所以要创建存储过程前需要指定其它符号作为分割符,此处使用//,也可以使用其它字符
示例
要求:创建函数my_trim,用于删除字符串左右两侧的空格
step1:设置分割符
delimiter
s
t
e
p
2
:
创
建
函
数
c
r
e
a
t
e
f
u
n
c
t
i
o
n
m
y
t
r
i
m
(
s
t
r
v
a
r
c
h
a
r
(
100
)
)
r
e
t
u
r
n
s
v
a
r
c
h
a
r
(
100
)
b
e
g
i
n
r
e
t
u
r
n
l
t
r
i
m
(
r
t
r
i
m
(
s
t
r
)
)
;
e
n
d
step2:创建函数 create function my_trim(str varchar(100)) returns varchar(100) begin return ltrim(rtrim(str)); end
step2:创建函数createfunctionmytrim(strvarchar(100))returnsvarchar(100)beginreturnltrim(rtrim(str));end
step3:还原分割符
delimiter ;使用自定义函数
select ’ abc ‘,my_trim(’ abc ')