广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库之存储过程 procedure
  • 554
分享到

MySQL数据库之存储过程 procedure

MySQL数据库MySQL存储过程 procedure 2022-06-15 18:06:25 554人浏览 薄情痞子
摘要

目录1、存储过程与函数的区别1.1、相同点1.2、不同点2、存储过程的操作2.1、创建过程2.2、查看过程2.3、调用过程2.4、删除过程3、存储过程的形参类型前言: stored procedure 完成特定功能的sq

前言:

stored procedure 完成特定功能的sql语句集,存储在数据库中,经过第一次编译之后再次调用不需要编译(效率较高)

1、存储过程与函数的区别

1.1、相同点

  • 都是为了可重复地执行操作数据库的SQL语句集合
  • 都是一次编译,多次执行

1.2、不同点

  • 标识符不同,函数function 过程 procedure
  • 函数中有返回值,且必须返回,而过程没有返回值
  • 过程无返回值类型,不能将结果直接赋值给变量;函数有返回值类型,调用时,除了在select中,必须将返回值赋值给变量
  • 函数可以再select语句中直接使用,而过程不能

2、存储过程的操作

2.1、创建过程

基本语法:

create procedure 过程名字([参数列表])
bengin
    过程体
end
结束符

如果只有只有一条指令可以省略begin和end

create procedure my_pro1()
select * from my_student;

过程基本上可以完成函数对应的所有功能:

-- 修改语句结束符
delimiter $$
-- 创建过程
create procedure my_pro2()
begin
    -- 求1到100之间的和
    -- 创建局部变量
    declare i int default 1;
    -- declare sum int default 0;
    -- 会话变量
    set @sum = 0;
    -- 开始循环获取结果
    while i <= 100 do
        -- 求和
        set @sum = @sum + i;
        set i = i + 1;
    end while;

    -- 显示结果
    select @sum;
end
$$
delimiter ;

2.2、查看过程

-- 查看所有存储过程
show procedure status [like 'pattern'];
-- 查看过程的创建语句
show create procedure 过程名字\G

2.3、调用过程

过程没有返回值

基本语法:

call 过程名([实参列表]);
-- eg:
call my_pro2();
+------+
| @sum |
+------+
| 5050 |
+------+

2.4、删除过程

基本语法:

drop procedure 过程名;

3、存储过程的形参类型

存储过程的参数和函数一样,需要制定其类型

但是存储过程对参数还有额外的要求,自己的参数分类:

  • in:(值传递)参数从外部传入,在过程内部使用,可以是直接数据,也可以是保存数据的变量
  • out:(引用传递)参数在过程中赋值,传入必须是变量,如果有外部数据,会被清空为null
  • inout:(引用传递)数据可以从外部传入过程内部使用,同时内部操作之后,又回将数据返回给外部

代码示例:

-- 创建3个会话变量
set @var1 = 1;
set @var2 = 2;
set @var3 = 3;
-- 查询会话变量
select @var1, @var2, @var3;
+-------+-------+-------+
| @var1 | @var2 | @var3 |
+-------+-------+-------+
|     1 |     2 |     3 |
+-------+-------+-------+
1 row in set (0.00 sec)
-- 修改语句结束符
delimiter $$
-- 定义过程
create procedure my_pro3(in a int, out b int, inout c int)
begin
    -- 查看传入的3个数据值
    select a, b, c;
    -- +------+------+------+
    -- | a    | b    | c    |
    -- +------+------+------+
    -- |    1 | NULL |    3 |
    -- +------+------+------+
    -- 修改3个变量值
    set a = 10;
    set b = 20;
    set c = 30;
    select a, b, c;
    -- +------+------+------+
    -- | a    | b    | c    |
    -- +------+------+------+
    -- |   10 |   20 |   30 |
    -- +------+------+------+
    -- 查看会话变量
    select @var1, @var2, @var3;
    -- +-------+-------+-------+
    -- | @var1 | @var2 | @var3 |
    -- +-------+-------+-------+
    -- |     1 |     2 |     3 |
    -- +-------+-------+-------+
    -- 修改会话变量
    set @var1 = 'a';
    set @var2 = 'b';
    set @var3 = 'c';
    select @var1, @var2, @var3;
    -- +-------+-------+-------+
    -- | @var1 | @var2 | @var3 |
    -- +-------+-------+-------+
    -- | a     | b     | c     |
    -- +-------+-------+-------+
end
$$
delimiter ;
-- 调用过程
call my_pro3(@var1, @var2, @var3);

-- 再次查看会话变量
Mysql> select @var1, @var2, @var3;
+-------+-------+-------+
| @var1 | @var2 | @var3 |
+-------+-------+-------+
| a     |    20 |    30 |
+-------+-------+-------+

分析:

  • 1、实参传入过程之后,实际上没有改变外部变量的值,而是把值给了形参,out类型不能接收外部变量的值,默认为null
  • 2、当过程执行到end 的时候,如果是out或inout变量,会将形参的值重新赋值给实参变量

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库之存储过程 procedure

本文链接: https://www.lsjlt.com/news/32956.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库之存储过程 procedure
    目录1、存储过程与函数的区别1.1、相同点1.2、不同点2、存储过程的操作2.1、创建过程2.2、查看过程2.3、调用过程2.4、删除过程3、存储过程的形参类型前言: stored procedure 完成特定功能的SQ...
    99+
    2022-06-15
    MySQL数据库 MySQL存储过程 procedure
  • MySQL进阶篇之存储过程(procedure)
    04、视图/存储过程/触发器 4.1、视图(view) 4.2、存储过程(procedure) 4.2.1、介绍 介绍 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据...
    99+
    2023-08-19
    mysql 数据库 sql
  • mysql数据库存储过程之while循环
    一、语法。 while循环是有条件的循环控制语句,满足条件后,再执行循环体中的SQL语句,具体语法为: #先判定条件,如果条件为TRUE,则执行逻辑,否则不执行逻辑while 条件 do SQL逻辑 end while; 二、案例。 计...
    99+
    2023-09-21
    数据库 sql
  • MySQL数据库之存储过程怎么创建
    本篇内容介绍了“MySQL数据库之存储过程怎么创建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:stored procedure 完成...
    99+
    2023-07-02
  • mysql数据库的存储过程
    本篇内容介绍了“mysql数据库的存储过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、创建存储过...
    99+
    2022-10-18
  • mysql数据库存储数据的过程
    这篇文章主要讲解了“mysql数据库存储数据的过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql数据库存储数据的过程”吧! 存储过程如下: J...
    99+
    2022-10-18
  • mysql数据库存储过程之游标(光标cursor)
    游标是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、open、fetch和close。 一、语法。 #声明游标declare 游标名称 cursor for 查询语句;#开启游...
    99+
    2023-09-02
    数据库 sql
  • MySQL数据库实验之 触发器和存储过程
    目录一、实验目的二、实验要求三、实现内容及步骤1、创建一个不带参数的简单存储过程2、创建一个带输入参数的存储过程3、创建一个带输入输出参数的存储过程4、触发器的创建与使用四、实验总结观前提示:本篇内容为mysql数据库实...
    99+
    2022-06-20
    MySQL数据库实验 MySQL触发器 MySQL存储过程
  • MySQL之存储过程
    我的小站:我的博客 1.1 存储过程简介 存储过程是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数的值 MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedur...
    99+
    2023-09-02
    数据库 mysql sql
  • Mysql之存储过程和函数
    Mysql之存储过程和函数存储过程就是一条或多条SQL语句的集合,可视为批文件,但是其作用不仅用于批处理。存储程序分为:1、存储过程 2、函数使用Call语句来调用存储过程,只能用输出变量返回值。一、创建存...
    99+
    2022-10-18
  • 存储mysql数据库的详细过程
    下面一起来了解下存储mysql数据库的详细过程,相信大家看完肯定会受益匪浅,文字在精不在多,希望存储mysql数据库的详细过程这篇短内容是你想要的。存储过程简介存储过程可以简单理解为一条或者多条sql语句的...
    99+
    2022-10-18
  • MySQL数据库高级(四)——存储过程
    MySQL数据库高级(四)——存储过程 一、存储过程简介 1、存储过程简介 存储过程是一组具有特定功能的SQL语句集组成的可编程的函数,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数来调...
    99+
    2022-10-18
  • 数据库存储过程
    原文:https://www.cnblogs.com/gfutcan/p/13946765.html...
    99+
    2015-11-12
    数据库存储过程 数据库入门 数据库基础教程
  • mysql数据的存储过程
    MySQL存储过程是一组预定义的SQL语句集合,可以在数据库中进行预先编译和存储,并在需要时进行调用和执行。存储过程通常用于处理复杂...
    99+
    2023-08-22
    MySQL
  • MySQL数据库的视图、存储过程和存储引擎
    本文主要介绍了MySQL数据库的视图和MySQL数据库的存储过程,还介绍了MySQL的两个存储引擎MyISAM和InnoDB,希望大家通过这篇文章有所收获。一、前言MySQL 视图(View)是一种虚拟存在...
    99+
    2022-10-18
  • MySQL数据库提升篇-----存储过程和函数
    day06 MySQL数据库存储过程和函数一、存储过程和函数的概述:    数据库的存储过程和存储函数是指在数据库中定义的一些sql语句的集合,直接调用这些存储过程的...
    99+
    2022-10-18
  • mysql数据库中的存储过程是什么
    这篇文章给大家分享的是有关mysql数据库中的存储过程是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语...
    99+
    2022-10-18
  • mysql数据库中创建存储过程的案例
    小编给大家分享一下mysql数据库中创建存储过程的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql存储过程教程:首先...
    99+
    2022-10-18
  • 数据库优化之创建存储过程、触发器
        存储过程可加快查询的执行速度,提高访问数据的速度,帮助实现模块化编程,保存一致性,提高安全性。触发器是在对表进行插入、更新、删除操作时自动执行的存储过程,通常用于强制业务规则。一...
    99+
    2022-10-18
  • Oracle数据库存储过程的调试过程
    目录oracle存储过程调试方法Oracle 存储过程的调试总结oracle存储过程调试方法 PL/SQL中为我们提供了【调试存储过程】的功能,可以帮助你完成存储过程的预编译与测试。 点击要调试的存储过程,右键...
    99+
    2022-07-05
    oracle 调试存储过程 oracle 存储过程怎么调试 oracle存储过程如何调试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作