当前位置:网站首页>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 存储过程名;
返回索引
边栏推荐
- PostgreSQL 介绍
- mysql性能监控与执行计划
- 【图像分类】2017-MobileNetV1 CVPR
- npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.
- (十二)STM32——NVIC中断优先级管理
- 双 TL431 级联振荡器
- 姜还是老的辣,看看老战哥的老底儿和严谨劲儿
- Kyligence 通过 SOC 2 Type II 审计,以可信赖的企业级产品服务全球客户
- 【语义分割】2017-PSPNet CVPR
- 【vulhub】MySql身份认证绕过漏洞复现(CVE-2012-2122)
猜你喜欢
Iridium Ruthenium Alloy/Iridium Oxide Biomimetic Nanozyme | Palladium Nanozyme | GMP-Pd Nanozyme | Gold-Palladium Composite Nanozyme | Ternary Metal Pd-M-Ir Nanozyme |shell nanozyme
.NET现代应用的产品设计 - DDD实践
【实用软件】【VSCode】使用技巧大全(持续更新)
饿了么-机构树单选
优化是一种习惯●出发点是'站在靠近临界'的地方
Apple Font Lookup
【nvm】【node多版本管理工具】使用说明和踩坑(exit status 1)
突破次元壁垒,让身边的玩偶手办在屏幕上动起来!
【图像分类】2019-MoblieNetV3 ICCV
壁仞推出全球最大算力芯片,号称以7nm超越英伟达4nm最新GPU
随机推荐
C 语言 时间函数使用技巧(汇总)
饿了么-机构树单选
Auto.js中的悬浮窗
sklearn 笔记 TSNE
2019河北省大学生程序设计竞赛部分题题解
关于 NFT 版权保护的争议
2021 CybricsCTF
2021DozerCTF
【语义分割】2015-UNet MICCAI
壁仞推出全球最大算力芯片,号称以7nm超越英伟达4nm最新GPU
[Golang]用反射让你的代码变优美
图扑智慧电力可视化大屏,赋能虚拟电厂精准减碳
Water-soluble alloy quantum dot nanozymes|CuMoS nanozymes|porous silicon-based Pt(Au) nanozymes|[email protected] nanomimetic e
参天生长大模型:昇腾AI如何强壮模型开发与创新之根?
实施MES管理系统前,这三个问题要考虑好
金鱼哥RHCA回忆录:CL210OpenStack操作的故障排除--章节实验
shell小技巧(一百三十五)打包指定目录下所用文件,每个文件单独打包
数据标注太昂贵?这个方法可以用有限的数据训练模型实现基于文本的ReID!
三子棋的设计和代码
QSslSocket has not been declared