当前位置:文档之家› 实 验 五 视图、索引与数据更新

实 验 五 视图、索引与数据更新

实验五视图、索引及数据更新
一、实验目的:
熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,
熟练掌握数据插
入、修改和删除的使用,为后继学习作准备。

二、实验属性(验证性)
1.了解并掌握SQL查询分析器及企业管理器的使用;
2.掌握基本表的定义、删除与修改。

三、实验原理 :SQL语言应用。

四、实验步骤:
(1) 启动Oracle的SQL Developer或者SQL Plus,或者SQL Server 查询分析器;
(2) 对于Oracle11g的SQL Plus需要进行登录,对于Oracle11g的SQL Developer需要进行建立连接。

1 建立索引
建立唯一索引:
例3.1 为学生选课数据库中的Students,Courses,SC三个表建立索引。

其中Students表按Sname升序建唯一索引,Courses表按Cname升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。

查看自己建立的索引:
2 删除索引
例3.2 删除基本表SC上的Rep_SCno索引。

然后查询看索引是否还存在。

理解索引的意义。

例3.3 删除基本表student上的Rep_Sno索引。

3 建立视图
例3.4 建立数学系学生的视图C_Student,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。

例 3.5 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图Student_CR。

例 3.6定义一个反映学生出生年份的视图student_birth(sno,sname,s_birth,ssex,sdept)。

视图建立后,使用命令查询自己创建的视图:
4 查询视图
例3.7 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。

例3.8 在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称(Cname)。

例 3.在视图student_birth(sno,sname,s_birth,ssex,sdept)中查询1990年以后出生的学生信息。

5 更新视图
例3.9 将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海”。

例3.10 向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“2002814568”,姓名为“李海”,年龄为20岁。

例3.11 删除数学系学生视图C_Student中学号为“S09”的记录。

Delete From c_student
Where sno='20028145371';
6 删除视图
例3.12 删除视图Student_CR。

7 插入数据
例 3.13 设数据库中已有一个关系History_Student,其关系模式与Students完全一样,试将关系Students中的所有元组插入到关系History_Student中去。

Insert into History_Student
Select * from student;
例3.14 在SC表中插入一条新记录,学号为“200400812145”,选的课程号为“C01123”,成绩为89。

首先在student 表中添加学生200400812145
然后在sc表中添加记录
8 修改数据
例3.14 将学号为“S03”的学生年龄改为22岁,即要修改满足条件的一个元组的属性值。

Update student
Set sage=22 where sno='S03';
例3.15 将所有学生的年龄增加1岁。

即要修改多个元组的值。

例3.16 将数学系所有学生的成绩都加5分。

9 删除数据
例3.17 删除学号为“S04”的学生选修的课号为“C02”的记录。

Delete from sc
Where sno='S04' and cno='C02';
例3.18 删除所有计科系学生的选课记录。

相关主题