MySql存储过程实例(附完整注释)

发布时间:2022-07-20 11:51:02 作者:tangyx 阅读量:4138

昨天的文章《初学者都能看懂的mysql教程》让初学者对MySql有了一定的认识,今天分享一个简单的MySql存储过程实例,供大家参考学习。
                                                 

                                                   /********************* 创建表 *****************************/
                                                    delimiter //
                                                    
                                                    DROP TABLE if exists test //
                                                    
                                                    CREATE TABLE test(
                                                      id int(11) NULL
                                                    ) //
                                                    
                                                    /********************** 最简单的一个存储过程 **********************/
                                                    drop procedure if exists sp//
                                                     CREATE PROCEDURE sp() select 1 //
                                                     
                                                     call sp()//
                                                     
                                                    /********************* 带输入参数的存储过程  *******************/
                                                    
                                                    drop procedure if exists sp1 //
                                                    
                                                    create procedure sp1(in p int)
                                                    comment 'insert into a int value'
                                                    begin
                                                      /* 定义一个整形变量 */
                                                      declare v1 int;
                                                      
                                                      /* 将输入参数的值赋给变量 */
                                                      set v1 = p;
                                                      
                                                      /* 执行插入操作 */
                                                      insert into test(id) values(v1);
                                                    end
                                                    //
                                                    
                                                    /* 调用这个存储过程  */
                                                    call sp1(1)//
                                                    
                                                    /* 去数据库查看调用之后的结果 */
                                                    select * from test//
                                                    
                                                     /****************** 带输出参数的存储过程 ************************/
                                                    
                                                    drop procedure if exists sp2 //
                                                    create procedure sp2(out p int)
                                                    /*这里的DETERMINISTIC子句表示输入和输出的值都是确定的,不会再改变.我一同事说目前mysql并没有实现该功能,因此加不加都是NOT DETERMINISTIC的*/
                                                    DETERMINISTIC
                                                    begin
                                                      select max(id) into p from test;
                                                    end
                                                    //
                                                    
                                                    /* 调用该存储过程,注意:输出参数必须是一个带@符号的变量 */
                                                    call sp2(@pv)//
                                                    
                                                    /* 查询刚刚在存储过程中使用到的变量 */
                                                    select @pv//                                                    
                                                    
                                                    /******************** 带输入和输出参数的存储过程 ***********************/
                                                    
                                                    drop procedure if exists sp3 //
                                                    create procedure sp3(in p1 int , out p2 int)
                                                    begin
                                                    
                                                      if p1 = 1 then
                                                        /* 用@符号加变量名的方式定义一个变量,与declare类似 */
                                                        set @v = 10;
                                                      else
                                                        set @v = 20;
                                                      end if;
                                                      
                                                      /* 语句体内可以执行多条sql,但必须以分号分隔 */
                                                      insert into test(id) values(@v);
                                                      select max(id) into p2 from test;
                                                      
                                                    end
                                                    //
                                                    
                                                    /* 调用该存储过程,注意:输入参数是一个值,而输出参数则必须是一个带@符号的变量 */
                                                    call sp3(1,@ret)//
                                                    
                                                    select @ret//
                                                    
                                                    /***************** 既做输入又做输出参数的存储过程 ***************************************/
                                                    
                                                    drop procedure if exists sp4 //
                                                    create procedure sp4(inout p4 int)
                                                    begin
                                                       if p4 = 4 then
                                                          set @pg = 400;
                                                       else
                                                          set @pg = 500;
                                                       end if; 
                                                       
                                                       select @pg;
                                                       
                                                    end//
                                                    
                                                    call sp4(@pp)//
                                                    
                                                    /* 这里需要先设置一个已赋值的变量,然后再作为参数传入 */
                                                    set @pp = 4//
                                                    call sp4(@pp)//

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

网友评论


评论时间:2024-05-22 00:25:01

所以很多人都会遇到这样的情况:他们往往不会将python作本地服务器地址 为入门课程来学习aaa云主机免费试用 :他们往往不会将python作为入门课程来学习


评论时间:2023-05-05 18:25:02

17.当您看到当前正在运行的程序时,按下右键(Ctrl+B),这时会出现如下界面:18.此时按回车键,云主机都有什么功能 系统会先显示已执行完的操作结果,然后再弹出此功能提示,同时会有一段提示音我的世界全版本服务器怎么弄 界面:18.此时按回车键,系统会先显示已执行完的操作结果,然后再弹出此功能提示,同时会有一段提示音


评论时间:2023-04-17 06:25:02

5、登录到服务器后,会看到云主机应用维护 如下图所示的界面:6现在哪个云主机最便宜 会看到如下图所示的界面:6、接下来就是建立一个新的UDP会话


评论时间:2023-03-16 18:25:02

服务器的类型:按照所能达到的技术要求划分,服务器大致分为三类:硬件式服务器、软件式服务器app部署服务器的流程 、嵌入式系统服务器服务器地址怎么设置 划分,服务器大致分为三类:硬件式服务器、软件式服务器、嵌入式系统服务器


评论时间:2023-01-25 21:25:01

二如何用阿里云虚拟主机搭建网站 是维服务器硬件三大组件 维护和升级服务器的成本


评论时间:2022-12-12 03:25:01

21.安全可便宜云主机代理 靠服务器搭建新手 全可靠


评论时间:2022-08-05 00:25:02

1.台湾虚拟主机服务器云空间 下载本程序并安装美国虚拟主机多少钱一台 安装

最新文章

 2023-12-25 22:44:35   admin

活动发布区版规

 2023-05-27 22:03:52   御风而行

容器、无服务器、虚拟机:安全性差...

 2023-05-27 19:08:41   小绵羊0123

科技巨头布局云端 服务器 网络硬...

 2023-05-27 18:17:46   姐姐的跟屁虫

钉钉因系统访问流量激增,宕机1小...

热门阅读

 2022-07-23 00:34:02   freeatom

常见ftp命令 FTP命令使用详...

 2022-07-21 02:17:02   ares

双硬盘组建Raid0磁盘阵列图文...

 2022-07-20 06:17:02   mankeung123

用友软件客户端连接不上服务器的解...

 2022-07-23 00:51:02   antonfxb

WebService实例

 2022-07-13 05:38:02   苯小孩

开发、运维不可不看的Linux调...

 2022-07-20 18:51:02   nightstone

如何使用Charles抓取Web...

随机文章

 2022-02-21 05:38:02   龍捲風暴

Windows 2003服务器安...

 2022-07-19 02:00:05   zldxgz8888

智慧医疗是什么,未来智慧医疗的新...

 2022-07-19 13:17:03   wcloud

linux系统安装教程

 2022-07-20 05:00:04   dddaaa

linux下如何使用swap分区

 2022-07-20 07:00:04   圣徒

Linux下怎样用fdisk命令...

 2022-07-20 11:17:02   yuhaonan

震惊!好多人都不懂服务器硬件管理...

热评文章

 2022-07-19 20:17:02   dengyu0429

linux vi使用及详细介绍

 2022-07-20 01:00:05   激动的舌头

Linux视频教程:用户管理命令...

 2022-07-21 20:51:02   jessica-an

创建本地FTP站点

 2022-02-07 05:38:03   jasonkidd

WEB服务器配置详解

 2022-07-20 04:51:02   wolfssss

ACL权限-默认与递归(4)

 2022-07-22 15:00:05   淡水珊瑚

Linux下 Samba Ser...
全球云服务器
Catfish(鲶鱼) Blog V 4.7.3