小工具知识网

当前位置: 首页 > 行业知识 > MYSQL--存储过程操作

行业知识

MYSQL--存储过程操作

2026-10-20 17:48:43 来源:互联网转载

一:概念:

��       存储过程实际上对标了JAVA当中的方法,两者是相似的,同时需要注意的一点是,MYSQL仅仅在5.0版本之后才出现这种存储操作的过程;

()

       

优点:

        1.存储过程能够让运行的速度变得更加迅速,仅仅只有首次进行实用的时候需要进行相应的编译,之后再次调用的时候可以直接进行实用

()

        2.存储过程的特点:模块化,代码复用,封装。

二:分类

1.存储过程关键语句

2.变量

3.参数传递

4.分支语句

5.循环语句

6.游标

7.异常处理handler

1.存储过程关键语句:

delimiter (设置启动的标识符);create procedure (存储过程的名称) (参数传递关键词 参数名称 参数类型);begin (检索代码)end (开始设置的标识符);delimiter  ;

2.变量:

1>变量类型:

①:局部变量

②:用户变量

③:参数变量

2>变量介绍:

        ①:局部变量

        范围:顾名思义,局部变量的作用范围比较的小,仅仅只能够作用在存储过程当中的begin--end之间进行实用,一旦超出范围进行调用,检索的时候就无法进行搜索:

        关键语句:

delimiter ..;create procedure ...()begin    declare (局部变量名称) 局部变量的类型 [default ....(初始化)];-- 开始对于局部变量进行赋值    set (局部变量名称) = ...;    (其他检索)end ...;delimiter ;select (局部变量名称); -- 不成功,因为在存储过程begin-end之外运行

        ②用户变量:

        范围:用户变量的作用范围有所增大,可以作用于当前的会话,也就是作用在当前互联网跟mysql的连接ing

        关键语句:

TIPS:-- 1.需要注意的一点是,对于所有的用户变量,都不需要进行声明,赋值即声明-- 2.对于所有的用户变量,都能够在存储过程的外面进行调用delimiter ...;create procedure ...()begin     set (用户变量名称) =  ;end ...;delimiter ;select (用户变量名称); -- 可以搜索到相应的结果

        ③参数变量:

        参数变量又可以分为两个部分,一个是全局变量,一个是会话变量

                1.全局变量:

                        1>范围:

                        对于全局变量的修改会影响到一整个的服务器,并且对于全局变量来说,在MYSQL启动的时候由服务器自动对他们进行默认初始化,这些默认值可以通过my.in这个文件进行修改

                        2>关键语句:

关键使用语句:global1.查看全局变量:select global variables(全局变量名称);2.查看具体的全局变量show global@@.(相应的全局变量名称);3.修改全局变量的值set global (全局变量名称) = new_value;
                      2.会话变量:

                        1>作用范围:

                        对于会话变量,会在每一次建立新的连接的时候,MYSQL会对其进行初始化,将全局变量的值赋值一份用来当作当前新建会话的会话变量

                        2>关键语句:

1.查看局部变量select session variables;2.查看具体的局部变量select @session.(局部变量名称);3.修改局部变量的值set session (局部变量名称) =new_value;

        TIPS: 其实两个变量大体上是一样的,仅仅只有在作用范围上不同,其他的都是一样。因此,如果两个变量都没有修改,那么全局变量跟用户变量的值是一样的,两者并没有区别;

三.参数传递:

        1.类型:参数传递主要分为三个,包括有三个部分分别是in,out,inout

        2.介绍:

                操作:

in:让数据能够进入到存储过程当中进行查询delimiter \;create procedure emp_1(in name varchar(20))begin     select * from emp e where e.name=name;  -- 第二个name代表的是传入的参数的名称end \;delimiter ;out:能够让参数进行返回使用delimiter \;create procedure emp_2(in name varchar(20),out id int)begin     select e.id into id from emp e where e.name=name;  -- 第二个name代表的是传入的参数的名称end \;delimiter ;call emp_2(‘刘一’,@id);select @id;inout:能够对于输入的值进行修改,之后再进行返回delimiter \;create procedure emp_3(inout name varchar(20))begin     select * from emp e where e.name=name;  -- 第二个name代表的是传入的参数的名称end \;delimiter ;set name='王老师';call emp_3(name);

四:分支语句

        1.分类:

         分支语句主要包括有几个部分,if分支,case分支

        2.

                ①:if分支

关键语句:if (条件) then     查询;elseif (条件...) then    查询:else default(设置除了这些之外的其他操作会有什么结果)endif;delimiter \;create procedure pro-1(in single int)begin if single=1 -- 如果输入数字为1那么就显示所有的员工信息;    then select * from emp;eles  select '错误选项';endif;end \;delimiter ;有关if的其他小知识:leava 表示直接离开当前的条件判断  -- 相当于JAVA当中的break;iterate 表示的是跳过当前的判断  -- 类似于在java当中的continue;

②case分支:

类似于JAVA当中的switch语句语法一:case case_value(变量名称)    when when_value then select语句    when when_value then select语句    [else default]end case;语法二:case    when search_condition then select...    when search_condition then select...    [else default]end case;

五:循环语句:

        循环语句主要可以分为三大类:while , loop ,repeat

        循环是一种虽然只会程序当中出现一次,但是能够运行多次的代码

1.while

while循环类似于JAVA当中的while的循环,都是先判断条件,判断正确之后,可以再执行之后的语句,否则结束循环语句:while(condition_value) do循环体end while;加入到存储过程当中:一:在表格当中插入数据,并且为自己控制插入多少条,设置use1存储过程create table emp1(id int primary key,name varchar(20),user varchar(20));delimiter \;create procedure use1(in single int)begin     declare i int default 1;while(i

上一篇:vps怎么搭建服务器哪家不错?

下一篇:蜂窝为什么是六边形?