mysql存储过程实例详解

mysql存储过程是怎样的呢?下面就让我们一起来了解一下吧:

mysql中存储过程是属于一种在数据库中存储复杂程序,以便于外部程序调用的一种数据库对象。

存储过程一般来说是为了完成特定功能的SQL语句集,经过编译后创建并保存在数据库中,用户可以通过指定存储过程的名字并给定参数(通常是在需要时)来进行调用执行。

mysql存储过程优点:

1、存储过程可以进行封装,并且隐藏复杂的商业逻辑。

2、存储过程能够回传值,并能接受参数。

3、存储过程通常是无法使用SELECT指令来进行运行的,由于它是属于子程序,与查看表、数据表或是用户定义函数不同。

4、存储过程能够用于数据检验,强制实行商业逻辑等。

当然,它也存在了一部分缺点:

1、存储过程一般是定制化于特定的数据库上,因为其所支持的编程语言不同。当切换到了其他厂商的数据库系统时,就需要重写原有的存储过程了。

2、存储过程的性能调校与撰写,一般会受限于各种数据库系统。

参考示例:

存储过程的操作,具体代码如下:

创建:

CREATE PROCEDURE sp_name([proc_parameter[,...]])

[characteristic...] routine_body

proc_parameter:

[IN|OUT|INOUT] param_name type #type: Any valid MySQL data type

characteristic:

LANGUAGE SQL

|[NOT] DETERMINISTIC|{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}|SQL SECURITY {DEFINAER|INVOKER}|COMMENT 'string'

routine_body:

Valid SQL procedure statement or statements

修改:

ALTER PROCEDURE sp_name [characteristic...]

characteristic:

{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}|SQL SECURITY {DEFINAER|INVOKER}|COMMENT 'string'

调用:

CALL sp_name([parameter[,...]])

删除:

DROP PROCEDURE sp_name

查看:

show PROCEDURE STATUS [like 'pattern']

SHOW CREATE PROCEDURE sp_name

在MYSQL 存储过程中的关键语法:

声明语句结束符,可自定义为:

DELIMITER $$

DELIMITER //

声明存储过程,即:

CREATE PROCEDURE demo_in_parameter(IN p_in int)

存储过程开始与结束符号,即:

BEGIN .... END

变量赋值,即:

SET @p_in=1

变量定义:

DECLARE l_int int unsigned default 4000000;

创建mysql存储过程、存储函数:

create procedure 存储过程名(参数)

存储过程体:

create function 存储函数名(参数)

示例:

若是删除给定球员参加的所有比赛,具体代码为:

mysql> delimiter $$  #将语句的结束符号从分号;临时改为两个$$(可以为自定义)

mysql> CREATE PROCEDURE delete_matches(IN p_playerno INTEGER)

-> BEGIN

->   DELETE FROM MATCHES

-> WHERE playerno = p_playerno;

-> END$$

Query OK, 0 rows affected (0.01 sec)

mysql> delimiter;  #将语句的结束符号恢复为分号

标签:mysql 存储过程 实例详解

免责声明:本内容来自橡树街平台创作者或收集于互联网公开资源,不代表橡树街网的观点和立场。如有侵权内容,请联系我们删除。联系邮箱:ihuangque@qq.com
相关推荐
mysql 拼接字符串
2022-08-05
mysql 拼接字符串
mysql官网怎样下载64位安装版
2022-08-05
mysql官网怎样下载64位安装版
mysqldump导出数据库
2022-08-05
mysqldump导出数据库
mysql 查看版本
2022-08-05
mysql 查看版本
mysql date类型
2022-08-05
mysql date类型
mysql 获取当前时间
2022-08-05
mysql 获取当前时间
mysql删除用户
2022-08-05
mysql删除用户
mysql安装后怎么使用
2022-08-05
mysql安装后怎么使用
mysql date函数
2022-08-05
mysql date函数
mysql时间格式转换
2022-08-05
mysql时间格式转换
手机老是弹出广告怎么解决
2022-08-05
手机老是弹出广告怎么解决
小爱同学怎么判断我喜欢的人喜不喜欢我
2022-08-05
小爱同学怎么判断我喜欢的人喜不喜欢我
安卓手机如何打开.kmz文件
2022-08-05
安卓手机如何打开.kmz文件
苹果手机文件管理在哪里
2022-08-05
苹果手机文件管理在哪里
安卓手机如何打开.sav文件
2022-08-05
安卓手机如何打开.sav文件
单喜和双喜有什么区别
2022-07-25
单喜和双喜有什么区别
中元节吉祥语
2022-07-25
中元节吉祥语
文昌鱼是鱼类吗
2022-07-25
文昌鱼是鱼类吗
干拌饭的米是什么米
2022-07-25
干拌饭的米是什么米
旧春联还能接着用吗
2022-07-25
旧春联还能接着用吗
青果可以泡酒喝吗
2022-07-25
青果可以泡酒喝吗
2022年发射火星探测器叫什么
2022-07-25
2022年发射火星探测器叫什么
考研英语二需要什么复习资料
2022-07-25
考研英语二需要什么复习资料
君子兰的籽多久成熟
2022-07-25
君子兰的籽多久成熟
杨桃的味道像什么
2022-07-25
杨桃的味道像什么