MySQL_存储过程

MySQL存储过程

备注:本文仅供参考,如有错误,欢迎指正。

存储过程(Stored Procedure)一组为了完成特定功能的SQL 语句集,比如:增删改或者执行某些DDL语句。没有返回值,可通过out来输出值。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

语法:

delimiter$$
create procedure 过程名([参数列表])
begin
-- SQL语句
end$$

备注:

  • delimiter$ $ 用来防止每写一句语句用 ";"结束时被客户端读取,而直接使存储过程整体传到服务器。若用delimiter// ,哪在end后的$$要改成//
  • begin end 用来装SQL语句对应开始与结束。
  • 单行备注:- -,多行备注://
USE db_hcq  --在进行创建存储过程前先申明使用哪个数据库

实例1:(in类型)
需求:传入一个变量,输出这个变量。

DELIMITER $$
CREATE PROCEDURE p1(IN n INT)
BEGIN
	SELECT n;
END$$


SET @i=100; --创建变量
CALL p1(@i); --调用存储过程

在这里插入图片描述
实例2:(out类型)
需求:调用过程,输出声明的变量。

DELIMITER $$
CREATE PROCEDURE p2(OUT n INT)
BEGIN
	DECLARE n2 INT DEFAULT 200;
	SET n=n2;
END$$

CALL p2(@m);
SELECT @m;

在这里插入图片描述
实例3:(inout)
需求:声明一个变量,传入存储过程,输出这个变量
注意:inout 会影响@m1 的值,而in 不会。因为inout 带有out的属性:将参数回传到调用处。


DELIMITER$$
CREATE PROCEDURE p3(INOUT n INT)
BEGIN
	SET n=n+10;
END$$

SET @m1=50;
CALL p3(@m1);
SELECT @m1;

在这里插入图片描述

删除存储过程:

DROP PROCEDURE p3; --p3为存储过程名

查看存储过程

SHOW CREATE PROCEDURE p3; --查询指定存储过程
SHOW PROCEDURE STATUS; --查询本机所有存储过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值