mysql存储过程菜鸟教程_菜鸟从零学习数据库(三)——存储
过程
今天继续我们的SQL菜鸟教程,上篇博客说了说触发器(SQL菜鸟⼊门级教程之触发器),今天我们来说说存储过程。其实,触发器也属于存储过程,只不过它⽐较特殊。下⾯切⼊正题,让我带领众菜鸟们⼀起学习⼀下存储过程。
存储过程简介
存储过程(Stored Procedure)是数据库系统中,⼀组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,⽤户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执⾏它。
在数据库系统中,存储过程和触发器具有很重要的作⽤。⽆论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。
存储过程的分类
1系统存储过程
frame属性有哪些以sp_开头,⽤来进⾏系统的各项设定.取得信息.相关管理⼯作。
mysql安装教程菜鸟课程2本地存储过程
⽤户创建的存储过程是由⽤户创建并完成某⼀特定功能的存储过程,这跟各种编程语⾔⾥⽤户⾃⼰写的函数⾮常类似。我们⼀般所说的存储过程就是指本地存储过程。今天我们重点介绍本地存储过程,其他存储过程了解即可。
3临时存储过程
分为两种存储过程:
⼀是本地临时存储过程,以“#”开头,这样的存储过程就是存放在tempdb数据库中的本地临时存储过程,且只有创建它的⽤户才能执⾏它;
⼆是全局临时存储过程,以“##”开头,这样的存储过程就是存储在tempdb数据库中的全局临时存储过程,全局临时存储过程⼀旦创建,以后连接到服务器的任意⽤户都可以执⾏它,⽽且不需要特定的权限。
rank函数的参数是什么4远程存储过程
在SQL Server2005中,远程存储过程(Remote Stored Procedures)是位于远程服务器上的存储过程,通常可以使⽤分布式查询和EXECUTE命令执⾏⼀个远程存储过程。
5扩展存储过程
扩展存储过程(Extended Stored Procedures)是⽤户可以使⽤外部程序语⾔编写的存储过程,⽽且扩展存储过程的名称通常以xp_开头。
创建存储过程的基本代码结构:
企业网站建设实训心得CREATE PROCEDUREProcedure_Name--Procedure_Name为存储过程名(不能以阿拉伯数字开头),在⼀个数据库中触发器名是唯⼀的。名字的长度不能超过个字。PROCEDURE可以简写为PROC。
@Param1 Datatype,@Param2Datatype--@Param1和@Param2为存储过程的参数,Datatype为参数类型,多个参数⽤逗号隔开,最多允许个参数。
AS --存储过程要执⾏的操作
BEGIN
--BEGIN跟END组成⼀个代码块,可以写也可以不写,如果存储过程中执⾏的SQL语句⽐较复杂,⽤BEGIN和END会让代码更加整齐,更容易理解。
END
GO --GO就代表结操作完毕
exec Procedure_Name [参数名] --调⽤存储过程Procedure_Name。
drop procedure Procedure_Name --删除存储过程Procedure_Name,不能在⼀个存储过程中删除另⼀个存储过程,只能调⽤另⼀个存储过程
showprocedure status --显⽰数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等easeljs拖拽
showcreate procedure Procedure_Name --显⽰存储过程Procedure_Name的详细信息
exec sp_helptext Procedure_Name --显⽰你这个Procedure_Name这个对象创建⽂本
优点
1.存储过程只在创造时进⾏编译,以后每次执⾏存储过程都不需再重新编译,⽽⼀般SQL语句每执⾏⼀次就编译⼀次,所以使⽤存储过程可提⾼数据库执⾏速度。
2.当对数据库进⾏复杂操作时(如对多个表进⾏Update,Insert,Query,Delete时),可将此复杂操作⽤存储过程封装起来与数据库提供的事务处理结合⼀起使⽤。
3.存储过程可以重复使⽤,可减少数据库开发⼈员的⼯作量(复⽤性⾼,⾯向对象的编程思想)
4.安全性⾼,可设定只有某些⽤户才具有对指定存储过程的使⽤权
缺点
1.调试⿇烦,但是⽤ PL/SQL Developer 调试很⽅便!弥补这个缺点。
2.移植问题,数据库端代码当然是与数据库相关的。但是如果是做⼯程型项⽬,基本不存在移植问题。
3.重新编译问题,因为后端代码是运⾏前编译的,如果带有引⽤关系的对象发⽣改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运⾏时刻⾃动编译)。
4.如果在⼀个程序系统中⼤量的使⽤存储过程,到程序交付使⽤的时候随着⽤户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果⽤户想维护该系统可以说是很难很难、⽽且代价是空前的,维护起来更⿇烦。
世间所有事物都有两⾯性,没有绝对好的东西,也没有绝对不好的东西。存储过程既有它的优点也有缺点,我们不能盲⽬的完全使⽤存储过程,也不能将其打⼊冷宫不去⽤。根据具体的项⽬,根据实际情况去决定如何使⽤存储过程,最重要的就是不要过度,平衡就好。
具体该怎么权衡,不是我在这⾥说⼀句两句就能解决的,必须亲⾃去实践中体会,慢慢的就能够掌握其中的⽕候。最后祝各位和我⼀样的菜鸟早⽇成为⼤⽜。笨鸟亦可先飞!
>湘西魅力
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论