数据库第三部分.

合集下载

数据库习题答案

数据库习题答案

《数据库习题答案》来自五星文库点这里,有很多篇《数据库习题答案》在线阅读本文:数据库习题答案导读:第三章习题,1.关系数据库设计理论,数据依赖范式和关系模式的规范化设计方法,其中数据依赖起着核心的作用,2.关系数据库中的关系模式至少要满足第一范式,如果每个属性值都是不可再分的最小数据单位,(2)试分析模式R的数据冗余问题,关系R中的C属性会存在在数据冗余,相应地原来存储在一张二维表内的数据就要分散存储到多张二维表中,第四章习题,A删除基本表B修改基本表中的数据,A数据项B 元组,C表D数据库第三章习题一、单项选择题1.在关系模型R中,函数依赖X→Y的语义是( B )A.在R的某一关系中,若两个元组的X值相等,则Y值也相等B.在R的每一关系中,若两个元组的X值相等,则Y值也相等C.在R的某一关系中,X值应与Y值相等D.在R的每一关系中,X值应与Y值相等2.设学生关系模式为:学生(学号,姓名,年龄,性别,成绩,专业),则该关系模式的主键是( B )A.性别 B.学号C.学号,姓名 D.学号,姓名,性别3.如果X→Y(Y不包含于X,且Y不能决定X)和Y→Z成立,那么X→Z成立。

这条规则称为( B )A.自反律 B.传递律C.伪传递律 D.增广律4.关系模式R?2NF,则R一定是(b )A.1NF B.3NF5.设一关系模式为:运货路径(顾客姓名,顾客地址,商品名,供应商姓名,供应商地址),则该关系模式的主键是( C )A.顾客姓名,供应商姓名,供应商地址 B.顾客姓名,商品名C.顾客姓名,供应商姓名,商品名 D.顾客姓名,顾客地址6.下列有关范式的叙述中正确的是( B )A.如果关系模式R?1NF,且R中主属性完全函数依赖于主键,则R是2NFB.如果关系模式 R?3NF,则R?2NF一定成立C.如果关系模式R?1NF,则只要消除了R中非主属性对主键的传递依赖,则R可转换成2NFD.如果关系模式R?1NF,则只要消除了R中非主属性对主键的部分依赖,则R可转换成3NF7.关系模式学生(学号,课程号,名次),若每一名学生每门课程有一定的名次,每门课程每一名次只有一名学生,则以下叙述中错误的是( B )A.(学号,课程号)和(课程号,名次)都可以作为候选键B.只有(学号,课程号)能作为候选键C.该关系模式属于第三范式D.该关系模式属于BCNF8.已知关系模式R(ABCD),F={A→C,B→C,C→D },则以下成立的是( B )A.A→B B.A→DC.AD→BC D.AC→BD9.如果X→Y且Z?U成立,那么XZ→YZ成立,这条规则称为( D )A.自反律 B.传递律`C.伪传递律 D.增广律10.能够消除多值依赖引起的冗余是( D )A.1NF B.2NF二、填空题1.关系数据库设计理论,数据依赖范式和关系模式的规范化设计方法。

数据库(第一范式,第二范式,第三范式)

数据库(第一范式,第二范式,第三范式)
通过拆分【Order】为【Order】(OrderID,OrderDate,CustomerID)和【Customer】(CustomerID,CustomerName,CustomerAddr,CustomerCity)从而达到 3NF。
第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。
范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。下面就简单介绍下这三个范式。
可以把【OrderDetail】表拆分为【OrderDetail】(OrderID,ProductID,Discount,Quantity)和【Product】(ProductID,UnitPrice,ProductName)来消除原订单表中UnitPrice,ProductName多次重复的情况。
其中 OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity 等非主键列都完全依赖于主键(OrderID),所以符合 2NF。不过问题是 CustomerName,CustomerAddr,CustomerCity 直接依赖的是 CustomerID(非主键列),而不是直接依赖于主键,它是通过传递才依赖于主键,所以不符合 3NF。

数据库习题答案-3

数据库习题答案-3

《数据库习题答案》来自五星文库点这里,有很多篇《数据库习题答案》在线阅读本文:数据库习题答案导读:第三章习题,1.关系数据库设计理论,数据依赖范式和关系模式的规范化设计方法,其中数据依赖起着核心的作用,2.关系数据库中的关系模式至少要满足第一范式,如果每个属性值都是不可再分的最小数据单位,(2)试分析模式R的数据冗余问题,关系R中的C属性会存在在数据冗余,相应地原来存储在一张二维表内的数据就要分散存储到多张二维表中,第四章习题,A删除基本表B修改基本表中的数据,A数据项B 元组,C表D数据库第三章习题一、单项选择题1.在关系模型R中,函数依赖X→Y的语义是(B )A.在R的某一关系中,若两个元组的X值相等,则Y值也相等B.在R的每一关系中,若两个元组的X值相等,则Y值也相等C.在R的某一关系中,X值应与Y值相等D.在R的每一关系中,X值应与Y值相等2.设学生关系模式为:学生(学号,姓名,年龄,性别,成绩,专业),则该关系模式的主键是( B )A.性别B.学号C.学号,姓名D.学号,姓名,性别3.如果X→Y(Y不包含于X,且Y不能决定X)和Y→Z成立,那么X→Z成立。

这条规则称为( B )A.自反律B.传递律C.伪传递律D.增广律4.关系模式R2NF,则R一定是(b )A.1NF B.3NFC.BCNF D.4NF5.设一关系模式为:运货路径(顾客姓名,顾客地址,商品名,供应商姓名,供应商地址),则该关系模式的主键是( C )A.顾客姓名,供应商姓名,供应商地址B.顾客姓名,商品名C.顾客姓名,供应商姓名,商品名D.顾客姓名,顾客地址6.下列有关范式的叙述中正确的是(B )A.如果关系模式R1NF,且R中主属性完全函数依赖于主键,则R是2NFB.如果关系模式R3NF,则R2NF一定成立C.如果关系模式R1NF,则只要消除了R中非主属性对主键的传递依赖,则R可转换成2NFD.如果关系模式R1NF,则只要消除了R中非主属性对主键的部分依赖,则R可转换成3NF7.关系模式学生(学号,课程号,名次),若每一名学生每门课程有一定的名次,每门课程每一名次只有一名学生,则以下叙述中错误的是( B )A.(学号,课程号)和(课程号,名次)都可以作为候选键B.只有(学号,课程号)能作为候选键C.该关系模式属于第三范式D.该关系模式属于BCNF8.已知关系模式R(ABCD),F={A→C,B→C,C→D },则以下成立的是( B )A.A→B B.A→DC.AD→BC D.AC→BD9.如果X→Y且ZU成立,那么XZ→YZ成立,这条规则称为(D )A.自反律B.传递律`C.伪传递律D.增广律10.能够消除多值依赖引起的冗余是( D )A.1NF B.2NFC.3NF D.4NF二、填空题1.关系数据库设计理论,数据依赖范式和关系模式的规范化设计方法。

Active Directory管理和构架-第3部分(AD数据库的维护与操作主机角色)

Active Directory管理和构架-第3部分(AD数据库的维护与操作主机角色)

PDC Emulator 仿真) (PDC仿真) 仿真
Internet 时间服务器
PDC Emulator
PDC Emulator 域控制器
Pre-Windows 2000客户端 Pre 客户端
Windows NT BDC
Windows 2000客户端 客户端
时间服务器
查看服务器所使用的时间服务器 net time /querysntp (simple network time protocol) 设置服务器所使用的时间服务器 net time /setsntp:服务器名 手动同步时间 W32tm /resync
Infrastructure Master(结构主机) (结构主机)
组嵌套
Group Membership List GUID SID New DN
移动 Infrastructure Master
结构主机
在任何时候, 在任何时候,每个域中只能有一个域控制器作为结 构主机。 构主机。结构主机负责更新从它所在的域中的对象 到其他域中对象的引用。 到其他域中对象的引用。结构主机将其数据与全局 编录的数据进行比较。 编录的数据进行比较。全局编录通过复制操作定期 接受所有域中对象的更新, 接受所有域中对象的更新,从而使全局编录的数据 始终保持最新。如果结构主机发现数据过时, 始终保持最新。如果结构主机发现数据过时,则它 从全局编录申请更新的数据。 从全局编录申请更新的数据。结构主机然后将这些 更新的数据复制到域中的其他域控制器。 更新的数据复制到域中的其他域控制器。
初始化事 务
写入事务 缓冲
写于数据 库文件
写入事务 日志文件 Ntds.dit EDB.log
维护活动目录数据库简介

oracle数据库菜鸟教程

oracle数据库菜鸟教程

oracle数据库菜鸟教程Oracle数据库是一种关系型数据库管理系统,被广泛应用于企业级数据管理和处理领域。

对于初学者而言,了解Oracle数据库以及如何使用它可能会感到有些困惑。

因此,本文将为初学者提供一个简明扼要的Oracle数据库菜鸟教程,旨在帮助他们快速入门。

第一部分:Oracle数据库概述首先,让我们来了解一下Oracle数据库的基本概念。

Oracle数据库是一种关系数据库管理系统(RDBMS),它基于集中式数据模型,其中数据存储在多个表中,并通过关系连接进行检索和操作。

Oracle数据库具有高度的可扩展性、可靠性和安全性,并可适用于各种规模的应用程序。

Oracle数据库使用结构化查询语言(SQL)作为其主要查询和操纵语言。

SQL是一种标准化的语言,用于在关系数据库中完成各种操作,包括数据检索、插入、更新和删除。

Oracle数据库还提供了一个图形用户界面(GUI)工具,称为Oracle SQL开发人员。

该工具可用于编写、执行SQL语句以及管理数据库对象,如表、视图、索引等。

第二部分:Oracle数据库安装和配置在使用Oracle数据库之前,首先需要安装和配置它。

下面是一些简单的步骤,可以帮助您完成这个过程:1. 下载Oracle数据库软件:您可以从Oracle官方网站上下载适合您操作系统的Oracle数据库软件。

2. 安装Oracle数据库软件:打开下载的软件包,并按照向导中的说明进行安装。

在安装过程中,您需要选择一些配置选项,如数据库实例名称、监听器端口等。

3. 创建Oracle数据库实例:在安装完成后,您需要创建一个数据库实例来存储和管理您的数据。

通过运行配置助手或使用命令行实用程序可以进行此操作。

4. 配置网络连接:如果您希望从远程计算机连接到Oracle数据库,需要配置网络连接设置。

这包括设置监听器以侦听来自客户端的连接请求。

5. 测试连接:最后,您可以使用Oracle SQL开发人员或其他SQL客户端工具来测试您的数据库连接是否正常工作。

数据库第一范式第二范式第三范式的定义

数据库第一范式第二范式第三范式的定义

数据库范式的定义随着信息化时代的到来,数据库管理系统已经成为了各行各业必不可少的信息管理工具。

数据库范式作为数据库设计的重要原则,对于数据库的数据结构和数据存储有着重要的指导作用。

在数据库设计中,了解数据库范式的定义和特点对于设计高效、稳定的数据库结构至关重要。

本文将介绍数据库的第一范式、第二范式和第三范式的定义和特点。

一、数据库的第一范式(1NF)1.第一范式的定义数据库的第一范式是指在数据库表中的所有字段都是不可再分的基本数据类型(例如整数、浮点数、字符等)。

也就是说,数据库表中的每个字段都不可再分,且每个字段都具有唯一的属性。

2.第一范式的特点(1)每个字段都是原子的在第一范式中,每个字段都应该是不可再分的最小数据单元,不能再分解成更小的数据单元。

在一个学生信息表中,学生的尊称字段应该是不可再分的数据类型,不能再分解成姓和名两个字段。

(2)字段具有唯一性在第一范式中,每个字段都具有唯一的属性,不会出现两个字段具有相同属性值的情况。

在一个订单表中,订单编号字段应该是唯一的,不会存在相同的订单编号。

二、数据库的第二范式(2NF)1.第二范式的定义数据库的第二范式是建立在第一范式的基础上的,要求数据库表中的所有非主键字段必须完全依赖于全部主键而非部分主键。

也就是说,数据库表中的每个非主键字段都必须和全部主键(而非部分主键)相关,不能只依赖于部分主键。

2.第二范式的特点(1)非主键字段完全依赖于主键在第二范式中,每个非主键字段都必须完全依赖于全部主键,不能只依赖于部分主键。

在一个订单明细表中,商品名称字段应该和订单号、商品编号相关,而不是只和订单号相关。

(2)主键具有唯一性在第二范式中,主键字段必须具有唯一性,不能出现相同的主键值。

这样才能确保非主键字段完全依赖于主键。

三、数据库的第三范式(3NF)1.第三范式的定义数据库的第三范式是建立在第二范式的基础上的,要求数据库表中的所有字段必须直接依赖于主键,而不能依赖于其他非主键字段。

DB11_T306_3-2005水利工程数据库表结构第3部分_水库

DB11_T306_3-2005水利工程数据库表结构第3部分_水库

D811/ T 306.3- 2005
表32 中继站信息表 ..… …
16
表33 遥测站信息表 ..… …
16
表34 水库防汛物资表 … …
16
表 35 水库数据库数据字典表
17
DB11/T 306.3- 2005
前 曰 . . 昌. .
2005-06-28
பைடு நூலகம்
2005-08-01实
北 京 市 质 量 技 术 监 督 局 发布
目次
范围..… 。·… 规范性引用文件 数据库的表 .… 数据库表结构 二 数据字典 … …
表1 水库数据库的表 二。..............… … 表 2 水库一般信息表 ..................… … 表 3 水库流域自然经济基本情况表 ......… … 表 4 水库地区自然地理信息表 .… … ,..… … 表 5 水库入库河流表 ..................… … 表 6 水库出库河流表 ..................… … 表 7 水库设计参数表 ..................… … 表 8 水库淹没损失及工程占地表 ........… … 表 9 水库设计效益指标表 ..............… … 表 10 水库大坝参数表 .................… … 表 11 水库输、泄水建筑物参数表 .......… … 表 12 水库水位、面积、库容、泄量关系表 ..… 表 13 水库输、泄水建筑物单孔水位、泄量关系表 表 14 水电站基本参数表 .......… … 、,,.,… 表 15 建筑物监测基本情况表 ..........… … 表 16 水库泥沙监测数据表 .............… … 表 17 水库管理范围、保护范围表 .......… … 表 18 水库大坝管理维修工程量表 .......… … 表 19 输、泄水建筑物管理维修工程量表 .… … 表 20 水库供电、通信设施、设备表 .....… … 表 21 水库林地、绿地、房屋表 ,.......… … 表22 水库大坝安全鉴定记录表 。........… … 表 23 水库钢闸门和启闭机安全检测记录表 ..… 表 24 水库运行历史记录表 .............… … 表 25 水库出险信息表 .....… … ,二,..… … 表 26 水库治理工程记录表 .............… … 表 27 水库参数变更记录表 .............… … 表28 水库洪水计算成果表 .............… … 表29 水库防洪调度表 .................… … 表 30 水库汛期运用主要指标表 ,........… … 表31 水库自动测报系统表 .............… …

数据库期末考试试题及答案

数据库期末考试试题及答案

数据库期末考试试题及答案第一部分:选择题(共20题,每题2分,共40分)1. 数据库是用来存储和管理什么类型的数据?a) 文件数据b) 网络数据c) 结构化数据d) 非结构化数据答案:c) 结构化数据2. 数据库系统的基本组成部分包括以下哪几个方面?a) 数据库管理系统(DBMS)b) 数据库应用程序c) 数据库模型d) 数据库管理员答案:a) 数据库管理系统(DBMS),b) 数据库应用程序,c) 数据库模型3. 下面哪个是关系数据库模型的特点?a) 数据以文件形式存储b) 数据以表格形式存储c) 数据以树形结构存储d) 数据以图形结构存储答案:b) 数据以表格形式存储4. 数据库的完整性约束包括以下几种类型?a) 实体完整性b) 参照完整性c) 域完整性d) 属性完整性答案:a) 实体完整性,b) 参照完整性,c) 域完整性,d) 属性完整性5. 数据库事务的ACID特性包括以下哪几个方面?a) 原子性b) 一致性c) 隔离性d) 持久性答案:a) 原子性,b) 一致性,c) 隔离性,d) 持久性6. 关系数据库中,外键用来表示什么类型的关系?a) 一对一关系b) 一对多关系c) 多对多关系d) 多层次关系答案:b) 一对多关系7. 下面哪个是数据库查询语言?a) Javab) C++c) SQLd) HTML答案:c) SQL8. 在数据库中,一个事务的隔离级别有哪几种选择?a) READ COMMITTEDb) REPEATABLE READc) SERIALIZABLEd) READ UNCOMMITTED答案:a) READ COMMITTED,b) REPEATABLE READ,c) SERIALIZABLE,d) READ UNCOMMITTED9. 数据库索引的作用是什么?a) 提高数据访问的速度b) 减少数据存储的空间c) 保证数据的一致性d) 控制数据的权限答案:a) 提高数据访问的速度10. 数据库范式用来做什么?a) 优化数据库查询b) 规范数据库模型c) 压缩数据库存储d) 加密数据库数据答案:b) 规范数据库模型11. 数据库触发器用来做什么?a) 检查数据的有效性b) 定期备份数据库c) 自动执行特定操作d) 创建数据库索引答案:c) 自动执行特定操作12. 数据库备份的作用是什么?a) 保护数据免受损失b) 提高数据库查询速度c) 减少数据存储空间d) 控制数据的权限答案:a) 保护数据免受损失13. 数据库连接是指什么?a) 数据库之间的关系b) 数据库中的数据关系c) 应用程序访问数据库的接口d) 数据库中的表之间的关系答案:c) 应用程序访问数据库的接口14. 数据库主键的作用是什么?a) 提高数据查询速度b) 控制数据的权限c) 唯一标识一条记录d) 加密数据库数据答案:c) 唯一标识一条记录15. 数据库视图是什么?a) 物理存储的数据b) 存储过程c) 虚拟表d) 数据库备份文件答案:c) 虚拟表16. 数据库设计的范式分为几个级别?a) 1NF, 2NF, 3NF, BCNFb) 1NF, 2NF, 3NF, 4NFc) 1NF, 2NF, 3NFd) 1NF, 2NF, 3NF, 5NF答案:b) 1NF, 2NF, 3NF, 4NF17. 数据库连接的类型包括以下哪几种?a) 内连接b) 外连接c) 自连接d) 所有答案都正确答案:d) 所有答案都正确18. 数据库中的事务是?a) 一条SQL语句b) 一组SQL语句c) 一个数据库操作d) 一个用户操作答案:b) 一组SQL语句19. 数据库管理系统(DBMS)的作用是什么?a) 存储和管理数据b) 控制和管理数据库访问c) 进行数据库备份和恢复d) 所有答案都正确答案:d) 所有答案都正确20. 数据库中的事务日志是用来做什么?a) 记录数据库的结构b) 记录数据库的访问权限c) 记录数据库操作的序列d) 记录数据库查询结果答案:c) 记录数据库操作的序列第二部分:填空题(共10题,每题2分,共20分)1. 触发器是通过在数据库中定义______,在特定的数据更新、插入、删除等操作发生时被自动执行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告课程名称数据库技术实践实验项目索引、存储过程和触发器、函数和游标实验仪器SQL Server 2008系别____计算机科学与技术系 _专业____计算机科学与技术____班级/学号___xxxxxxxxxxxxxxxxxxxxxxxx学生姓名_____xxxxxxxxxxx实验日期___2xxxxxxxxxx成绩_______________________指导教师___ 梁琦 _______ _______一.内容说明1.索引涉及索引类型,与不建立索引形成对比,可以提高执行效率2.存储过程存储过程是SQL语言在应用程序和数据库之间的主要编程接口,其存在形式有两种,一是在客户端存储代码,另一种是将SQL语言存储在数据库服务器端,由应用程序调用这些语言。

存储过程可以:接受输入参数并以输出参数的形式将多个数值返回、包含执行数据库的语句、将查询语句执行结果返回到客户端,其好处有,允许模块化程序设计、改善性能、减少网络流量、可作为安全机制使用。

3.触发器是有一段由对数据的更改操作引发的自动执行的代码,通常用于保证业务规则和数据完整性,用户可以编程的方法来实现复杂的处理逻辑和业务规则,增强了完整性约束的功能。

4.用户定义函数可以扩展数据操作的功能,期中包括,变量函数和表值函数,标量函数返回单个数据值,表值函数返回一个表,表值函数又分为内联表值函数和语句表值函数。

5.游标游标提供对结果集中的每一行或一部分行进行单独的处理,这在select无法实现的,其具有如下特点:允许定位结构集中的特定行、允许从结果集的当前位臵检索一行或多行、支持对结果集中当前行的数据进行修改、为由其他用户对显示在结果集中的数据所做的更改提供不同级别的可见性支持。

二. 索引本章上机练习均利用MySimpleDB数据库实现。

写出实现创建满足如下要求的索引的SQL语句,并执行这些语句。

1.请为下列查询设计一个最合适的索引,并查看建立索引前后该语句的执行计划,比较执行效率。

SELECT FirstName,LastName, EmailAddress,PhoneFROM Person.ContactWHERE Phone BETWEEN '300' AND '350'CREATE NONCLUSTERED INDEX IX_Person_ContactON Person.Contact(Phone)INCLUDE(FirstName,LastName,EmailAddress);建立索引之前:建立索引后:2.Production.ProductReview 表包含的列有:ProductID(int)、ReviewerName(nvarchar(50) )和 Comments(nvarchar (3850))。

假设经常执行下列形式的查询,请为该类查询创建合适的索引,以最大程度地提高查询效率。

SELECT Comments,ReviewerNameFROM Production.ProductReviewWHERE ProductID >= 937 and ReviewerName like '[a-d]%'; create index pidx on Production.ProductReview(ProductID) include(Comments,ReviewerName)WHERE ProductID>=937建立索引前:建立索引后:3.在Person.Address表上创建具有一个键列(PostalCode)和四个非键列(AddressLine1、AddressLine2、City、StateProvinceID)的包含列索引。

查看索引建立前后下列查询语句的执行计划,观察索引对效率的提高情况。

SELECT AddressLine1, AddressLine2, City, StateProvinceID, PostalCodeFROM Person.AddressWHERE PostalCode BETWEEN N'94000' and N'95999'; CREATE NONCLUSTERED INDEX IX_Address_PostalCodeON Person.Address(PostalCode)INCLUDE(AddressLine1,AddressLine2,City,StateProvinceID);索引使该查询速度变快了建立索引前:建立索引后:4.设经常需要执行下列类型的查询,以统计2003年某一段时间各产品的销售总量。

SELECT ProductID, SUM(sod.OrderQty) AS QtySoldFROM Sales.SalesOrderHeader sohJOIN Sales.SalesOrderDetail sodON soh.SalesOrderID = sod.SalesOrderIDWHERE soh.OrderDate >= '2003-08-02'AND soh.OrderDate < '2003-08-31'GROUP BY sod.ProductID为尽可能提高该类查询的执行效率,请分别为Sales.SalesOrderHeader 和Sales.SalesOrderDetail表建立合适的索引,并简单说明理由。

查看索引建立前后上述查询语句的执行计划,观察索引对该查询的效率提高情况。

索引使该查询速度变快了三.存储过程和触发器如无特别说明,以下各题均利用第6章建立的Students数据库以及Student、Course和SC表实现。

1.创建满足下述要求的存储过程,并查看存储过程的执行结果。

(1)查询每个学生的修课总学分,要求列出学生学号及总学分。

CREATE PROCEDURE SELECT_STUDENTASSELECT Sno,sum(Credit)as总学分FROM sc join course c on o=oGroup by SnoEXEC SELECT_STUDENT(2)查询学生的学号、姓名、修的课程号、课程名、课程学分,将学生所在系作为输入参数,默认值为“计算机系”。

执行此存储过程,并分别指定一些不同的输入参数值,查看执行结果。

CREATE PROC information@dept CHAR(20)='计算机系'ASSELECT sc$.sno,sname,sc$.cno,cname,credit FROM student$s inner join sc$ONs.sno=sc$.sno inner join course$c ON o=sc$.cno WHERE dept=@deptEXEC information'信息管理系'EXEC SELECT_STUDENT1'通信工程系',null(3)查询指定系的男生人数,其中系为输入参数,人数为输出参数。

CREATE PROCEDURE SELECT_STUDENT2@t_Dept nvarchar(20),@total_man int OUTPUTASSELECT@total_man=COUNT(*)FROM studentWHERE Dept=@t_Dept AND Sex='男'PRINT@total_manDECLARE@RE_man int--声明变量EXEC SELECT_STUDENT2'计算机系',@RE_man OUTPUT--PRINT @RE_man(4)查询指定学生(姓名)在指定学期的选课门数和考试平均成绩,要求姓名和学期为输入参数,选课门数和平均成绩用输出参数返回,平均成绩保留到小时点后2位。

create procedure ti_4@name char(10),@semes int,@countCno int output,@avgG numeric(4,2)outputasselect@countCno=COUNT(*),@avgG=avg(Grade*1.00)fromSC join Course c on o=ojoin Student s on s.Sno=SC.Snowhere Semester=@semesand Sname=@namegroup by odeclare@c int,@a numeric(4,2)exec ti_4"李勇", 2,@c output,@a outputprint@cprint@a(5)查询指定学生(学号)的选课门数。

如果指定学生不存在,则返回代码1;如果指定的学生没有选课,则返回代码2;如果指定学生有选课,则返回代码0,并用输出参数返回该学生的选课门数。

create procedure ti_5@sno char(7),@Count int outputasif exists(select*from Student where Sno=@sno)beginif exists(select*from sc where sno=@sno)beginselect@Count=count(Cno)from Student left join sc on Student.Sno=sc.Snowhere student.Sno=@snoreturn 0endelsereturn 2endelsereturn 1(6)删除指定学生(学号)的修课记录,如果指定的学生不存在,则显示提示信息“没有指定学生”;如果指定的学生没有选课,则显示提示信息“该学生没有选课”。

学号为输入参数。

create procedure ti_6@sno char(7)asif@sno is not null and exists(select*from Studentwhere Sno=@sno)beginif exists(select*from SC where Sno=@sno)begindelete from SC where Sno=@snoendelseprint'该学生没有选课'endelseprint'没有指定学生'(7)修改指定课程的开课学期。

输入参数为:课程号和修改后的开课学期。

create procedure ti_7@cno char(6),@sem intasupdate Course setSemester=@semwhere Cno=@cno(8)在Course表中插入一行数据,课程号、课程名、学分、开课学期均为输入参数。

相关文档
最新文档