当前位置:网站首页>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 存储过程名;
返回索引
边栏推荐
- CMU博士论文 | 视频多模态学习:探索模型和任务复杂性
- 【Windows】你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问,这些策略可帮助保护你的电脑
- 测试开发【Mock 平台】08 开发:项目管理(四)编辑功能和Component抽离
- Apache DolphinScheduler 3.0.0 正式版发布!
- B. Codeforces Subsequences
- 什么是抽象类?什么时候用?什么是接口?抽象类与接口的区别?
- Auto.js中APP应用相关指令
- Rider调试ASP.NET Core时报thread not gc-safe的解决方法
- PostgreSQL — 安装及常用命令
- C语言写数据库
猜你喜欢
随机推荐
论配置化系统的配置
【实用软件】【VSCode】使用技巧大全(持续更新)
【网络通信四】ping工具源码cmake工程编译以及运行说明
Kubernetes Notes / Getting Started / Production Environment / Installing Kubernetes with Deployment Tools / Starting a Cluster with kubeadm / Creating a Cluster with kubeadm
设备管理中数据聚类处理
优雅退出在Golang中的实现
Iridium Ruthenium Alloy/Iridium Oxide Biomimetic Nanozyme | Palladium Nanozyme | GMP-Pd Nanozyme | Gold-Palladium Composite Nanozyme | Ternary Metal Pd-M-Ir Nanozyme |shell nanozyme
shell小技巧(一百三十五)打包指定目录下所用文件,每个文件单独打包
"POJ 3666" Making the Grade problem solution (two methods)
单选点击可取消功能
Auto.js中APP应用相关指令
XML小讲
2019河北省大学生程序设计竞赛部分题题解
测试开发【Mock 平台】08 开发:项目管理(四)编辑功能和Component抽离
第14届全国大学生信息安全竞赛-创新实践能力赛
apr_thread使用内存之谜
论文解读(g-U-Nets)《Graph U-Nets》
Kerberos认证
【语义分割】2015-UNet MICCAI
【语义分割】2017-PSPNet CVPR