博主信息
Sky
博文
291
粉丝
0
评论
0
访问量
6759
积分:0
P豆:617

数据库--存储过程详解

2021年10月21日 19:06:22阅读数:16博客 / Sky

存储过程简介

 存储过程(Stored Procedure)是数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。

存储过程分类

1系统存储过程
  以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。
2本地存储过程
  用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,这跟各种编程语言里用户自己写的函数非常类似。我们一般所说的存储过程就是指本地存储过程。今天我们重点介绍本地存储过程,其他存储过程了解即可。
3临时存储过程
分为两种存储过程:一是本地临时存储过程,以“#”开头,这样的存储过程就是存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;  二是全局临时存储过程,以“##”开头,这样的存储过程就是存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
4远程存储过程
  在SQL Server2005中,远程存储过程(Remote Stored Procedures)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。
5扩展存储过程
  扩展存储过程(Extended Stored Procedures)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。

创建存储过程的基本代码结构:

create procedure Procedure_Name //Procedure_Name为存储过程(不能以阿拉伯数字开头),在一个数据库中触发器名是唯一的。
@Param1 int ,@Param2 int//@Param1和  @Param2为存储过程的参数,DataType为参数类型,多个参数采用“,”隔开

AS//存储uguocheng要执行的操作

BEGIN
    --begin跟end组成,可以不写,如果执行sql语句较为麻烦,则使用BEGIN END会使得代码更加整齐,容易理解
END
GO //操作完成
exec Procedure_Name[采纳数名] //调用存储过程

存储过程优缺点总结:

优点
  1.存储过程只在创造时进行编译,以后每次执行二手手机交易存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
  2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
  3.存储过程可以重复使用,可减少数据库开发人员的工作量(复用性高,面向对象的编程思想)
  4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
缺点
  1.调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
  2.移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
  3.重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
  4.如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。


版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • oracle:一组为了完成特定功能的SQL语句集,经编译后中。
    本栏目讲和函有多种调用方法。必须使用call语句调用,并且相关,如果要执行其他中的,需要指定名称。有需要的朋友可以看看。
    简单地说,就是一条或者多条SQL语句的组合,可视为批文件,但是其作用又不仅限于批处理。本栏目MySQL创建序的
    下面由thinkphp教栏目给大家介绍ThinkPHP操作之集、分布式,希望对需要的朋友有所帮助!
    中的作用:1、可接受参、输出参、返回单个或多个结果集及返回值;2、运行比较稳定,不会有太多的错误;3、主要是在服务器上运行,减少对客户机的压力。
    这篇文章主要介绍了MySQL及常用函代码析,感兴趣可以参考下。
    oracle是:首先配置需要连接的;然后打开【PL/SQL】工具;接着在SQL输入界面输入需需要创建的;最后测试编写的即可。
    mysql是在大型系统中,一组为了完成特定功能的SQL 语句集,中,经第一次编译后再次调用不需要再次编译,用户通指定的名字并给出参来执行它。
    mysql从5.0版开始支持。MySQL5.0版本以前并不支持,这使MySQL在应用上大打折扣。
    技术的根本目标是要的“共享问题”。
    mysql:首先操作语言SQL语句在执行的时候需要要先编译;然后执行,而是一组为了完成特定功能的SQL语句集,经编译后中,用户通指定的名字并给定参来调用执行它
    在oracle中,是为了完成特定功能的SQL语句集,编译后中,用户通指定名字并给出参来执行它;语法格式为“create or replace procedure
    MongoDB是一个基于分布式文件。由C++语言编写。旨在为WEB应用提供可扩展的高性能决方案;redis栏目将细介绍。
    mysql:首先在test的【Stored Procedures】菜单中点击右键【Create Stored Procedures】;然后在创建界面,输入相关代码;最后点击【Apply
    和函都是事先经编译并中的一组sql语句的集合。使用的优点有:①提高代码重用性 ②减少编译与连接次 ③提高效率。mysql栏目介绍和函,并附带相关练习题。
    在mysql中,都是中定义的一些SQL语句的集合。其中,可以通return语句返回函值,主要用于计算并返回一个值;而没有直接返回值,主要用于执行操作。
    的联系与区别:1、就是的仓也是的只不量更大;2、是为捕获而设计,是为分析而设计。
    恢复的基本技术是:1、;2、登记日志文件。恢复中采用的基本技术。转即DBA定期将整个复制到磁带或另一个磁盘上保起来的
    在mysql中,是一组为了完成特定功能的SQL语句集合。
    visual foxpro文件是管理对象的系统文件。