5、内置函数

字符串函数
拼接字符串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()returnsbeginsqlend
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 step2createfunctionmytrim(strvarchar(100))returnsvarchar(100)beginreturnltrim(rtrim(str));end
step3:还原分割符
delimiter ;使用自定义函数
select ’ abc ‘,my_trim(’ abc ')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值