SQL Sever数据库存储过程

article/2025/10/3 14:38:36

一、背景介绍

1.遇到存储过程
回顾之前知识,使用在当下(毕业设计)
2.了解周边知识

二、思路&方案

1.了解存储过程定义、语法、种类
2.存储过程有什么优缺点
3。存储过程与触发器和函数的联系

三、过程

1.什么是存储过程?

存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个“execute 存储过程名 参数”命令来调用存储过程。

2.语法

创建存储过程
create proc 存储过程名字
as
语句

修改存储过程
alter proc 存储过程名字
as
语句

卸载存储过程
drop proc 存储过程名字

调用存储过程
exec 存储过程名称

3.存储过程的种类

1 系统存储过程

以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。

2 自定义存储过程(本地存储过程)

以cp_开头,是用户为了完成某一特定功能而创建的存储过程,一般所说的存储过程就是指本地存储过程。

3 临时存储过程

分为两种存储过程:

一是本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;

二是全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。

4 远程存储过程

在SQL Server2005中,远程存储过程(Remote Stored Procedures)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。

5 扩展存储过程

扩展存储过程(Extended Stored Procedures)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。

4.存储过程的优缺点

优点:

1、重复使用:存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

2、减少网络流量:存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

3、安全性:参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

缺点
1:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。

2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。

3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。

5.存储过程和触发器的区别

(1)存储过程是一组已创建并存储在数据库中的SQL语句。所以我们可以一遍又一遍地重用代码。而触发器是一种特殊的不是由用户直接调用存储过程,创建触发器时,会定义在针对特定表或列进行特定类型的数据修改时触发。

(2)用户可以使用Execute或Exec语句来直接调用或执行存储过程,而无法直接调用或执行触发器。触发相关事件时,只会自动执行触发器。

(3)存储过程可以采用输入参数,而触发器中不能将参数作为输入我们不能将参数作为输入传递给触发器。

(4)存储过程可以返回零或n值,触发器无法返回值。

6.在毕业设计中的实现

查询班级雪上选题情况
在这里插入图片描述
查询教师出题情况
在这里插入图片描述

在这里插入图片描述

四.总结

1.这次并使用了存储过程,对之前学习过的数据库的知识进行了回顾
2.为什么会遇到存储过程的问题?
(1)之前学习的基础知识不牢靠
(2)使用实践少,没有结构化
3.知其然,不知其所以然


http://chatgpt.dhexx.cn/article/effsoWia.shtml

相关文章

数据库MySQL —— 存储过程

目录 一、介绍 二、基本语法 三、变量 1. 系统变量 2. 用户自定义变量 3. 局部变量 四、流程控制语句 1. if判断 2. 参数 3. case 4. 循环 4.1 while 4.2 repeat 4.3 loop 五、游标 - cursor 六、条件处理程序 - handler 七、存储函数 一、介绍 存储过…

mysql数据库之存储过程

一、存储过程简介。 存储过程是事先经过编译并存储在数据库中的一段sql语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是也有好处的。 存储过程思想上很简单&…

MySQL数据库存储过程

存储过程相关命令汇总存储过程存储过程优化再说存储过程的输出参数再说WHILE 和 REPEAT循环 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次…

MySQL数据库存储过程讲解与实例

存储过程简介 SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数&#x…

mysql数据库存储过程详解

1.什么是存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存…

MySQL中的存储过程(详细篇)

文章目录 概述优点缺点 MySQL存储过程的定义存储过程的基本语句格式存储过程的使用定义一个存储过程定义一个有参数的存储过程定义一个流程控制语句 IF ELSE定义一个条件控制语句 CASE定义一个循环语句 WHILE定义一个循环语句 REPEAT UNTLL定义一个循环语句 LOOP使用存储过程插…

跨域及cors解决跨域

1.什么是跨域 出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的…

什么是跨域?如何解决跨域?

✨ 目录 🎈 什么是跨域🎈 跨域场景🎈 解决跨域的四种方式 🎈 什么是跨域 域: 是指浏览器不能执行其他网站的脚本跨域: 它是由浏览器的 同源策略 造成的,是浏览器对 JavaScript 实施的安全限制,…

关于跨域后端解决跨域问题

一、为什么会有跨域 出于浏览器的同源策略限制。**同源策略(Sameoriginpolicy)**是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。同源策略会阻止一个域的ja…

什么是跨域?跨域问题怎么解决?

目录 一、什么是跨域? 二、为什么会出现跨域问题? 三、常见的跨域场景 四、跨域解决方法 1、JSONP (1)JSONP原理 (2)JSONP和AJAX对比 (3)JSONP优缺点 (4&#x…

跨域的本质

简介 相信大家在做web系统开发的时候,都遇到过前端页面访问另一个服务器而非本服务器从而遭遇的跨域问题。跨域是个很常见的问题,虽然在web系统中的解决方式很简单,加一段耳熟能详的代码,或者一个注解,或者在某个框架中…

跨域及解决

文章目录 什么是跨域?Origin同源的例子不同源的例子为什么需要跨域?请求跨域了,那么请求到底发出去没有? 如何解决?1.JSONP2.corsa.简单请求b.复杂请求 3.postMessage4.websocket5.nginx6.document.domain Iframe cli…

什么是跨域?以及解决跨域的方法?

【学习什么是跨域,以及如何解决跨域。】 1、什么是跨域?(什么是同源策略?) 跨域: 由于浏览器的同源策略引起的,如果说协议、域名、端口号有任何一个不一样,都会引起跨域 为什么会出…

【跨域】Java后端解决跨域问题

废话不多说,先上完整代码 建corsConfig文件,copy下面内容,放进去 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfigur…

什么是同源策略,什么是跨域,如何解决跨域

1.什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 1995 年引入浏览器,它是浏览器最核心也最基本的安全功能,现在所有支持 JavaScript 的浏览器都会使用这个策略。如果缺少…

前端解决跨域----代理跨域

跨域报错: CORS error 为什么会跨域 ​ 先了解跨域的概念:发送请求的url的协议、域名、端口三者之间任意一个与当前页面的地址不同则视为跨域。 解决跨域 vue.config.js 设置代理跨域 module.exports {devServer: {proxy: {/api: {target: "ht…

什么是跨域问题?跨域解决问题

一.为什么会出现跨域问题? 出于浏览器的同源策略限制.同源策略是一种约定,它是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常的功能可能会受到影响,跨域收是Web是构建在同源策略基础上的,浏览器只是针对同源策略的一种实现,同源策略会阻止一个域的Jav…

什么是跨域及怎么解决跨域问题?

什么是跨域? 这篇博文解释的挺清楚,我直接引用 什么是跨域?怎么解决跨域问题?_L瑜-CSDN博客_跨域是什么意思 跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全…

VUE跨域、常用解决跨域的方法

当我们遇到请求后台接口遇到 Access-Control-Allow-Origin 时,那说明跨域了。 跨域是因为浏览器的同源策略所导致,同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,同源是指&…

什么是跨域?怎么解决跨域问题

文章目录 一、同源策略二、同源策略案例三、什么是跨域四、跨域解决方法1.ajax的jsonp概念核心用法 2.CORS方式3.nginx 转发 一、同源策略 同源策略,是由 Netscape 提出的一个安全策略,它是浏览器最核心也是最基本的安全功能,如果缺少同源策…