mysql中的存储过程

news/2024/9/23 2:31:20/

使用说明

存储过程是数据库一个重要的对象,可以封装sql语句集,可以用来完成一些较为复杂的业务逻辑,一个存储过程就是一个功能,可以接受输入类型参数,可以接受输出类型参数,并且可以用多个返回值

存储过程的优点

1.增强sql语句的功能和灵活性
2.实现较快的执行速度
3.减少网络流量

参数

1.in 表示该参数的值必须在调用存储过程时指定
2.out 表示该参数的值可以被存储过程改变,并且可以返回
3.表示该参数在调用时指定,并且可以被改变和返回

语法

# 定义存储过程
delimiter //
CREATE PROCEDURE tt()
BEGIN
select * from xx;
END //# 调用存储过程
call tt()

创建不带参数的存储过程

delimiter //
CREATE PROCEDURE tt()
BEGIN
select * from xx;
END //
# 调用
call tt()

创建带IN参数的存储过程

delimiter //
CREATE PROCEDURE aa(IN my_id INT UNSIGNED)
BEGIN
select * from tb_xxx WHERE ID=my_id;
END //
# 调用
call aa(1)

创建带有IN和out参数的存储过程

delimiter //
CREATE PROCEDURE bb(IN my_id INT UNSIGNED,OUT my_num INT UNSIGNED)
BEGIN
select * from tb_project WHERE ID=my_id;
select count(*)  from tb_project INTO my_num;
END //
# 调用
call bb(1,@num)
select @num

变量

自定义用户变量

声明

#定义变量
1.SET @用户变量名=# 通过select into
2.SELECT 字段 into 变量名 from

``

查看用户变量的值

select @变量名

自定义局部变变量

只能放在begin end中且必须是begin中的第一句话

声明

DECLARE 变量名 类型
DECLARE 变量名 类型 DEFAULT 默认值

赋值

#定义变量
1.SET @用户变量名=# 通过select into
2.SELECT 字段 into 变量名 from

查看 变量

select @变量名

用户变量和局部变量的区别

作用域

用户变量针对当前会话,局部变量针对begin end

语法

用户变量声明加上@符号,不需要限定类型,局部变量不需要加@符号,需要限定类型

mysql中的流程控制

分支结构

if函数

if函数能够实现简单的分支,语法结构

if (表达式1,表达式2,表达式3) 如果表达式1成立,则返回表达式2,否则返回表达式3

case结构

可以作为表达式,嵌套在其他语句中使用,可以单独使用

等值判断

语法

case 常量|表达式|字段 when 要判断的值 then 返回的值或者语句
when 要判断的值 then 返回的值或者语句
when 要判断的值 then 返回的值或者语句
else 要返回的值
end case

区间判断

case  when 条件1 then 返回的值或者语句;
when 条件2 then 返回的值或者语句;
when 条件3 then 返回的值或者语句;
else 要返回的值
end case

循环结构

while

语法结构

标签:while 循环条件 do循环体;
end while:标签

loop

语法结构

标签:loop 
循环体;
end loop:标签

repeat

语法结构

标签:repeat 循环体;
until 结束循环的条件
end repeat:标签

循环控制

iterate 类似于continue,结束本次循环,继续下一次
leave 结束当前的循环


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

相关文章

详解 Flink Catalog 在 ChunJun 中的实践之路

我们知道 Flink 有Table(表)、View(视图)、Function(函数/算子)、Database(数据库)的概念,相对于这些耳熟能详的概念,Flink 里还有一个 Catalog(目…

【HyperLearner】《What Can Help Pedestrian Detection?》

CVPR-2017 文章目录1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method4.1 Channel features for pedestrian detection4.2 Integration techniques4.3 Comparison and analysis5 Jointly learn the channel features5.1 Datasets and Metrics5.2…

windows编程(2)-消息与循环

文章首发于:My Blog 欢迎大佬们前来逛逛 win32打开控制台的方法 首先加入输入输出头文件 AllocConsole:为控制台分配空间 GetStdHandle:创建一个标准输入输出设备,指定其为STD_OUTPUT_HANDLE则就是一个标准输出控制台。 创建一…

测试7年,去过阿里也去过小公司,给你们年轻人一个忠告...

你眼中的软件测试岗位是怎样的?大部分人可能会给出这样的回答:“测试?简单啊,没什么技术含量,无非就是看需求、看业务手册、看设计文档、然后点点功能是否实现,麻烦点的就是测试下部署安装是否出现兼容性问…

充电桩检测设备TK4860E交流充电桩检定装置

产品特点 充电桩检测设备内置5.28 kW单相交流负载,无需携带额外负载进行测试。 宽动态范围测量技术,避免充电桩输出波动引起的测量风险。 ms级电能刷新速度,减少充电桩与标准仪器在非同步累积电能过程中引入的误差,提高累积电能…

汽车电子行业入门指南「汽车行业的英语要求与学习方法」

1. 学习英语的几个阶段 在汽车行业中,英语是一种重要的工作语言。为了更好地掌握这个行业,我们需要了解英语熟练度的几个等级。英语熟练度通常被分为以下几个等级: 初级水平:能够理解常见的日常用语和简单的句子。在沟通中需要依…

Transformer 杂记

Transformer输入的是token,来自语言序列的启发。卷积神经网络(CNN)是如何进行物种分类的.它实际是直接对特征进行识别,也就是卷积神经网络最基本的作用:提取图像的特征。例如:卷积神经网络判断一只狗的时候&#xff0c…

C++纯虚函数和抽象类详解

在C中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) 0; 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上0,表明此函数为纯虚函数。 最后的0并不表示函数返回…