当前位置:网站首页>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 存储过程名;
返回索引
边栏推荐
猜你喜欢

Are you hungry - Institution tree radio

突破次元壁垒,让身边的玩偶手办在屏幕上动起来!

.NET现代应用的产品设计 - DDD实践

Iridium Ruthenium Alloy/Iridium Oxide Biomimetic Nanozyme | Palladium Nanozyme | GMP-Pd Nanozyme | Gold-Palladium Composite Nanozyme | Ternary Metal Pd-M-Ir Nanozyme |shell nanozyme

TortoiseSVN小乌龟的使用

电信保温杯笔记——《统计学习方法(第二版)——李航》第17章 潜在语义分析

Demis Hassabis:AI 的强大,超乎我们的想象

C. Even Picture

日期选择器组件(限制年份 设定仅展示的月份)

面向未来的 IT 基础设施管理架构——融合云(Unified IaaS)
随机推荐
详叙c中的分支与循环
Redis命令手册
npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.
【图像分类】2018-MobileNetV2
Auto.js找图找色常用功能
Kyligence 通过 SOC 2 Type II 审计,以可信赖的企业级产品服务全球客户
每日一R「03」Borrow 语义与引用
"POJ 3666" Making the Grade problem solution (two methods)
QSslSocket has not been declared
【nvm】【node多版本管理工具】使用说明和踩坑(exit status 1)
金鱼哥RHCA回忆录:CL210OpenStack操作的故障排除--章节实验
Auto.js中APP应用相关指令
win7开机有画面进系统黑屏怎么办
Detailed explanation and use of each module of ansible
【图像分类】2019-MoblieNetV3 ICCV
OPPO Enco X2 迎来秋季产品升级 旗舰体验全面拉满
Bedtime story | made a Bitmap and AST length system configuration
石油化工行业商业供应链管理系统:标准化供应商管理,优化企业供应链采购流程
C语言写数据库
什么是抽象类?什么时候用?什么是接口?抽象类与接口的区别?