关系数据库与SQL语言课后作业v1.doc_第1页
关系数据库与SQL语言课后作业v1.doc_第2页
关系数据库与SQL语言课后作业v1.doc_第3页
关系数据库与SQL语言课后作业v1.doc_第4页
关系数据库与SQL语言课后作业v1.doc_第5页
免费预览已结束,剩余75页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关系数据库与SQL语言课后作业第2课 构造学生信息管理系统数据库 1. 给出下列术语的定义,并加以理解: 函数依赖、完全函数依赖、传递函数依赖、1NF、2NF、3NF。 答: 函数依赖:设R(U)是属性集U上的关系模式,X,Y是U的子集。如果对于R的所有关系r 都存在:对于X的每一个具体值,Y都只有一个具体值与之对应,则称属性Y函数依赖于属性X。或者说,属性X函数决定属性Y,记作XY。完全函数依赖:在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有 X? Y,则称Y完全函数依赖于X,记作XY。传递函数依赖:在关系模式R(U)中,如果XY,YZ,且YX,Y? X,则称Z传递函数依赖于X,记作XY。1NF:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF),记作关系R1NF。2NF:若关系模式R满足第一范式,即R1NF,并且每个非主属性都完全函数依赖于R的码(即不存在部分函数依赖),则R满足第二范式,记为R2NF。3NF:若关系模式R2NF,且它的每一个非主属性都不传递函数依赖于码,则R满足第三范式,记作R3NF。2. 试述数据库设计方法和基本过程。 答: 数据库常用的设计方法有:1)直观设计法(手工试凑法)2)规范设计法,常用的有如下:新奥尔良法基于E-R模型的数据库设计方法。基于3NF的数据库设计方法。基于视图的数据库设计方法3)计算机辅助设计法4)自动化设计法数据库设计的一般过程:需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护。3. 什么是E-R图?构成E-R图的基本要素是什么? 答: E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。 构成E-R图的基本要素是: 矩形。用来表示实体,矩形框内写上实体名。 椭圆。用来表示实体的属性,椭圆框内写上属性名,并用无向线把实体与属性连接起来。 菱形。用来表示实体与实体的联系,菱形框内写上联系名,用无向线把菱形与有关实体连接起来,并在无向线旁标注联系的类型。 无向线。用于实体与属性、实体与联系之间的连接。4. 试述E-R图转换为关系模式的转换规则。 答: 将E-R图转换为关系模型实际上就是将实体、属性和联系转换成关系模式。在转换中要遵循以下原则:1)实体的转换规则将E-R图中的每一个常规实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。2)实体间联系的转换规则一个1:1可以转换为一个独立的关系模式,也可以与任意一端所对应的关系模式合并。如果转换为一个独立的关系模式,则与联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果将联系与任意一端实体所对应的关系模式合并,则需要在被合并的关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体的码。一个1:n联系可以转换为一个独立的关系模式,也可以与n端所对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。如果与n端所对应的关系合并,则在n端实体中增加新属性,新属性由联系对应的1端实体的码和联系自身的属性构成,新增属性后原关系的码不变。一个m:n联系转换为一个关系模式。转换的方法为与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合。5. 现有一个局部应用,包括两个实体:“出版社”和“作者”,这两个实体是多对多的联系,请设计适当的属性,画出E-R图,再将其转换为关系模式。 答: E-R图如下:关系模式:出版社(名称,地址,电话,网址)作者(证件号,名称,性别,年龄)出版(出版社名称,作者证件号)6. 请设计一个图书馆数据库,此数据库中对每个借阅者保存的记录包括:读者号,姓名,地址,性别,年龄,单位。对每本书保存有:书号,书名,作者,出版社。对每本被借出的书保存有读者号、借出日期和应还日期。要求:给出该图书馆数据库的E-R图,再将其转换为关系模式。 答: 关系模式:读者(读者号,姓名,地址,性别,年龄,单位)图书(书号,书名,作者,出版社,读者号,借出日期,应还日期)借阅(读者号,书号,借出日期,应还日期)E-R图如下:7. 图1是一个销售业务管理的E-R图,请把它转换成关系模式。 答: 工厂(厂名,厂长,地址)产品(编号,型号,单价)用户(姓名,地址,电话)工厂产品(厂名,编号)工厂用户(厂名,姓名)产品用户(编号,姓名)8. 现在要建立关于系、学生、班级、学会诸信息的一个关系数据库。规定:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。 描述学生的属性有:学号、姓名、出生日期、系号、班号、宿舍区; 描述班级的属性有:班号、专业名、系号、人数、入校年份; 描述系的属性有:系号、系名、系办地点、人数; 描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。 请写出关系模式。 写出每个关系模式的函数依赖集,指出是否存在传递依赖。在函数依赖的决定因素是多属性的情况下,讨论函数依赖是完全依赖,还是部分函数依赖。 指出各个关系模式的关键字。 答: 关系模式学生(学号,姓名,出生日期,系号,班号,宿舍区)班级(班号,专业名,系号,人数,入校年份)系(系号,系名,系办地点,人数)学会(学会名,成立年份,地点,人数)会员(学号,学会名,入会年份)。写出每个关系模式的函数依赖集,指出是否存在传递依赖。在函数依赖的决定因素是多属性的情况下,讨论函数依赖是完全依赖,还是部分函数依赖。学生:主键:学号;外键:班号,系号。最小函数依赖集:学号姓名,学号出生日期,学号班号,班号系号,系号宿舍区。存在传递函数依赖:学号系号(学号班号,班号系号),学号宿舍区(班号系号,系号宿舍区)。班级:最小函数依赖集:班号专业名,班号系号,班号人数,班号入校年份主键:班号;外键:系号。存在传递函数依赖:班号系号(班号专业名,专业名系号)系:最小函数依赖集:系号系名,系号系办地点,系号人数主键:系号;外键:无不存在传递函数依赖。学会:最小函数依赖集:学会名成立年份,学会名地点,学会名人数主键:学会名;外键:无不存在传递函数依赖。会员:最小函数依赖集:(学号,学会名)入会年份主键:(学号,学会名);外键:学号,学会名。不存在传递函数依赖和部分函数依赖。 指出各个关系模式的关键字学生 主键:学号;外键:班号,系号。班级 主键:班号;外键:系号。系 主键:系号;外键:无。学会 主键:学会名;外键:无会员 主键:(学号,学会名);外键:学号,学会名。9. 设一个仓库管理系统的局部应用有如下三个实体: 仓库:仓库号、仓库名称、地点、面积 职工:职工号、职工姓名、性别、年龄 货物:货物号、货物名、价格 其中,仓库和职工是一对多的关系,仓库和货物是多对多的关系。画出该局部应用的E-R模型,并将其转换为关系模式。 答: 仓库和职工局部E-R图:仓库和货物局部E-R图:关系模式:职工(职工号,仓库号,职工姓名,性别,年龄)仓库(仓库号,仓库名称,地点,面积)货物(货物号,货物名,价格)存储(仓库号,货物号)10. 关系规范化的作用是什么?第一范式至第三范式,每种范式的特点是什么 答: 一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合,这种分解过程叫作关系模式的规范化(Normalization)。规范化的目的就是使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。第一范式要求关系中属性必须是原子项,即不可再分的基本类型,集合、数组和结构不能作为某一属性出现,严禁出现“表中有表”的情况。2NF就是不允许关系模式的属性之间有这样的函数依赖XY,其中X是码的真子集,Y是非主属性。一个关系模式R满足不存在部分函数依赖和传递函数依赖,则R满足3NF。第3课 初识SQL Server1. 安装SQL Server 2000对硬件有什么需求? 答: 计算机的芯片、内存、硬盘空间等配备需要满足最低的硬件配置要求:处理器 Pentium 2 或更高内存 至少64MB,建议128MB 或更多硬盘空间 需要约250MB的程序空间,以及预留200M的数据空间显示器 需要设置成至少800*600模式,才能使用其图形分析工具2. SQL Server 2000提供了哪些主要组件,其功能是什么? 答: 查询分析器:提供图形化的查询分析工具。导入和导出数据:提供SQL Server 与其他数据源之间的数据库服务。客户端网络实用工具:用于管理客户端网络连接配置。联机丛书:为用户提供Microsoft SQL Server 联机文档资料,它具有索引和全文搜索能力,可根据关键字来快速查找用户所需资料。企业管理器:SQL Server 企业管理器,它是一个具有界面的综合管理工具,可完成如下工作:管理SQL Server 服务器和表、视图、存储过程、触发器、索引、规则、默认等数据库对象,以及用户定义数据库类型;管理SQL Server 登陆标识和用户;设置数据库对象的访问权限;管理备份设备和数据库;备份数据库和事务日志、恢复数据库;实现数据转换服务;创建全文索引、数据库图表和数据库维护计划;执行数据库Web 出版和复制操作。事件探查器:SQL Server 事件探查器,它能实时地捕获服务器活动记录,监视SQL Server 所产生的事件,并可将监视结果输出到文件、表或屏幕上。服务管理器:SQL Server 服务管理器,用来启动、暂停、继续和停止MS SQL Server、SQLServerAgent、Microsoft Search等服务。3. 下面的硬件设备,哪一个不是SQL Server 2000系统必备的? A. CPU B. RAM C.显示器 D.打印机 答:D4. SQL Server 2000数据库系统不能运行在哪个平台上? A. Windows 2000 Server B. Windows NT ServerC. Windows 98 D. Windows 2000 Professional答:C5. 企业管理器的用途是什么?使用它可以完成哪些操作? 答: 用途 :SQL Server企业管理器是一个集成化的操作环境,几乎所有的操作都可以在该工具中完成。 操作:创建数据库、执行数据库备份、执行各种向导工具、服务配置、数据复制等。6. 查询分析器可以进行的操作有哪些? 答: 在命令语句编辑窗口中,创建查询和其他SQL脚本,并针对SQL Server 数据库来分析和执行它们,执行结果在结果窗格中以文本或表格形式显示,还允许用户将执行的结果保存到报表文件中或导出到指定文件中;利用模板功能,可以借助预定义脚本来快速创建数据库和数据库对象;利用对象浏览器脚本功能,快速复制现有数据库对象;在参数未知的情况下执行存储过程;调式查询性能问题,包括显示执行计划、显示服务器跟踪、显示客户统计、索引优化向导等;在树型对象浏览窗格中,可以定位数据库对象或查看和使用对象;在“打开表”窗口中,可快速插入、更新或删除表中的行。 7. 可以使用SQL Server提供的哪种工具来执行T-SQL语句? 答: 可以使用SQL Server 查询分析器。8. 使用什么工具可启动SQL Server的服务? 答: 1)利用服务管理器;2)利用DOS命令启动。9. 如何以net命令来启动SQL Server 的服务? 答: 在DOS命令运行方式下输入net start mssqlserver 即可启动。第4课 创建和管理学生信息管理系统数据库 1. SQL Server 系统数据库有哪些,它们各自的功能是什么? 答: 系统数据库有四个,分别是:master ,tempdb ,model ,msdbmaster数据库记录了所有系统信息,所有的注册帐户和密码,所有的系统设置信息。Master数据库还记录了所有用户定义数据库的存储位置和初始化信息。Tempdb数据库记录了所有的临时表格,临时数据和临时创建的存储过程。Model数据库是创建所有用户数据库和tempdb数据库的模板。Msdb数据库供SQL Server代理程序调度警报和作业以及记录操作员时使用。2SQL Server 系统表有何作用? 答:SQL Server2000中的每个数据库都包含系统表,是在创建数据库时自动产生的。这些表用来记录SQL Server组件所需的数据。每个数据库中的系统表,为每个数据库存储数据库级系统信息。SQL Server的操作能否成功,取决于系统表信息的完整性。3什么是SQL Server 系统存储过程?有何作用? 答:系统存储过程是预先经过编译的SQL语句的集合,所有系统存储过程的名字都以sp为前缀,下划线后是这个系统存储过程的功能简介。使用系统存储过程可以方便地查看有关数据库和数据库对象的相关信息。4SQL Server2000的数据库对象有哪些? 答:对象有系统数据库,系统表,系统存储过程,实例数据库。5创建,修改和删除数据库的T-SQL语句是什么? 答:用CREATE DATABASE 语句来创建数据库,用ALLTER DATABASE 语句来修改数据库,用DROP语句删除数据库。6创建一个名为“RSGL”的数据库,数据文件的逻辑文件名为“rsgl_data”,物理文件名为“D:rsgl_data.mdf”,初始容量为1MB,最大容量为20MB,按2MB增长;日志文件的逻辑文件名为“rsgl_log”,物理文件名为“D:rsgl_log.ldf”初始容量为1MB,最大容量为10MB,按2%比例增长。写出T-SQL语句。 答:CREATE DATABASE rsglON( NAME=rsgl_data,FILENAME=d:rsgl_data.mdf,SIZE=1MB,MAXSIZE=20MB,FILEGROWTH=2MB)LOG ON(NAME=rsgl_log,FILENAME=d:rsgl_log.ldf,SIZE=1MB,MAXSIZE=10MB,FILEGROWTH=2%)GO7写出T-SQL语句,完成对RSGL数据库进行如下的操作。 答: 1.将RSGL数据库的初始分配空间1MB,扩充到10MB;ALTER DATABASE RSGLMODIFY FILE(NAME=rsgl_data,SIZE=10MB)GO2.修改RSGL数据库文件的属性参数。将最大大小改为不限制,增长方式改为每次按10%比例增长。ALTER DATABASE RSGLMODIFY FILE(NAME=rsgl_data,MAXSIZE=UNLIMITEDFILEGROWTH=10%)GO3.修改RSGL日志文件的属性参数。将最大大小改为20MB,增长方式改为每次按5MB增长。ALTER DATABASE RSGLMODIFY FILE(NAME=rsgl_log,MAXSIZE=20MB,FILEGROWTH=5MB)GO4.将RSGL数据库的空间压缩至最小容量。USE RSGLGODBCC SHRINKDATABASE(RSGL)5.将RSGL数据库更名为“NEW_RSGL”。EXEC sp_renamedb RSGL, NEW_RSGL6.删除NEW_RSGL数据库。DROP DATABASE NEW_RSGL第5课 创建和管理学生信息管理系统中的表 1什么是表?SQL Server 为列提供了哪些数据类型? 答:表是用来存储数据和操作数据的逻辑结构,关系数据库中的所有数据都表现为表的形式。在创建表之前的重要工作是设计表结构,即确定表的名字、所包含的各个列的列名、数据类型和长度、是否为空值等。SQL Server 为列提供的数据类型有:字节型、数据型、精确数值型、浮点型、货币型、位型、字符型、文本型、日期时间型等。2简要说明空值的概念及其作用? 答:创建表时需要确定该列的取值能否为空值。空值意味着没有值,并不是“空格”或数值为0。允许空值表示该列取值目前是不确定的。3如果创建表时没有指定NULL或NOT NULL,默认用什么? 答:允许列的取值为空或不为空,默认情况为NULL。4INSERT 语句的作用是什么?如果在INSERT 语句中列出了5个列名,需提供几个列值? 答: TSQL 中向表中插入记录的语句是 INSERT。如果在INSERT 语句中列出了5个列名,需提供5个列值。5UPDATE 语句的作用是什么?在使用UPDATE 语句时,带上 WHERE 子句意味着什么? 答: TSQL 中用于修改表记录的语句是UPDATE。WHERE子句意味着指定被修改的记录应满足的条件。当省略该子句时,表明所有的记录都执行 SET 指定的修改。6DELETE 语句的作用是什么?用DELETE 语句能删除表吗? 答:TSQL 中用于删除记录的语句是DELETE。用DELETE 语句不能删除表。7ALTER TABLE 的作用是什么?在表中增加列的子句是什么?删除列的子句是什么?用ALTER TABLE 可更新列名吗?答:T-SQL 中对表进行修改的语句是ALTER TABLE 。在表中增加列的子句是ADD 子句。删除列的子句是DROP 子句。用ALTER TABLE 不可更新列名。8使用企业管理器创建STUMS数据库中的各表。 答:略 9按照题目要求写出下列SQL命令,并在机器上进行测试。 答: 1.创建STUMS数据库的专业表,并将专业代码设为主键。CREATE TABLE 专业表(专业代码 CHAR(4) NOT NULL PRIMARY KEY,专业名称 CHAR(16),系部代码 CHAR(2)2.在专业表中增加一列“培养方向”,CHAR(20)。ALTER TABLE 专业表ADD 培养方向 char(20)GO3.在专业表中插入一条记录,其数据为:0210、轮机工程、02、船舶制造。INSERT 专业表(专业代码, 专业名称, 系部代码, 培养方向)VALUES(0210, 轮机工程, 02, 船舶制造)GO4.修改专业表中的记录,将轮机工程的专业代码改为“0201”、培养方向改为“船舶修理”。UPDATE 专业表SET 专业代码=0201, 培养方向=船舶修理WHERE 专业名称=轮机工程5.删除专业表中的全部记录。DELETE 专业表6.查看专业表的属性。EXEC sp_help 专业表7.删除专业表。DROP TABLE 专业表第6课 创建简单的SELECT查询 1简述SELECT 语句的基本语法格式。 答: SELECT 语句的基本语法格式:SELECT select_list INTO new_table_nameFROM table_sourceWHERE search_conditionsGROUP BY? group_by_expressionHAVING search_conditionsORDER BY order_expression ASC/DESC其中,SELECT 子句用于指定查询结果集中的列。Select_list:为结果集选择的列。用*表示当前表或视图的所有列。INOT子句创建新表并将查询结果插入新表中。new_table_name:为保存查询结果的新表名。FROM子句用于指定查询的数据源。table_source:指定用于查询的表或视图、派生表和联接表等。WHERE子句用于指定查询条件。search_conditions:为条件表达式,可以是关系表达式或逻辑表达式。GROUP BY 子句将查询结果按指定的表达式分组。group_by_expression:是对其执行分组的表达式,group_by_expression也称为分组列。group_by_expression可以是列或引用列的非聚合表达式。HAVING子句指定满足条件的组才予以输出。HAVING通常与GROUP BY 子句一起使用。search_condition:为输出组应满足的条件。ORDER BY指定结果集的排列顺序。order_expression:指定要排序的列。可以将排序列指定为列名或列的别名,也可以指定一个表示该名称或别名在选择列表中所处位置的非负整数。列名和别名可由表名或视图名加以限定。也可指定多个排序列。ASC:指定递增顺序。从最低值到最高值对指定列中的值进行排序。DESC:指定递减顺序。从最高值到最低值对指定列中的值进行排序。2SQL Server 中提供了哪些常用的进行数据统计的聚合函数? 答:函数 功能 含义(返回值) COUNT统计统计满足条件的行数MIN求最小值求某字段值的最小值MAX求最大值求某字段值的最大值AVG求平均值求某数字段值的平均值SUM求总和求某数字字段值的总和STDEV求标准偏差求所有数值的标准偏差STDEVP求标准偏差求所涉及及数值的标准偏差 VAR求标准方差求所有数值的标准方差VARP求标准方差求所涉及数值的标准方差注:字段值为NULL的数据记录不包括在聚合函数的运算中。3在STUMS数据库中,用SQL语句完成下列操作。 答: 1.列出家住南通的学生的姓名和年龄。SELECT 姓名,年龄 FROM 学生基本信息 WHERE 籍贯=南通2.查询不在1990年出生的男生的姓名。SELECT 姓名 FROM学生基本信息 WHERE 性别=男 and YEAR(出生日期) NOT IN (1990)3.列出所有“共产党员”的基本信息。SELECT * FROM 学生基本信息 WHERE 政治面貌=共产党员4.统计“西方经济学”课程的平均分。SELECT AVG(成绩) AS 平均分 FROM 选课WHERE 课程号 IN (SELECT 课程号 FROM 课程 WHERE 课程名=西方经济学)5.计算选修了课程号为“0310”的学生人数。SELECT COUNT(学号) AS 总人数 FROM 选课 WHERE 课程号=03106.列出所有女生信息,并按年龄从小到大排序。SELECT * FROM 学生基本信息 WHERE 性别=女 ORDER BY 出生日期 DESC第7课 查询综合设计 1什么是连接查询?简述交叉连接查询的连接过程及其语法格式。 答: 一个查询同时涉及到两个或两个以上的表,则称之为连接查询。交叉连接又称非限制连接,也叫广义迪卡尔积。二个表的广义笛卡尔积是两表中记录的记录乘积,结果集的列为二个表属性列的和,其连接的结果会产生一些没有意义的记录,并且进行该操作非常耗时。其语法格式为:SELECT column_name FROM table_namel CROSS JOIN table_name2其中,CROSS JOIN 为交叉表连接关键字。2简述外连接查询中有哪几种连接及相应的语法格式。 1)左外连接其语法格式为:SELECT column_nameFROM table_name1 LEFT OUTER JOIN table_name2ON table_namel.column_name=table_name2.column_name其中OUTER 关键字可以省略。2)右外连接其语法格式为:SELECT column_nameFROM table_name1 RIGHT OUTER JION table_name2ON table_name1.column_name=table_name2.column_name其中OUTER 关键字可以省略。3)完全外连接其语法格式为:SELECT? column_nameFROM table_name1 FULLOUTER JOIN table_name2ON table_name1.column_name=table_name2.column_name其中OUTER 关键字可以省略。3什么是子查询?在T-SQL 语言中存在哪几种基本的子查询方式? 答: 括号内的查询语言作为条件嵌入在外WHERE 子句中,我们将括号内的查询语句称为子查询,与之相对的就是父查询或外层查询,即包含子查询语句。基本的子查询方式:1. 带有IN 或NOT IN 的子查询2. 带有比较运算符的子查询3. 带有EXISTS 运算符的子查询4在“stums”数据库中,用T-SQL语句完成下列操作。 1. 采用等值连接的方法,查出每个教师及其系部的详细情况。SELECT 教师表.*, 系部表.* FROM 教师表, 系部表 WHERE 教师表.系部代码=系部表.系部代码2.列出没有选修“西方经济学”课程的学生信息。SELECT *FROM 学生基本信息WHERE 学号 NOT IN( SELECT 学号 FROM 选课 WHERE 课程号=( SELECT 课程号 FROM 课程 WHERE 课程名=西方经济学)3.列出比所有“071071”班的学生年龄都大的学生。SELECT *FROM 学生基本信息WHERE 出生日期ANY( SELECT 出生日期 FROM 学生基本信息 WHERE 班号=071071)4.将所有是“共青团员”的学生记录找出并插入新创建表中。SELECT * INTO 共青团员FROM 学生基本信息WHERE 政治面貌=共青团员第8课 创建学生信息管理系统中的视图 1.简述视图与基本表的区别与联系。 答: 视图是从一个或多个表(或视图)导出的表,在数据库中是作为一个对象来存储的。 视图是数据库系统提供给用户以多种角度观察数据库中数据的重要机制,有时为与视图区别,将视图称为虚拟表,用于创建视图的表称为基本表。 视图的结果集通常不保存在数据库中,数据库中只存储视图的定义,而不存放构成视图的数据内容,这些数据仍然存放在原来的基本表中,只有在引用视图时根据视图的定义去操作与视图相关联的基本表,动态生成视图所需的数据结构。 2.如何创建和使用视图?答: 在SQL Server中,可以使用企业管理器或视图向导创建视图,也可以使用T-SQL的CREATE VIEW语句创建视图。 可以通过SELECT语句使用视图查询信息,可以通过INSERT、UPDATE、DELETE语句使用视图更新基本表中的数据。 3.创建视图哪一个选项将机密语句文本?答: 加密选项为WITH ENCRYPTION,选择此项则在系统表syscommentes中存储CREATE VIEW语句时进行加密。 4.在CREATE VIEW命令中哪个选项将强制所有通过视图更新的数据必须满足SELECT子句中指定的条件?答: 在CREATE VIEW命令中WITH CHECK OPTION选项将强制所有通过视图更新的数据必须满足SELECT子句中指定的条件。 5.查看视图的定义信息,应使用哪一个系统存储过程?答: 使用系统存储过程sp_helptext可查看视图的定义信息。 6.重命名视图应使用哪一个系统存储过程?答: 重命名视图应使用sp_rename系统存储过程。 7.可用什么语句删除视图?创建某视图的基本表被删除了,该视图也一起被删除了? 答: 可以使用DROP语句删除视图。其语法为:DROP VIEW 视图名称 执行此语句后,指定视图的定义将在数据字典中删除。由该视图基本表创建的视图的定义虽然在数据字典中,但该视图已无法使用。 创建某视图的基本表被删除了,该视图将失效,但一般不会被自动删除。 8.写出T-SQL语句,对STUMS数据库进行如下操作: 1.创建一个名为CJ_BK_VIEW的视图,该视图中包含不及格学生的学号、姓名、课程名,成绩和所在的班级名信息。答:CREATE VIEW CJ_BK_VIEW ASSELECT学生基本信息.学号,姓名,课程名,成绩, 班级名称FROM 学生基本信息,选课,课程,班级WHERE学生基本信息.学号=选课.学号 AND选课.课程号=课程.课程号AND 学生基本信息.班号=班级.班号AND 成绩60 2.创建一个名为JS_RK_VIEW的视图,该视图中包含教师编号、姓名、课程名、学时、授课班级和学生数。答:CREATE VIEW JS_RK_VIEW ASSELECT教师. 教师编号,姓名,课程名,学时, 班号,学生数FROM 教师,教师任课,课程,教学计划WHERE教师.教师编号=教师任课.教师编AND教师任课.课程号=课程.课程号AND. 教师任课.课程号=教学计划.课程号 3.通过CJ_BK_VIEW视图查询补考的学生信息。答:SELECT * FROM CJ_BK_VIEW4.通过07_NJ_VIEW视图进行插入、修改和删除,数据由自己拟定。答:INSERT 07_NJ_VIEW(学号,姓名,籍贯)VALUES(071172008,薛云,南京)UPDATE 07_NJ_VIEWSET 姓名=薛玫WHERE姓名=薛云DELETE ?07_NJ_VIEWWHERE姓名=薛玫5.使用系统存储过程sp_depends查看07_NJ_VIEW视图的相关性。答:EXEC sp_depends 07_NJ_VIEW6.使用ALTER VIEW 语句修改视图,使CJ_BK_VIEW为加密视图。答:ALTER VIEW CJ_BK_VIEW ASSELECT学生基本信息.学号,姓名,课程名,成绩, 班级名称FROM 学生基本信息,选课,课程,班级WHERE学生基本信息.学号=选课.学号 AND选课.课程号=课程.课程号AND 学生基本信息.班号=班级.班号干部AND 成绩60 WITH ENCRYPTION7.将07_NJ_VIEW视图重命名为NEW_VIEW。答:sp_rename 07_NJ_VIEW, NEW_VIEW8.删除CJ_BK_VIEW视图。答:DROP VIEW CJ_BK_VIEW第8课 创建学生信息管理系统中的视图 1.简述视图与基本表的区别与联系。 答: 视图是从一个或多个表(或视图)导出的表,在数据库中是作为一个对象来存储的。 视图是数据库系统提供给用户以多种角度观察数据库中数据的重要机制,有时为与视图区别,将视图称为虚拟表,用于创建视图的表称为基本表。 视图的结果集通常不保存在数据库中,数据库中只存储视图的定义,而不存放构成视图的数据内容,这些数据仍然存放在原来的基本表中,只有在引用视图时根据视图的定义去操作与视图相关联的基本表,动态生成视图所需的数据结构。 2.如何创建和使用视图?答: 在SQL Server中,可以使用企业管理器或视图向导创建视图,也可以使用T-SQL的CREATE VIEW语句创建视图。 可以通过SELECT语句使用视图查询信息,可以通过INSERT、UPDATE、DELETE语句使用视图更新基本表中的数据。 3.创建视图哪一个选项将机密语句文本?答: 加密选项为WITH ENCRYPTION,选择此项则在系统表syscommentes中存储CREATE VIEW语句时进行加密。 4.在CREATE VIEW命令中哪个选项将强制所有通过视图更新的数据必须满足SELECT子句中指定的条件?答: 在CREATE VIEW命令中WITH CHECK OPTION选项将强制所有通过视图更新的数据必须满足SELECT子句中指定的条件。 5.查看视图的定义信息,应使用哪一个系统存储过程?答: 使用系统存储过程sp_helptext可查看视图的定义信息。 6.重命名视图应使用哪一个系统存储过程?答: 重命名视图应使用sp_rename系统存储过程。 7.可用什么语句删除视图?创建某视图的基本表被删除了,该视图也一起被删除了? 答: 可以使用DROP语句删除视图。其语法为:DROP VIEW 视图名称 执行此语句后,指定视图的定义将在数据字典中删除。由该视图基本表创建的视图的定义虽然在数据字典中,但该视图已无法使用。 创建某视图的基本表被删除了,该视图将失效,但一般不会被自动删除。 8.写出T-SQL语句,对STUMS数据库进行如下操作: 1.创建一个名为CJ_BK_VIEW的视图,该视图中包含不及格学生的学号、姓名、课程名,成绩和所在的班级名信息。答:CREATE VIEW CJ_BK_VIEW ASSELECT学生基本信息.学号,姓名,课程名,成绩, 班级名称FROM 学生基本信息,选课,课程,班级WHERE学生基本信息.学号=选课.学号 AND选课.课程号=课程.课程号AND 学生基本信息.班号=班级.班号AND 成绩60 2.创建一个名为JS_RK_VIEW的视图,该视图中包含教师编号、姓名、课程名、学时、授课班级和学生数。答:CREATE VIEW JS_RK_VIEW ASSELECT教师. 教师编号,姓名,课程名,学时, 班号,学生数FROM 教师,教师任课,课程,教学计划WHERE教师.教师编号=教师任课.教师编AND教师任课.课程号=课程.课程号AND. 教师任课.课程号=教学计划.课程号 3.通过CJ_BK_VIEW视图查询补考的学生信息。答:SELECT * FROM CJ_BK_VIEW4.通过07_NJ_VIEW视图进行插入、修改和删除,数据由自己拟定。答:INSERT 07_NJ_VIEW(学号,姓名,籍贯)VALUES(071172008,薛云,南京)UPDATE 07_NJ_VIEWSET 姓名=薛玫WHERE姓名=薛云DELETE ?07_NJ_VIEWWHERE姓名=薛玫5.使用系统存储过程sp_depends查看07_NJ_VIEW视图的相关性。答:EXEC sp_depends 07_NJ_VIEW6.使用ALTER VIEW 语句修改视图,使CJ_BK_VIEW为加密视图。答:ALTER VIEW CJ_BK_VIEW ASSELECT学生基本信息.学号,姓名,课程名,成绩, 班级名称FROM 学生基本信息,选课,课程,班级WHERE学生基本信息.学号=选课.学号 AND选课.课程号=课程.课程号AND 学生基本信息.班号=班级.班号干部AND 成绩60 WITH ENCRYPTION7.将07_NJ_VIEW视图重命名为NEW_VIEW。答:sp_rename 07_NJ_VIEW, NEW_VIEW8.删除CJ_BK_VIEW视图。答:DROP VIEW CJ_BK_VIEW第9课 为学生信息管理系统创建存储过程 1.什么是存储过程?使用存储过程有哪些特点? 答: 存储过程是一种数据库对象,通常是把实现某个特定任务的一组预编译的SQL语句创建一个存储过程,以一个存储单元的形式存储在服务器上,供用户反复调用,提高程序的使用效率。 使用存储过程的优点:允许模块化程序设计;允许更快执行;减少网络流量;可作为安全机制使用。 2.试说明存储过程分类的特点。 答: 1)系统存储过程。存储在master数据库中,并以sp_为前缀,许多管理和信息活动可以通过系统存储过程执行。 2)本地存储过程。是用户自行创建的并存储在用户数据库中的存储过程。这类存储过程能根据用户的实际需要完成某以特定的功能。 3)临时存储过程。临时存储过程分为本地临时存储过程和全局临时存储过程。在创建存储过程时。如果过程名的第一个字符取“”,那么创建的就是本地临时存储过程;如果过程名的第一.第二字符都取“”,那么创建的就是全局临时存储过程。临时存储过程存储在tempbd内,它们在连接到SQL Server 以前的版本时很有用。 4)远程存储过程。指非本地服务器上的存储过程,只有在分布式查询中使用此存储过程。 5)扩展存储过程。扩展存储过程是用户使用外部程序语言编写的存储过程。使用时需要先加载到SQL Server系统中,且只能存储在master数据库中,其执行与一般的存储过程完全相同。引入扩展存储过程主要是弥补SQL Server的不足之处,可以按需要大幅扩展其功能。 3.请分别写出用企业管理器和T_SQL语句命令创建存储过程的主要步骤。 答:使用企业管理器 1. 运行企业管理器,展开数据库STUMS,在“存储过程”图标上右击,在弹出的快捷菜单中选择“新建存储过程”命令。 2. 在该窗口中首先输入所有者和存储过程名。 3. 输入实现存储过程功能的语句,单击“检查语法”按钮,进行语法检查。 4. 如果没有任何错误,单击“确定”按钮,将存储过程保存到STUMS数据库中。 5. 双击STUMS数据库中的“存储过程”,用户在右窗格显示的存储过程列表中,就可看到刚创建的存储过程。 使用T_SQL语句: 1)在查询分析器中输入: CREATE PROC procedure_namAS sql_statementn其中,procedure_nam是要创建的存储过程,过程名称必须符合标识符规则,且对于数据库及其所有者必须惟一。sql_statement:是定义存储过程所要完全操作的任意数目和类型的T-SQL语句。 2)进行语法检查,正确无误后,单击执行按钮即可。 4.创建存储过程哪一个选项将加密语句文本?哪一个选项可设置输入参数? 答:创建存储过程的WITH ENCRYPTION选项将加密语句文本。 parameter_name date_type=default 选项可设置输入参数。 5.执行含有参数的存储过程应注意什么? 答: 当存储过程含有多个输入参数时,传递值的顺序必须与存储过程中定义的输入参数的顺序相一致。 使用带有通配符参数的存储过程,可以实现模糊查询。 6.查看存储过程的定义信息,应使用哪一个系统存储过程?查看存储过程的相关性信息,应使用哪一个系统存储过程应注意什么? 答: 可使用sp_helptext可查看存储过程的定义信息;使用sp_depends可查看存储过程的相关性。 7.可用什么语句修改存储过程?可用什么语句删除存储过程? 答: 修改存储过程可以使用ALTER PROCEDURE语句;使用DROP PROCEDURE 语句删除存储过程。 8.在SQL 查询分析器的对象浏览器窗口中可以修改存储过程吗?举例说明操作过程。 答: 在SQL 查询分析器的对象浏览器窗口中可以修改存储过程。 1)打开SQL查询分析器,展开数据库STUMS,展开“存储过程”项目; 2)右击需修改的存储过程如xs_cj-proc,在弹出的快捷菜单中选择“编辑”子菜单,打开编辑器窗口; 3)窗口中呈现ALTER PROCEDURE 命令和待修改的粗出过程源代码,用户可对其进行修改; 1.修改完毕后,单击菜单“查询执行”完成修改。 9.写出T-SQL语句,对STUMS数据库进行如下操作: 2.创建一个名为xs_bk_proc的存储过程,完成不及格学生的学号、姓名、课程名,成绩和班号信息的查询。答:CREATE PROC xs_bk_proc ASSELECT学生基本信息.学号,姓名,课程名,成绩, 班号FROM 学生基本信息,选课,课程WHERE学生基本信息.学号=选课.学号 AND选课.课程号=课程.课程号AND 成绩60 3.在STUMS数据库中,基于班级表创建一个名为BJ_INFO_PROC的存储过程,根据班号查询班主任、班长和教室位置信息。答:CREATE PROC BJ_INFO_PROC BH CHAR(6)AS SELECT班主任,班长,教室FROM 学生基本信息,选课,课程WHERE班号=BH4.创建一个名为xs_tj_proc的存储过程,实现按性别统计学生数。答:CREATE PROC xs_tj_proc XB CHAR(2)AS SELECT COUNT(*) 学生数FROM 学生基本信息WHERE 性别=XB GROUP BY 性别5.调用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论