我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL数据库之存储过程怎么创建

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL数据库之存储过程怎么创建

本篇内容介绍了“MySQL数据库之存储过程怎么创建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    前言:

    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 |+-------+-------+-------+

    分析:

    • 实参传入过程之后,实际上没有改变外部变量的值,而是把值给了形参,out类型不能接收外部变量的值,默认为null

    • 当过程执行到end 的时候,如果是out或inout变量,会将形参的值重新赋值给实参变量

    “MySQL数据库之存储过程怎么创建”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    MySQL数据库之存储过程怎么创建

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

    下载Word文档

    猜你喜欢

    MySQL数据库之存储过程怎么创建

    本篇内容介绍了“MySQL数据库之存储过程怎么创建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:stored procedure 完成
    2023-07-02

    MySQL怎么创建存储过程

    要在MySQL中创建存储过程,可以按照以下步骤操作:1. 打开MySQL客户端或使用类似phpMyAdmin等工具连接到MySQL数据库。2. 创建一个新的存储过程。使用`CREATE PROCEDURE`语句,后面跟着存储过程的名称和参数
    2023-08-23

    MySQL数据库之存储过程 procedure

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

    MySQL存储过程和函数怎么创建

    这篇文章主要介绍“MySQL存储过程和函数怎么创建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL存储过程和函数怎么创建”文章能帮助大家解决问题。1.0 创建存储过程和函数创建存储过程和函
    2023-06-30

    mysql数据库存储过程教程

    mysql 存储过程是预编译的 sql 语句集合,可作为单个单元执行,提供提高性能、代码重用、安全性、数据完整性等优势。创建存储过程需要确定功能、编写代码、使用 create procedure 语句创建、使用 call 语句测试。例如,获
    mysql数据库存储过程教程
    2024-08-01

    用Navicat创建MySQL存储过程

    1.使用Navicat for MySQL工具创建存储过程步骤: 点击函数右键新建: 点击下一步 最后点击完成以后弹出以下界面 在此处编写自己的sql语句,编写完成以后点击保存 最后测试一下自己的存储过程是否成功 输入参数测试 返回结果如下 到
    用Navicat创建MySQL存储过程
    2015-06-25

    如何在 SQL Server 中创建存储过程?(sqlserver怎么创建存储过程)

    在SQLServer中创建存储过程是一项非常重要的数据库开发任务,它可以提高数据库的性能和可维护性。以下是创建存储过程的详细步骤:一、准备工作确保你已经安装了SQLServer数据库管理系统,并且拥有足够
    如何在 SQL Server 中创建存储过程?(sqlserver怎么创建存储过程)
    2024-12-13

    编程热搜

    目录