1.存储过程( )是一组用于完成特定功能的SQL语句,经过编译后存储在数据库中。
2、存储过程是数据库中的一个重要对象,用户通过指定存储过程的名称并给出参数(如果存储过程有参数)来执行存储过程。
3、存储过程是通过流程控制和SQL语句编写的程序,该程序经过编译和优化后存储在数据库服务器中。
4. 存储过程可以由应用程序通过单个调用来执行,并允许用户声明变量。
5、同时存储过程可以接收和输出参数,返回执行存储过程的状态值,还可以嵌套。
2.存储过程的优点
1.增强了SQL语句的功能和灵活性
2.无需重复建立一系列处理步骤,确保数据完整性
3、减少网络流量。客户端只需要传递存储过程名和相关参数即可调用存储过程。相比于传输SQL语句,数据量自然要少很多。
4、增强了使用的安全性。通过存储过程,没有权限的用户也可以间接访问受控的数据库,从而保证了数据的安全。
5、可以实现集中控制,当规则发生变化时,只需要修改存储过程即可。
3.存储过程的缺点
1.调试不太方便。
2.您可能没有创建存储过程的权限。
3.重新编译问题。
4.可移植性问题。
变量
1、用户变量:以“@”开头,形式为“@变量名”。用户变量与MySQL客户端绑定,设置的变量只对当前用户使用的客户端有效。
2、全局变量:定义后以如下两种形式出现:set 变量名 或 set @@.变量名.show; 对所有客户端有效。只有超级权限的人才能设置全局变量。
3. 会话变量:只对连接的客户端有效,一旦客户端失去连接,该变量将失效。显示;
4.局部变量:作用域在begin和end语句块之间。
4.1 该块中设置的变量语句专门用于定义局部变量。 (8,2)[MySQL数据类型,如:int、float、date、()]9.95;
4.2 变量赋值:SET 变量名=表达式值[,=…],设置=1.2或2.3到@x中;
5.MySQL 存储过程
1.基本语法:过程名([过程参数[,…]])[特性…]过程体;先来看基本例子
第一个:
第二种:
注意:
1).这里要注意的是//和;;是分隔符,因为MySQL默认使用“;”作为分隔符。如果我们不声明分隔符,编译器会把存储过程当成SQL语句,存储过程的编译过程就会报错。所以必须提前用关键字声明当前段分隔符,这样MySQL才会把“;”当成存储过程中的代码。
2).存储过程根据需要可以有输入、输出、输入输出参数,这里有个输出参数s,是int类型,如果有多个参数,用“,”隔开。
3).流程主体的开始和结束分别用begin和emd来标记。
2.调用存储过程的基本语法:call()
3、参数:MySQL存储过程的参数是在存储过程定义时使用的,参数类型有IN、OUT、INOUT三种,格式如下:
([[in |out |inout ] 参数名称 数据类型 ...])
in 输入参数:表示调用存储过程时必须指定该参数的值,在存储过程中修改该参数的值时无法返回,为默认值
out 输出参数:该值可以在存储过程内部改变,并可以返回
inout输入输出参数:调用时指定,可改变并返回
3.1in参数示例:
3.2out参数创建示例
3. 参数创建示例
3.4 存储过程中的 IF 语句 (if then then else end if)
3.5 存储过程中的 case when
3.6 存储过程中的 While do ... end while 语句
3.7 存储过程中的 ...until end 语句
这个循环的作用和前面的WHILE循环一样,只不过它在执行完之后(直到i>=5)检查循环条件是否满足,而WHILE在执行之前进行检查(直到i
但是请注意,在 i>=5 之后不要添加分号。如果这样做,将提示语法错误。
3.8 存储过程中的 loop...end 循环语句
同样的循环控制语句,用LOOP写起来比用while和IF...END要复杂一些,在循环内部增加IF语句,在IF语句中添加LEAVE语句,LEAVE语句表示离开循环,LEAVE的格式为:LEAVE循环标签。
4.游标的使用:定义游标、打开游标、使用游标、关闭游标示例
5.MySQL存储过程的查询
5.1.查看某个数据库下的存储过程
来自 mysql.proc 的名称,其中 db='数据库名称';
或者
ma.where = '数据库名称';
或者
显示其中db ='数据库名称';
5.2.查看存储过程的详细信息
显示数据库.存储过程名称;
6.MySQL存储过程的修改
ALTER :更改操作员创建的预先指定的存储过程。它不会影响依赖的存储过程或存储函数。
7.删除存储过程
drop //注释函数名
来源:
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。