文章有点长请耐心看完哈,有错误请指出
·函数
·内置函数(以下列出部分函数)
一、字符串函数
二、时间函数
三、数学函数
五、其他函数
·自定义函数
一、创建函数
二、查看函数
1、可以通过查看function状态,查看所有的函数
show function status [like 'pattern']
2、查看函数的创建语句:
show create function my_fun1;
三、调用函数
自定义函数调用与内置函数的调用是一样的:select 函数名(实参列表)
四、删除函数
基本语法 drop function 函数名
·注意事项
·函数流程结构案例
目的:从1开始知道用户传入的对应的值为止,自动求和凡是5的倍数都不要
设计:
1、创建函数
2、需要一个形参,确定累加到什么位置
3、需要定义一个变量来保存对应的结果
4、内部需要一个循环来实现叠加
5、循环内部需要条件控制来排除5的倍数
delimiter $$
create function my_sum(end_value int) returns int
begin
declare res int default 0;//声明局部变量
declare i int default 1;
mywhile:while i<=end_value do
if i%5 = 0 then
set i = i+1;44
iterate mywhile;
end if;
set res = res +i;//mysql中没有++符号
set i = i + 1
end while mywhile;
return res;
end
$$
delimiter ;
调用函数: select 函数名(参数)
·变量作用域
变量能够使用的区域范围
一、局部作用域
使用declare关键字声明(在结构体内:函数、存储过程、触发器),只能在结构体内部使用
1、declare 关键字声明的变量没有任何符号,就是普通字符串,如果在外部访问该变量,系统会自动认为是字段
二、会话作用域
用户定义的,使用@符号,使用set关键字
会话作用域:在当前用户当次连接有效,只要在本连接之中任何地方都可以使用,可以跨库使用
三、全局作用域
所有的客户端所有的连接都有效;
使用全局符号来定义
set global 变量名 = 值
set @@globle.变量名 = 值
通常在sql编程时候,一般不会使用自定义变量来控制全局