77范文网 - 专业文章范例文档资料分享平台

实验1,数据定义(2)

来源:网络收集 时间:2019-03-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

实验4、SQL的视图

4.1 实验目的

熟悉SQL支持的有关视图的操作,能够熟练使用SQL语句来创建需要的视图,对视图进行查询和取消视图。 4.2 实验内容

(1) 定义常见的视图形式,包括:

? 行列子集视图

? WITH CHECK OPTION的视图 ? 基于多个基表的视图 ? 基于视图的视图 ? 带表达式的视图 ? 分组视图

(2) 通过实验考察WITH CHECK OPTION这一语句在视图定义后产生的影

响,包括对修改操作、删除操作、插入操作的影响。 (3) 讨论视图的数据更新情况,对子行列视图进行数据更新。 (4) 使用DROP语句删除一个视图,由该视图导出的其他视图定义仍在数据

字典中,但已不能使用,必须显式删除。同样的原因,删除基表时,由该基表导出的所有视图定义都必须显式删除。 4.3 实验步骤

(1) 创建一个行列子集视图CS_View,给出选课成绩合格的学生的编号、教

师编号、所选课程号和该课程成绩。

(2) 创建基于多个基本表的视图SCT_View,这个视图由学生姓名和他所选

修的课程名及讲授该课程的教师姓名构成。

(3) 创建带表达式的视图EXP_View,由学生姓名及所选课程名和所有课程

成绩都比原来多5分这几个属性组成。

(4) 创建分组视图Group_View,将学生的学号及他的平均成绩定义为一个

视图。

(5) 创建一个基于视图的视图,基于(1)中建立的视图,定义一个包括学

生编号、学生所选课程数目和平均成绩的视图VV_View。 (6) 查询所有选修课程“数据库原理及其应用”的学生姓名。

(7) 插入元组(S52,T02,C02,59)到视图CS_View中。若是在视图的定义中

存在WITH CHECK OPTION字句对插入操作由什么影响。

(8) 将视图CS_View(包括定义WITH CHECK OPTION)中,所有课程编

号为C01的课程的成绩都减去5分。这个操作数据库是否会正确执行,为什么?如果加上5分(原来95分以上的不变)呢?

(9) 在视图CS_View(包括定义WITH CHECK OPTION)删除编号S03学

生的记录,会产生什么结果?

(10) 取消视图SCT_View和视图CS_View

6

实验5、数据控制

5.1 实验目的

熟悉SQL的数据控制功能,能够使用SQL语句来向用户授予和收回权限。 5.2 实验内容

(1) 使用GRANT语句来对用户授权,对单个用户或多个用户授权,或使用保留字PUBLIC对所有用户授权。对不同的操作对象包括数据库、视图、基本表等进行不同权限的授权。

(2) 使用WITH GRANT OPTION字句授予用户传播该权限的权利。

(3) 当在授权时发生循环授权,考察DBS能否发现这个错误。如果不能,结合取消权限操作,查看DBS对循环授权的控制。 (4) 使用REVOKE子句收回授权,取消授权的级联反应。 5.3 实验步骤

用企业管理器在数据库University_Mis中建立三个用户USER1、USER2和USER3,他们在数据库中的角色是PUBLIC。请按以下要求,分别以管理员身份或这三个用户的身份登陆到数据库中,进行操作,并记录操作结果。

(1) 授予所有用户对表Courses的查询权限。以USER1的身份登陆查询分析器,用SQL语言查询Courses和Students表,查询结果如何?

(2) 授予用户USER1对表Students插入和更新的权限,但不授予删除权限,并且授予用户USER1传播这两个权限的权利。以USER?的身。。。 (3) 允许用户USER2在表Reports中插入元组,更新Score列,可以查询除了Sno以外的所有列。以USER?的身。。。

(4) 用户USER1授予用户USER2对表Students插入和更新的权限,并且授予用户USER2传播插入操作的权利。以USER?的身。。。

(5) 收回对用户USER1对表Courses查询权限的授权。以USER?的身。。。 (6) 由上面(2)和(4)的授权,再由用户USER2对用户USER3授予表Students插入和更新的权限,并且授予用户USER3传播插入操作的权力。这时候,如果由USER3对USER1授予表Students的插入和更新权限是否能得到成功?如果能够成功,那么如果有用户USER2取消USER3的权限,对USER1会有什么影响?如果再由DBA取消USER1的权限,对USER2有什么影响?

7

实验6、SQL的空值和空集处理

6.1 实验目的

认识NULL值在数据库中的特殊含义,了解空值和空集对于数据库的数据查询操作,特别是空值在条件表达式中与其他的算术运算符或者逻辑运算符的运算中,空集作为嵌套查询的子查询的返回结果时候的特殊性,能够熟练使用SQL语句来进行与空值,空集相关的操作。

6.2 实验内容

通过实验验证在原理解析中分析过的SQL Server对NULL的处理,包括: ? 在查询的目标表达式中包含空值的运算。 ? 在查询条件中空值与比较运算符的运算结果。

? 使用IS NULL或IS NOT NULL 来判断元组该列是否为空值。 ? 对存在取空值的列按值进行ORDER BY排序。

? 使用保留字DISTINCT对空值的处理,区分数据库的多中取值与现实中的

多种取值的不同。

? 使用 GROUP BY对存在取空值的属性值进行分组。

? 结合分组考察空值对各个集合函数的影响,特别注意对COUNT(*)和

COUNT(列名)的不同影响。

? 考察结果集是空集时,各个集函数的处理情况。

? 验证嵌套查询中返回空集的情况下与各个谓词的运算结果。 ? 进行与空值有关的等值连接运算。 6.3 实验步骤

(1) 查询所有选课记录的成绩并将它换算为五分制(满分为5分,合格为3分),

注意,创建表时允许Score取NULL值。

(2) 通过查询选修编号C07的课程的学生的人数,其中成绩合格的学生人数,

不合格的人数,讨论NULL值的特殊含义。

(3) 通过实验检验在使用ORDER BY进行排序时,取NULL的项是否出现在

结果中?如果有,在什么位置?

(4) 在上面的查询的过程中如果加上保留字DISTINCT会有什么效果呢? (5) 通过实验说明使用分组GROUP BY对取值为NULL的项的处理。

(6) 结合分组,使用集合函数求每个同学的平均分、总的选课记录、最高成绩、

最低成绩和总成绩。

(7) 查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值。 (8) 采用嵌套查询的方式,利用比较运算符和谓词ALL的结合来查询表Courses

中最少的学分。假设数据库中只有一个记录的时候,使用前面的方法会得到什么结果,为什么?

(9) 创建一个学生表S(No,Sno,Sname),教师表T(No,Tno,Tname)

作为实验用的表。其中,No分别是这两个表的主键,其他键允许为空。 (10) 向S插入元组(n1,S01,李迪)、(n2,S02,李岚)、(n3,S05,NULL)、

(n4,S04,关红);

8

(11) 向T插入元组(n1,T09,李迪)、(n2,T08,李兰)、(n3,T01,NULL)、

(n4,T02,NULL)。

(12) 对这两个表作对姓名的等值连接运算,找出既是老师又是学生的人员的学

生编号和教师编号。

9

实验7、实体完整性

7.1 试验目的

学习实体完整性的建立,以及实践违反实体完整性的结果。

7.2 试验内容

(1) 在数据库University_Mis中建立表Stu_Union,进行主键约束,在没有违反

实体完整性的前提下插入并更新一条记录。 (2) 演示违反实体完整性的插入操作。 (3) 演示违反实体完整性的更新操作。

(4) 演示事务的处理,包括事务的建立、处理以及出错时的事务回滚。

(5) 通过建立University_Misarship表,插入数据,演示当与现有的数据环境不

等时,无法建立实体完整性以及参照完整性。 7.3 实验步骤

以系统管理员或sa用户登录进入查询分析器,在查询分析器窗口中输入如下命令,运行并观察和记录结果。

(1) 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Stu_Union(Sno CHAR(8) NOT NULL UNIUE, Sname CHAR(8), Ssex CHAR(1), Sage INT, Sdept CHAR(20), CONSTRAINT PK_Stu_Union PRIMARY KEY(Sno));

INSERT Stu_Union VALUES(‘S01’,’王兵’,’M’,23,’CS’); UPDATE Stu_Union SET Sno=’’ WHERE Sdept=’CS’;

UPDATE Stu_Union SET Sno=’S02’ WHERE Sname=’王兵’; SELECT * FROM Stu_union;

(2) 在查询分析器中输入如下SQL语句:

USE University_Mis

INSERT Stu_Union VALUES (‘S02’,’黄山’,’M’,23,’CS’); (3) 在查询分析器中输入如下SQL语句:

USE University_Mis

UPDATE Stu_Union SET Sno =NULL WHERE Sno=’S02’; (4)

① 在查询分析器中输入如下SQL语句:

USE University_Mis SET XACT_ABORT ON BEGIN TRANSACTION T1

INSERT INTO Stu_union VALUES(‘S09’,’李永’,’M’,25,’EE’); INSERT INTO Stu_union VALUES (‘S03’,’黄浩’,’F’,25,’EE’);

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验1,数据定义(2)在线全文阅读。

实验1,数据定义(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/546237.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: