三十五、存储过程的基本使用

简介: 三十五、存储过程的基本使用

一、什么是存储过程

存储过程是为了完成特定功能的 SQL 语句集,经过编译创建并保存在数据库中,用户可以通过指定存储过程的名字并给定参数来调用执行,类似于编程语言中的方法或函数。


1.1 存储过程的优点

  1. 存储过程是对 SQL 语句的封装,增强可复用性;
  2. 存储过程可以隐藏复杂的业务逻辑和商业逻辑;
  3. 存储过程支持接受参数,并返回运算结果。

1.2 存储过程的缺点

  1. 存储过程的可以执行差,如果更换数据库要重新存储过程;
  2. 存储过程难以调试和扩展;
  3. 无法使用 Explain 对存储过程进行分析。


存储过程的语法如下:

[delimiter 声明语句结束符]
create procedure 存储过程名称([存储过程参数])
begin
    sql 逻辑
end
[声明语句结束符]
[delimiter ;]
  1. 声明语句结束符一般用于sql 逻辑中如果有 ; 为结尾的sql语句,那么就需要使用delimiter 定义声明语句结束符。这样 MySQL 才能正确的找到存储过程正确的结束位置。
  2. 存储过程参数可以没有,如果存储过程需要返回值,那么就需要定义出参,如果存储过程需要从外部获得值就需要定义入参。


例如:

1.定义一个存储过程,计算两个数的和:

delimiter //
create procedure num_sum(in num1 int, in num2 int ,out result int)
begin
    set result=num1+num2;
end
//
delimiter ;

在这个存储过程中入参为 num1 和 num2 表示,需要在参数名前面加上 in 表示入参,参数名后面是参数类型。result 是出参,需要在参数名前面加上 out。调用这个存储过程使用 call 关键字:

call num_sum(10,20,@result);
select @result;

如果存储过程里需要定义变量,可使用 declare 关键字定义,个变量赋值使用 set 关键字:

delimiter //
create procedure num_sum_add2(in num1 int, in num2 int ,out result int)
begin
    declare n int ;
    set n=num1+num2;
    set result=n+2;
end
//
delimiter ;
目录
相关文章
|
8月前
|
存储 关系型数据库 MySQL
Mysql基础第二十六天,使用存储过程
Mysql基础第二十六天,使用存储过程
55 0
Mysql基础第二十六天,使用存储过程
|
7月前
|
SQL 前端开发 Java
2024考古之还在用原始JDBC开发 手搓 案例 实现一个模块的增删改
2024考古之还在用原始JDBC开发 手搓 案例 实现一个模块的增删改
47 0
|
8月前
|
存储 SQL 数据库
十六、存储过程
十六、存储过程
65 0
|
JavaScript 前端开发
带你读《现代TypeScript高级教程》十五、装饰器与反射元数据(1)
带你读《现代TypeScript高级教程》十五、装饰器与反射元数据(1)
|
JavaScript API
带你读《现代TypeScript高级教程》十五、装饰器与反射元数据(2)
带你读《现代TypeScript高级教程》十五、装饰器与反射元数据(2)
|
设计模式 Java 程序员
程序中的奇技淫巧--语法糖
程序中的奇技淫巧--语法糖
135 0
程序中的奇技淫巧--语法糖
|
JavaScript 测试技术
干货 | Web自动化测试中显式等待与隐式等待该怎么用?
在实际工作中等待机制可以保证代码的稳定性,保证代码不会受网速、电脑性能等条件的约束。 等待就是当运行代码时,如果页面的渲染速度跟不上代码的运行速度,就需要人为的去限制代码执行的速度。 在做 Web 自动化时,一般要等待页面元素加载完成后,才能执行操作,否则会报找不到元素等各种错误,这样就要求在有些场景下加上等待。 最常见的有三种等待方式: - 隐式等待 - 显式等待 - 强制等待 后面会一一介
|
数据库 索引
二十三、索引的基本使用
二十三、索引的基本使用
163 0
二十三、索引的基本使用
|
存储
三十六、存储过程小练
三十六、存储过程小练
68 0
|
JavaScript Android开发
第二十三章:触发器和行为(十一)
单选按钮内置于旧汽车仪表板中的无线电通常具有一排六个(左右)按钮,可以为各种无线电台“编程”。 按下其中一个按钮会导致无线电跳转到该预选电台,并且还会弹出前一个选择按钮。那些旧的汽车收音机现在是古董,但我们的电脑屏幕上的互斥选项仍然由我们称为单选按钮的视觉对象表示。
917 0