广东海洋大学数据库实验三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 索引和视图
一、 实验目的
1. 掌握利用SSMS 和T —SQL 语句创建和删除索引的两种方法。
2. 掌握利用SSMS 和T —SQL 语句创建、查询、更新及删除视图的方法。
0到100;
2.索引的建立、删除
①用SSMS的方式为Student表按Sno(学号)升序建唯一索引
②用T—SQL语句为Course表按Cno(课程号)升序建唯一索引,
③用T—SQL语句为SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
④能否用T—SQL语句再为表Students的Sname(姓名)和Sno(学号)列上建立一个聚簇索引?
若不能说明原因?
不行。
因为一个表只能建立一个聚簇索引;
⑤用T—SQL语句删除基本表SC上的唯一索引。
3.用T—SQL完成如下视图的建立、查询、修改及删除
1)建立数学系学生的视图C_Student,并要求进行修改和插入操作时仍需保证该视图只有
数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。
2) 用SSMS的方式建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)
的视图Student_CR。
3) 定义一个反映学生出生年份的视图Student_birth(Sno, Sname, Sbirth)。
4)建立先修课程为空的课程视图v_course
5) 建立成绩高于90分的女生成绩视图v_F_grade(包括学号,姓名,课程号及成绩列)
6)建立视图S_AVGAGE(其中包括性别SSEX与平均年龄AVG_AGE两列)用以反映男生、女
生的平均年龄
7)对前面创建的视图S_AVGAGE执行更新操作:
UPDATE S_AVGAGE
SET AVG_AGE = 85
WHERE ssex = '女'
上述语句能否成功执行?为什么?
不能进行。
因为其含有派生域或常量域
8) 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄
(Sage)。
9) 在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称
(Cname)。
10) 将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海”。
11) 向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“S09”,姓名为
“王海”,年龄为20岁。
12) 删除数学系学生视图C_Student中学号为“S09”的记录。
四、思考题
1.在一个表中可以有多个聚簇索引吗?为什么?
答:不可以。
每个表只能建一个聚簇索引。
2.视图有哪些优点?
答:查询简单、安全保护、掩盖复杂性
3.总结创建视图的方法有几种,各种方法实现的步骤,各举一例实现。
答:两种。
(1)SSMS创建
(2)T-SQL语句创建。