实验8:游标和存储过程

【实验目的】

1、了解游标、存储过程的作用

2、熟悉游标和存储过程的特点

3、掌握游标的使用步骤和存储过程的创建和管理

实验设备及器材

1、硬件:PC机;

2、软件:(1)Windows7; (2)Microsoft SQL Server 2012

【主要内容】

游标的使用步骤;当前游标集的修改;存储过程的创建和管理。

实验内容及要求/【实验步骤及结果】

下面所有的操作在“学生管理数据库”中进行。(附加数据库,T-SQL语句)

一、存储过程操作

1.设计简单存储过程AVG_GRADE,求出计算机原理这门课程的平均成绩;并执行验证。

USE 学生管理数据库

GO

CREATE PROCEDURE AVG_GRADE

AS

SELECT 成绩信息表.课程号,Round (AVG(成绩信息表.成绩),1) 

AS '平均成绩'

FROM 学生信息表 join 成绩信息表 ON 学生信息表.学号=成绩信息表.学号 join 课程信息表 ON 课程信息表.课程号=成绩信息表.课程号 and 课程信息表.课程名='计算机原理'

GROUP BY  成绩信息表.课程号

EXEC  AVG_GRADE

2.设计存储过程S_C_SC,求出某课程的考试学生姓名和成绩;并执行验证。(请注意:请考虑是否已经存在该存储过程的情况,如果已有该存储过程,请先删除,再创建)

USE 学生管理数据库

GO

IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE NAME='S_C_SC' AND TYPE='P')

  DROP PROCEDURE S_C_SC

GO

CREATE PROCEDURE S_C_SC

  @course varchar(50)

AS

  SELECT 课程信息表.课程名,学生信息表.姓名,成绩信息表.成绩

  FROM 学生信息表 JOIN 成绩信息表  ON 学生信息表.学号=成绩信息表.学号

       JOIN 课程信息表  ON 成绩信息表.课程号=课程信息表.课程号 AND 课程名=@course

GO

EXEC S_C_SC '计算机原理'

  1. 修改2建立的存储过程,求出某课程的考试人数和平均分;并执行验证。

USE 学生管理数据库

GO

ALTER PROCEDURE S_C_SC

  @course varchar(50)

AS

  SELECT AVG(成绩信息表.成绩) AS 平均分,COUNT( @course) AS 人数

  FROM 课程信息表  JOIN 成绩信息表  ON 课程信息表.课程号=成绩信息表.课程号 AND 课程名=@course

GO

EXEC S_C_SC '计算机原理'

4.建立存储过程SNAME_S,查询出所有姓名中有军字的同学的学号、姓名、性别和专业;并执行验证。

USE 学生管理数据库

GO

CREATE PROCEDURE SNAME_S

@course varchar(50)

AS

  SELECT 学生信息表.学号,学生信息表.姓名,学生信息表.性别,学生信息表.专业

  FROM 学生信息表

  WHERE 学生信息表.姓名 like @course

GO 

EXEC SNAME_S '%军%';

5.建立存储过程I_II,利用输出参数计算阶乘;并执行验证。

USE 学生管理数据库

GO

CREATE PROCEDURE I_II

  @SUM_I INT,

  @SUM_II FLOAT OUTPUT

AS

  DECLARE @X int,@Y float

  SET @X=1

  SET @Y=1

  WHILE @X<=@SUM_I

  BEGIN

    SET @Y=@Y*@X

    SET @X=@X+1

  END

  SET  @SUM_II=@Y

GO

DECLARE @OUTPUT FLOAT

EXEC I_II 5,@OUTPUT OUTPUT

PRINT STR(@OUTPUT)

二、游标操作

1.使用游标逐行提取学生信息表的记录。

USE 学生管理数据库

GO

DECLARE SUM_I CURSOR

FOR 

  SELECT * FROM 学生信息表

OPEN SUM_I

FETCH NEXT FROM SUM_I

WHILE @@FETCH_STATUS=0

    FETCH NEXT FROM SUM_I

CLOSE SUM_I

DEALLOCATE SUM_I

  1. 使用游标更改学生信息表的第2行的姓名,姓名随意改;并查询表验证。

USE 学生管理数据库

GO

DECLARE SUM_I SCROLL CURSOR

FOR 

  SELECT * FROM 学生信息表

OPEN SUM_I

FETCH ABSOLUTE 2 FROM SUM_I

UPDATE 学生信息表

SET 姓名='刘雄狄'

WHERE CURRENT OF SUM_I

CLOSE SUM_I

DEALLOCATE SUM_I

GO

SELECT * FROM 学生信息表

3. 创建一个课程信息表的临时表,删除该表的第3行记录;并查询表验证。

USE 学生管理数据库

GO

IF OBJECT_ID('tempdb..#课程临时表') is not null 

  DROP TABLE #课程临时表

SELECT * INTO #课程临时表 FROM 课程信息表

SELECT * FROM #课程临时表

SELECT * FROM 课程信息表

GO

DECLARE SUM_I INSENSITIVE SCROLL CURSOR

FOR 

  SELECT 课程号 FROM 课程信息表

OPEN SUM_I

FETCH ABSOLUTE 3 FROM SUM_I

DECLARE @course varchar(50)

FETCH ABSOLUTE 3 FROM SUM_I INTO @course

PRINT @course

DELETE FROM #课程临时表

WHERE 课程号=@course

CLOSE SUM_I

DEALLOCATE SUM_I

GO

SELECT * FROM #课程临时表

SELECT * FROM 课程信息表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/269541.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML---列表.表格.媒体元素

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.列表 无序列表 HTML中的无序列表&#xff08;Unordered List&#xff09;用于显示一组项目&#xff0c;每个项目之前没有特定的顺序或编号。无序列表使用<ul>标签来定义&#xff0c;每…

zookeeper高级应用原理

文章目录 分布式锁分布式锁-读写锁分布式锁-Curator实现ZK集群管理 zookeeper 集群zookeeper 集群节点个数配置zookeeper 选举ZAB协议zookeeper 选举zookeeper 集群数据读写 分布式锁 分布式锁&#xff1a;在分布式环境下&#xff0c;保护跨进程、跨主机、跨网络的共享资源&am…

STM32读取EEPROM存储芯片AT24C512故障然后排坑记录

背景&#xff1a; 有一个项目用到STM32F091芯片去读取 AT24C512C-SSHD EEPROM 芯片&#xff0c;我直接移植了之前项目的IIC库&#xff0c;结果程序运行后&#xff0c;读不出EEPROM里面的数据。 摘要&#xff1a; 本文主要介绍一个基于STM32F091芯片和AT24C512C-SSHD EEPROM芯片…

12V,大电流,短gnd,短电源保护芯片,应用于小机器人,电子锁,玩具,红外开关等产品中,可替代ti系列产品的选型分析

12V H 桥驱动芯片&#xff0c;电压范围在0-15(v)之间 最大持续电流可达1.5(A)。接口控制IN1/IN2&#xff0c;可应用于小机器人&#xff0c;电子锁&#xff0c;表类开关&#xff0c;红外开关等产品中&#xff0c;具有12V,大电流&#xff0c;短gnd&#xff0c;短电源保护等特点

蚂蚁SEO的百度蜘蛛池有哪些优势

一、介绍 SEO是搜索引擎优化&#xff08;Search Engine Optimization&#xff09;的缩写&#xff0c;是一种通过优化网站结构、内容和链接等元素&#xff0c;提高网站在搜索引擎中的排名&#xff0c;从而增加网站流量和吸引更多潜在客户的方法。SEO已成为现代网站管理的重要策…

2. 如何通过公网IP端口映射访问到设备的vmware虚拟机的ubuntu服务器

文章目录 1. 主机设备是Windows 11系统2. 安装vmware虚拟机3. 创建ubuntu虚拟机&#xff08;据说CentOS 7 明年就不维护了&#xff0c;就不用这个版本的linux了&#xff09;4. 安装nginx服务:默认端口805. 安装ssh服务:默认端口226. 设置主机 -> ubuntu的端口映射7. 设置路由…

【启扬方案】启扬储能管理平板助力储能电站实现智能且高效化运行

在储能领域&#xff0c;储能电站扮演着重要角色&#xff0c;储能电站技术的应用贯穿于电力系统发电、输电、配电、用电的各个环节。实现电力系统削峰填谷、可再生能源发电波动平滑与跟踪计划处理、高效系统调频&#xff0c;增加供电的可靠性。 但随着储能电⼒系统建设发展得越来…

flink-1.17.2的单节点部署

flink 简介 Apache Flink 是一个开源的流处理和批处理框架&#xff0c;用于大数据处理和分析。它旨在以实时和批处理模式高效处理大量数据。Flink 支持事件时间处理、精确一次语义、有状态计算等关键功能。 以下是与Apache Flink相关的一些主要特性和概念&#xff1a; 流处理…

[NAND Flash 3.2] 3D NAND 工艺与发展前沿

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解NAND Flash》 全文 6200 字&#xff0c;​2023.12.12 更新 1. 导论 1.1 何为 3D NAND? 3D NAND, 也叫做 Sumsung V-NAND, 是一种高密度闪存。 以前&#xff0c;把NAND闪存颗粒&#xff0c;直接…

HTTP深度解析:构建高效与安全网络的关键知识

1. HTTP基础及其组件 我首先想和大家分享的是HTTP的基础知识。HTTP&#xff0c;即超文本传输协议&#xff0c;是互联网上最常用的协议之一。它定义了浏览器和服务器之间数据交换的规则&#xff0c;使得网页内容可以从服务器传输到我们的浏览器上。想象一下&#xff0c;每当你点…

【教程】制作 iOS 推送证书

如需向 iOS 设备推送数据&#xff0c;您首先需要在消息推送控制台上配置 iOS 推送证书。iOS 推送证书用于推送通知&#xff0c;本文将介绍消息推送服务支持的证书类型&#xff0c;并引导您制作 iOS 推送证书。 证书类型 消息推送服务仅支持 Apple Push Service 类型的证书。有…

循环神经网络-RNN记忆能力实验 [HBU]

目录 一、循环神经网络 二、循环神经网络的记忆能力实验 三、数据集构建 数据集的构建函数 加载数据并进行数据划分 构造Dataset类 四、模型构建 嵌入层 SRN层 五、模型训练 训练指定长度的数字预测模型 多组训练 损失曲线展示 六、模型评价 参考《神经网络与深度…