1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > MySQL自定义函数和存储过程

MySQL自定义函数和存储过程

时间:2020-10-24 08:02:17

相关推荐

MySQL自定义函数和存储过程

自定义函数

使用步骤

1.第一步修改结束符号

基本语法格式 :修改结束符号来写一个自定义函数

DELIMITER 新的结束符号比如$$自定义函数新的结束符号 DELIMITER;

修改结束符号用的就是 delimiter

2.第二步,写自定义函数

基本语法格式

REATE FUNCTION 函数名([参数名 参数类型...]) RETURNS 返回值的类型BEGIN函数体RETURN 返回值END

现在我们来一个完整的例子

DELIMITER $$CREATE FUNCTION sayhello(name varchar(30)) RETURNS varchar(50)BEGINRETURN CONCAT("HELLO",name,"!");END$$***DELIMITER;

我们在这里写了一个名为sayhello的函数,并修改了语句结束符号为$$

通过语句SELECT sayhello("JOJO") 就可以调用

删除函数

drop function [if exists] 函数名;

存储过程

这东西和自定义函数类似

相同点

1.可重复执行语句集合

2.只需一次编译即可直接执行

不同点

1.存储过程使用 PROCEDURE(procedure) 自定义函数使用 FUNCTION

2.存储过程没有返回值 函数必须有

3.函数可以设置返回值的类型

4.存储过程使用 CALL调用 函数可以使用SELECT调用

存储过程基本语法

delimiter 新的结束符号CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名称 参数类型])BEGIN过程体END新的结束符号DELIMITER;

参数

其中的三个参数

注意

当形参被定义为OUT 或者 INOUT 时 参数必须是一个变量

用于接收返回给调用者的数据

例子

delimiter $$CREATE PROCEDURE proc(in sid int)BEGINselect id,name from student where id>sid;END$$DELIMITER;

调用存储过程

CALL 数据库名.存储过程名([实参列表])CALL proc(14); #查看id大于14的学生的id和姓名

查看存储过程

show create procedure 过程名;

存储过程的修改

ALTER procedure 存储过程名 [特征];#特征在创建或修改时都可以使用

特征

简单用一下alter procedure proc sql security invoker;

之后只有调用者有权执行存储过程

删除存储过程

DROP PROCEDURE [IF exists] 存储过程名;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。