当前位置:网站首页>PROCEDURE :存储过程结构——《mysql 从入门到内卷再到入土》

PROCEDURE :存储过程结构——《mysql 从入门到内卷再到入土》

2022-08-10 20:51:00 Dhaa_Ryan

内卷能让一个群体的内部变得异常的精致,但是本质上却完完全全没有任何的进步,并且会导致更多没必要的资源浪费以及带来更加激烈的竞争。它是zbzy社会下劳动力过剩的必然现象。

存储过程结构

存储过程

一组预先编译好的SQL语句集合,能提高效率
结构体结尾每条语句必须要求加分号
适合批量更新

创建

CREATE PROCEDURE 存储过程名(参数列表)
BEGIN
存储过程体(合法有效的SQL语句)
END

参数列表
参数模式 参数名 参数类型

测试例:

IN stuname VARCHAR(20)

参数模式:
IN :该参数作为输入口,需要调用方传入值
OUT:该参数作为输出口,该参数可作为返回值
INOUT:该参数可输入输出,既可以传入值,又可以返回值

DELIMITER

建立一个结束标记,SQL到这里时才会执行之前的所有语句(;会被忽略)
语法:

DELIMITER 结束标记

测试例:

DELIMITER *

调用语法

CALL 存储过程名(实参列表);

空参列表

测试例:
向某表插入五条记录

DELIMITER *
CREATE PROCEDURE myp1()
BEGIN
INSERT INTO admin(name,zid) 
VALUES(114514,114514),(114514,114514),(114514,114514),(114514,114514)(114514,114514)
END
*
CALL myp1() *//调用

带IN模式的参数

创建存储过程实现根据舰船名,查询对应的舰长信息

DELIMITER *
CREATE PROCEDURE myp2(IN unsc_ship_id VARCHAR(20))
BEGIN
SELECT ship.captain
FROM unsc_star_ship ship
LEFT JOIN unsc_captain capt
ON ship.captain=capt.name
WHERE ship.id=unsc_ship_id;
END *
CALL myp2(‘凯斯’)//调用(如果出现了下面这种类似的情况,可能是字符集的问题)

在这里插入图片描述

用户登录

CREATE PROCEDURE 
myp3(IN username VARCHAR(20),IN ‘password’VARCHAR(20))
BEGIN
DECLARE result VARCHAR(20) DEFAULT ‘ ’;
SELECT COUNT(*)  INTO result//将返回值给result
FROM admin
WHERE admin.username=username AND  admin.password=‘password’
SELECT result;
END *
CALL myp2(‘田所浩二’,114514)

带OUT模式的参数

创建存储过程实现根据舰船名,返回对应的舰长名字

DELIMITER *
CREATE PROCEDURE 
myp5(IN unsc_ship_id VARCHAR(20)OUT a_unsc_ship_name VARCHAR(20))
BEGIN
SELECT ship.captain_name INTO a_unsc_ship_name 
FROM unsc_star_ship ship
LEFT JOIN unsc_captain capt
ON ship.captain=capt.name
WHERE ship.id=unsc_ship_id;
END *
SET  @ship*
CALL myp2(‘秋风之敦’,@ship)*

带INOUT模式的参数
传入a,b两值,将a,b都翻倍后返回

传参需要传入有值的变量

DELIMITER *
CREATE PROCEDURE myp8(INOUT a INT,INOUT b INT)
BEGIN
SET a=a*2;
SET b=b*2;
END *
SET  @a=10*
SET  @b=20*
CALL myp8(a,b)*

删除存储过程

语法:

DROP PROCEDURE 存储过程名

//一次只能删除一个
查看存储过程(的结构)
语法:

SHOW CREATE PROCEDURE 存储过程名;

返回索引

Mysql 基础 目录链接

原网站

版权声明
本文为[Dhaa_Ryan]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_46207392/article/details/114071270