河北工业大学数据库实验报告

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

《数据库原理及应用》

实验报告

题目:SQL语言(视图、数据控制、空值和空集的处理)

1.4视图

一实验目的

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

二实验内容

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

·行列子集视图。

· WITH CHECK OPTION的视图。

·基于多个基表的视图。

·带表达式的视图。

·分组视图。

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

产生的影响,包括对修改操作、删除操作、插入操作的影响。

(3)讨论视图的数据更新情况,对子行列视图进行数据更新。

(4)使用DROP语句删除一个视图,由该视图导出的其它视图定义仍

在数据词典中,但已经不能使用,必须显式删除。同样原因,删除基表时,由该基表导出的所有视图定义都必须显式删除。

三实验题目

(1)定义选课信息和课程名称的视图VIEWC

create view VIEWc as

select CHOICES.cid,ame,sid,tid,score

from CHOICES,COURSES where CHOICES.cid=COURSES.cid

(2)定义学生姓名与选课信息的视图VIEWS

create view VIEWS as

select

STUDENTS.sname,CHOICES.cid,CHOICES.sid,CHOICES.tid,choices.

score

from CHOICES,STUDENTS where CHOICES.sid=STUDENTS.sid

(3)定义年级低于1998的学生视图S1(SID,SNAME,GRADE)

drop view s1

create view S1 as

select STUDENTS.sid ,sname,grade from STUDENTS

where grade>1998

(4)查询学生为”uxjof”的学生的选课信息

select*from VIEWS

where sname='uxjof'

(5)查询选修课程”UML”的学生的编号和成绩

select sid,score from VIEWC where cname='UML'

(6)向视图S1插入记录(”60000001,Lily,2001”)

insert into s1values('60000001','Lily',2001)

(7)定义包括更新和插入约束的视图S1,尝试向视图插入记录

(“60000001,Lily,1997”),删除所有年级为1999的学生记录,讨论更新和插入带来的影响。

drop view s1

create view S1as

select STUDENTS.sid,sname,grade from STUDENTS

where grade>1998

with check option

插入记录:

insert into s1

values('60000001','Lily',1997)

出现错误,原因是目标视图指定了WITH CHECK OPTION,而该操作的一个或多个结果行又不符合CHECK OPTION 约束。

delete from s1where grade=1999

命令成功执行。

(8)在视图VIEWS中将姓名为“uxjof”的学生的选课成绩都加上5分

update VIEWS set score=score+5

where sname='uxjof'and score<95

(9)取消以上建立的所有视图

drop view VIEWC

drop view VIEWS

drop view S1

1.5数据控制

一实验目的

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

二实验内容

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

(2)使用WITH GRANT OPTION子句授予用户传播该权限的权利。(3)在授权时发生循环授权,考察DBS能否发现这个错误。如果不

能,结合取消权限操作,查看DBS对循环授权的控制。

(4)使用REVOKE子句收回授权,取消授权的级联反应。

三实验题目

(1)授予所有用户对表STUDENTS的查询权限。

grant select on STUDENTS to public

(2)授予所有用户对表COURSES的查询和更新权限。

grant select,update on courses to public

(3)授予USER1对表TEACHERS的查询,更新工资的权限,且允许

USER1可以传播这些权限。

grant select,update(salary)on teachers to USER1

with grant option

(4)授予USER2对表CHOICES的查询,更新成绩的权限。

grant select,update(score)on choices to USER2

(5)授予USER2对表TEACHERS的除了工资之外的所有信息的查询。

create view TV as

select tid,tname,email from TEACHERS

grant select on TV to USER2

(6)由USER1授予USER2对表TEACHERS的查询权限,和传播此项权限的权利。

以USER1的身份登录数据库

grant select on teachers to user2with grant option (7)由USER2授予USER3对表TEACHERS的查询权限,和传播此项权限的权利。再由USER3授予USER2上述权限,这样的SQL语

句能否得到执行?

相关文档
最新文档