问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MySQL存储过程详解:从概念到实战

创作时间:
作者:
@小白创作中心

MySQL存储过程详解:从概念到实战

引用
CSDN
1.
https://blog.csdn.net/m0_74363339/article/details/139883692

一、存储过程——介绍

(1)基本介绍

存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输。对于提高数据处理的效率是有好处的。

存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用。

其实就是将我们的数据库的sql语句进行一个封装(变成集合),封装后进行"重用"。当业务想要调用某一块SQL语句集合,就调用对应的存储过程就行了。

(2)基本特点

  • 封装、复用
  • 在存储过程中,是可以接收参数,也可以返回数据
    (解释:我们定义一个存储过程,可以给这个存储过程传入对应的请求参数。当然在我们的存储过程把业务逻辑执行完了之后,也可以给我们 "调用方" 返回对应的结果)
  • 通过存储过程,可以减少应用服务器和数据库之间的网络交互,访问效率提升。(作用)

大致了解完存储过程,就要学会如何定义、调用存储过程。

二、存储过程——语法

(1)基本语法

创建

CREATE PROCEDURE 存储过程名称( [ 参数列表 ] )
BEGIN
 SQL语句
END;

注意

  1. PROCEDURE(procedure:程序、步骤)。
  2. 存储过程的名称可以自由定义。
  3. 存储过程我们在定义的时候是可以指定它的输入参数、以及返回的参数信息。
  4. begin ... end:里面就是这个存储过程里面封装的SQL语句(可以是一条或多条)。
  5. 所有存储过程的逻辑都是在BEGIN ... END之间定义的。

调用

(当我们的存储过程创建好了之后,想要调用就通过一个关键字:CALL)

CALL 名称 ( [ 参数 ] );

接下来通过 Navicat 进行操作。

(2)实操(创建和调用)

  1. 创建一个叫 "p1" 的简单存储过程。
-- 创建一个简单的存储过程
CREATE PROCEDURE p1 ()
BEGIN
/* 在这里面统一学生表的总记录数 */
    SELECT COUNT(*) FROM student;
end;
  1. 调用 "p1" 存储过程 。

(一旦调用了存储过程,就会执行封装的SQL语句的相关逻辑业务)

-- 调用存储过程
CALL p1();

(3)基本语法

查看

(查看存储过程有两种方式)

  1. (当前数据库服务器里面所有的存储过程的信息)
  • 是直接查看一张系统表(数据库:information_schema.routines(表) )
  • WHERE 后面是跟着限定要查询的数据库名字(哪个数据库下的存储过程)
  1. (查询指定的存储过程,在创建的时候的它的SQL语句是怎么样的)也就是查询某个存储过程的定义。
SHOW CREATE PROCEDURE 存储过程名称;

删除

DROP PROCEDURE [ IF EXISTS ] 存储过程名称;

接下来通过 Navicat 进行操作。

(4)实操(查看和删除)

  1. 第一种方法查看
-- 查看
SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA='your_database_name';
  1. 第二种方法查看

(存储过程在创建的时候它的SQL语句)

SHOW CREATE PROCEDURE p1;
  1. 删除存储过程

(删除表:DROP TABLE [IF EXISTS] 表名;
(删除存储过程:DROP PROCEDURE ...

-- 删除
DROP PROCEDURE p1;

这是这一篇博客所讲的关于——存储过程的创建、调用、查看以及如何删除。

温馨提示

  • 在命令行中,执行创建存储过程的SQL时,需要通过关键字delimiter指定SQL语句的结束符。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号