数据库的存储过程

news/2024/10/5 21:42:56/

数据库的存储过程

文章目录

  • 数据库的存储过程
    • 一、定义
    • 二、最简单的存储过程(无传入参数无返回参数的存储过程)
    • 三、需求一
    • 四、需求二
    • 五、需求三
    • 六、删除存储过程

一、定义

存储过程是一种数据库对象,它封装了一组 SQL 语句和逻辑操作,可以通过调用存储过程来执行这些操作。

理解:类似于函数

注意:存储过程必须调用,才有用!!!

好处:减少代码的冗余

二、最简单的存储过程(无传入参数无返回参数的存储过程)

delimiter xx
CREATE PROCEDURE pro01()BEGINSELECT * FROM student;SELECT * FROM course;SELECT * FROM class;END xx
delimiter ;# 调用存储过程
CALL pro01();

参数类别:in – 传入参数, out – 传出参数, inout – 传入传出参数

三、需求一

需求:创建存储过程,传入id,查询出该学生的信息

delimiter xx
CREATE PROCEDURE pro02(IN s_id INT) # s_id叫做形式参数(形参) ,形参必须规定类型BEGINSELECT * FROM student WHERE id=s_id;END xx
delimiter ;
# 调用存储过程
CALL pro02(1); # 2叫做实际参数(实参),实参表示传入的具体数据,实参最好和形参的类型一致

四、需求二

需求:创建存储过程,传入id,传出学生的姓名

delimiter xx
CREATE PROCEDURE pro03(IN s_id INT,OUT s_name VARCHAR(32))BEGINSELECT name INTO s_name FROM student WHERE id=s_id;END xx
delimiter ;# 调用存储过程
CALL pro03(1,@s_name);
SELECT @s_name;

五、需求三

需求:创建存储过程,传入id,传出学生的年龄

注意:传入参数和传出参数的类型是一样的,就可以将二者合并(INOUT)

delimiter xx
CREATE PROCEDURE pro04(INOUT param INT)BEGINSELECT age INTO param FROM student WHERE id=param;END xx
delimiter ;# 调用存储过程
set @param = 2; # 声明一个变量
CALL pro04(@param);
SELECT @param;

六、删除存储过程

DROP PROCEDURE pro01;
DROP PROCEDURE pro02;
DROP PROCEDURE pro03;
DROP PROCEDURE pro04;

http://www.ppmy.cn/news/1473385.html

相关文章

C++修饰符类型

一、存储类运算符 auto(自动存储类,但在现代C中,它通常用于自动类型推导) register(建议编译器将变量存储在寄存器中,但现代编译器通常忽略此关键字) static(静态存储类&#xff…

【ARMv8/v9 GIC 系列 5.2 -- GIC 分组介绍:Group 0 |Group 1| Non-Secure Group 1】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 GIC Interrupt grouping中断分组配置寄存器GIC 中断分组介绍Group 0(安全组0)Group 1(安全组1)Non-Secure Group 1(非安全组1)总结及例子GIC Interrupt grouping ARM GICv3 通过中断分组机制,与ARMv8异常模型和安全模型进行…

论文学习——使用基于多项式拟合的预测算法求解动态多目标问题

论文题目:Solving dynamic multi-objective problems using polynomial fitting-based prediction algorithm 使用基于多项式拟合的预测算法求解动态多目标问题(Qingyang Zhang , Xiangyu He,Shengxiang Yang , Yongquan Dong , Hui Song , Shouyong Ji…

vue 代理

前端请求数据,要用ajax,由于浏览器的同源策略,涉及到跨域,解决跨域之后才能访问后端接口 一、常用的发送一个ajax请求: 1、xhr new XMLHttpRequest(),真正开发中不常用 2、jq,jq主要功能是获取dom&#xff…

css_23_多列布局

常用值: column-count:指定列数,值是数字。 column-width:指定列宽,值是长度。 columns :同时指定列宽和列数,复合属性;值没有数量和顺序要求。 column-gap:设置列边距…

el-table封装点击列筛选行数据功能,支持筛选,搜索,排序功能

数据少的话&#xff0c;可以前端实现&#xff0c;如果多的话&#xff0c;建议还是请求接口比较合理父组件&#xff1a; <template> <div class"home"> <!-- <img alt"Vue logo" src"../assets/logo.png"> <HelloWorld …

MATLAB-SCSO-CNN-SVM,基于SCSO沙猫群算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)

SCSO-CNN-SVM&#xff0c;基于SCSO沙猫群算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类) 1.数据均为Excel数据&#xff0c;直接替换数据就可以运行程序。 2.所有程序都经过验证&#xff0c;保证程序可以运行。 3.具有良好的编程习惯&#xff0c;程序均…

高考志愿填报:你需要考虑哪些关键因素?

随着高考成绩的公布&#xff0c;考生们迎来了人生中的一大重要抉择——志愿填报。志愿填报不仅关系到未来的学习方向&#xff0c;更是职业规划的重要一环。那么&#xff0c;在众多的学校和专业面前&#xff0c;我们应该如何抉择呢&#xff1f;下面&#xff0c;就让我们一起探讨…