MysQL自学笔记9--自定义函数
来源:互联网 发布:青岛知豆 6000一年 编辑:程序博客网 时间:2024/06/06 19:50
MySQL自学笔记
使用MySQL 5.5以及MySQL自带命令客户端
自定义函数
在MySQL中,自定义函数(user-define function, UDF)作用就像是MySQL固有的函数一样去创建一个新的函数去扩展MySQL,也就是说UDF是MySQL功能的一个扩展
语法
- 创建
create function 函数名称(参数列表)returns 返回值类型函数体
create function fun_Name(parameter define ...)returns {string/integer/real}runtime_body
创建一个简单的无参数UDF:
create function f1() returns varchar(20) return "Hello World!";
- UDF有两个点要注意:一个是参数,另外一个是返回值
- UDF可以没有参数,但是必须有而且只能有一个返回值,而且如果有用到
begin ... and ...
构造的复合语句,必须将return语句包含在其中
删除UDF:
drop function fun_Name;
- 调用:
select fun_Name(parameter_values);
流程控制语句
MySQL自定义函数中流程控制语句有这几种:if、case、loop、leave、iterate、repeat、while。每一个流程中可能包含单独语句们也可以使用begin ... and ...
构造复合语句,构造可以被嵌套。
这里可以使用delimiter
来对结束符进行修改。
* if语句:用来进行条件判断。示例代码如下:
MySQL
if age > 20 then set @count1 = @count1 + 1;
elseif age = 20 then set @count2 = @count2 + 1;
else set @count3 = @count3 + 1;
end if$
// 有age和20的大小关系来判断不同SQL语句的执行
* case语句:可是用来对条件语句进行判断,可以实现比if更加复杂的条件判断,示例代码如下:
MySQL
case age
when 20 then set @count1 = @count1 + 1;
else set @count2 = @count2 + 1;
end case$
MySQL
case
when age = 20 then set @count1 = @count1 + 1;
else set @count2 = @count2 + 1;
end case$
loop语句:可以是某些特定的语句重复执行,实现一个简单的循环,但是loop本身没有停止循环的语句,必须遇到leave语句等才能够停止循环。下面就构造一个loop循环的示例代码,但是没有退出循环的条件,所以是一个死循环!
add_num : loopset @count = @count + 1;end loop add_num$
leave语句:用于跳出循环,示例代码如下:
add_num : loopset @count = @count + 1;if @count = 100 thenleave add_num;end loop add_num$//当@count的值等于100时,退出循环!
iterate语句:用来跳出循环,但是iterate只能跳出本次循环,然后在直接进入下一次循环,示例代码如下:
add_num : loopset @count = @count + 1;if @count = 100 thenleave add_num;else if mod(@count, 3) = 0 theniterate add_num;select * from employee;end loop add_num$// 在该语句中,@count值为100时跳出循环并结束,在循环过程中,如果@count能够整除3的话,则跳出本次循环,不再执行下面的代码,而是重新开始下一次的循环
- 使用leaver以及iterate跳出循环一定要清楚这两个之间的区别,使用后出现的效果是什么样子的!
repeat语句:是一个有条件控制的循环语句,当满足条件时就会跳出循环语句。示例代码如下:
repeatset @count = @count + 1;until @count = 100;end repeat$// 循环执行到@count到100时结束
- while语句:while也是一个有条件控制的循环语句,但是和repeat不一样的是while是满足条件后才开始执行循环语句,而repeat是满足条件后就退出循环语句。示例代码如下:
MySQL
while @count < 100 do
set @count = @count + 1;
end while$
// 在@count值小于100时执行循环语句
reference
http://www.cnblogs.com/caoruiy/p/4485273.html
- MysQL自学笔记9--自定义函数
- MySQL学习笔记-自定义函数
- MYSQL自学笔记
- Mysql自学笔记一
- Mysql自学笔记二
- Mysql自学笔记三
- Mysql自学笔记四
- mysql自学笔记
- MySql自学笔记
- MySQL学习笔记7:MySQL自定义函数
- 自定义控件自学笔记(一)
- 自定义控件自学笔记(二)
- 自定义控件自学笔记(三)
- 自定义控件自学笔记(四)
- MySQL学习笔记(十四)自定义函数
- [进阶]MySQL学习笔记十自定义函数
- MySQL学习笔记—自定义函数
- 自学mysql数据库之函数
- bitmap的insamplesize题
- android studio 不能使用androidshowAsAction
- 1050.String Subtraction (20)
- noi-8163-第n小的质数
- MysQL自学笔记8--索引、存储过程
- MysQL自学笔记9--自定义函数
- Android上的WebView和ScrollView1起使用
- react-router
- python创建TCP客户端
- 编译极路由(HC5x61)固件
- 如何指定listview的某item滚动到在第一行
- 如何在github创建个人博客?
- 关于导入jar包和作为library引用的区别解释
- 九度OJ-1153-括号匹配问题