MySQL存储过程

在数据库系统中,为了保证数据的完整性、一致性,同时也为提高其应用性能,大多数数据库常采用存储过程和存储函数技术。

1、创建存储过程

在MySQL中,创建存储过程使用CREATE PROCEDURE关键字,其基本形式如下:

CREATE PROCEDURE proc_name ([IN | OUT | INOUT param_name type [,...]])
[characteristic ...] 
BEGIN
	routine_body
END;

参数说明:

(1)proc_name:表示存储过程的名称。

(2)[IN | OUT | INOUT param_name type:表示存储过程的参数,它们分别是输入输出类型,参数名称和参数类型。其中,IN表示输入参数;OUT表示输出参数;INOUT表示既可以输入也可以输出;param_name参数是存储过程参数名称;type参数是指定存储过程的参数类型,该类型可以为MySQL数据库的任意数据类型。

(3)routine_body:表示SQL代码的内容。

 

2、调用存储过程

在MySQL中,使用CALL语句来调用存储过程,基本语法形式如下:

CALL proc_name([parameter[,…]]);

其中proc_name是存储过程的名称;parameter是存储过程的参数。

示例:创建存储过程,实现根据用户编号,获取用户姓名功能。

(1)先创建tb_user(用户信息表),并添加数据。

-- 创建用户信息表
CREATE TABLE IF NOT EXISTS tb_user
(
	id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号',
	name VARCHAR(50) NOT NULL COMMENT '用户姓名'
) COMMENT = '用户信息表';

-- 添加数据
INSERT INTO tb_user(name) VALUES('pan_junbiao的博客');
INSERT INTO tb_user(name) VALUES('KevinPan');
INSERT INTO tb_user(name) VALUES('pan_junbiao');
INSERT INTO tb_user(name) VALUES('阿标');
INSERT INTO tb_user(name) VALUES('panjunbiao');
INSERT INTO tb_user(name) VALUES('pan_junbiao的CSDN博客');
INSERT INTO tb_user(name) VALUES('https://blog.csdn.net/pan_junbiao');

查询数据结果:

(2)创建存储过程。

-- 创建存储过程
CREATE PROCEDURE proc_user(IN in_id INT,OUT out_name VARCHAR(50))
BEGIN
	SELECT name INTO out_name FROM tb_user
	WHERE id = in_id;
END;

(3)调用存储过程

SET @id = 1;
CALL proc_user(@id,@name);
SELECT @name;

执行结果:

 

3、修改存储过程

MySQL中通过ALTER PROCEDURE语句来修改存储过程,但是只能修改存储过程的特性,暂时不支持修改存储过程的代码内容,所以如果真的要修改存储过程的代码内容,那么只能先删除该存储过程,然后再重写创建。

 

4、删除存储过程

MySQL中使用DROP PROCEDURE语句来删除存储过程。

示例:删除存储过程。

DROP PROCEDURE IF EXISTS proc_user;

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pan_junbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值