ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

存储过程

2022-07-15 10:05:10  阅读:159  来源: 互联网

标签:存储 变量 ...... 游标 session var 过程 name


语法:create procedure 存储过程名称([ 参数列表 ]) begin --sql语句 end ;

在命令行中,执行创建存储过程的sql时,需要通过关键字delimiter指定sql语句的结束符。

如用!作为结束符:

 

调用: call 名称 ([ 参数 ]) ;

 

查看: 查询指定数据库的存储过程及状态信息: select * from information_schema.routines where routines_schema = 'xxx' ;

            查寻某个存储过程的定义: show create procedure 存储过程名称 ;

 

删除: drop procedure  [ if exists ] 存储过程名称 ;

 

一、变量

1、系统变量:是MySQL服务器提供,不是用户定义的,属于服务器层面,分为全局变量(GLOBAL)、会话变量(SESSION)。

 

查看系统变量:查看所有系统变量: show [ session | global ] variables ;

                         可以通过like模糊匹配方式直接查找变量:  show [ session | global ] variables like ' ...... ' ;

                         查看指定变量的值: select @@[ session | global ] 系统变量名 ;

 

设置系统变量:set [ session | global ] 系统变量名 = 值 ;  (session是会话级别,不影响其他会话)

                         set @@[ session | global ]系统变量名 = 值 ;

注意:如果没有指定session/global,默认是session,会话变量。

           mysql服务器重新启动之后,所设置的全局参数会失效,要想不失效,可以在/etc/my.cnf中配置。

 

 

2、用户定义变量:是用户根据需要自己定义的变量,用户变量不用提前声明,再用的时候直接用 "@变量名" 使用就可以。其作用域为当前连接。

   赋值:set @var_name = expr [ , @var_name = epr ] ...... ;

             set @var_name := expr [ , @var_name = epr ] ...... ;

             select @var_name := expr [ , @var_name = epr ] ...... ;

             select 字段名 into @var_name from 表名 ;

   使用:select @var_name ;

注意:用户定义的变量无需对其进行声明或初始化,只不过获取到的值为NULL。

 

 

3、局部变量:是根据需要定义的在局部生效的变量,访问之前,需要declare声明,可用作存储过程内的局部变量和参数,局部变量的范围是在其内声明的begin...end块。

   声明: declare 变量名 变量类型 [ default ...... ] ;

变量类型就是数据库字段类型: int、bigint、char、varchar、date、time等。

   赋值:set 变量名 = 值 ;

              set 变量名 := 值 ;

              select 字段名 int 变量名 from 表名 ...... ;

 

 

二、if判断

语法: if  条件1 then

                    ......

            elseif 条件2 then          --可选

                    ......

            else                            --可选

                    ......

            else if ;

 

 

三、参数

in 该参数作为输入,也就是需要调用时传入值  。默认。

out 该参数作为输出,也就是该参数可以作为返回值。

inout 既可以作为输入参数,也可以作为输出参数。

用法: 存储过程名称([ in/out/inout 参数名 参数类型 ])

 

 

四、游标cursor

用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、open、fetch、close。

声明游标:declare 游标名称 cursor for 查询语句;

 

打开游标:open 游标名称 ;

 

获取游标记录: fetch 游标名称 into 变量 [ , 变量 ] ;

 

关闭游标:close 游标名称 ;

 

标签:存储,变量,......,游标,session,var,过程,name
来源: https://www.cnblogs.com/xiao-wang-tong-xue/p/16480203.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有