当前位置:首页 >> 化学 >>

实验三 索引和视图

实验三 索引和视图

徐龙琴、刘双印设计制作

实验三
一、 实验目的

索引和视图

1. 掌握利用 SSMS 和 T—SQL 语句创建和删除索引的两种方法。 2. 掌握利用 SSMS 和 T—SQL 语句创建、查询、更新及删除视图的方法。

二、 实验要求
1. 能认真独立完成实验内容; 2. 实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实 验内容的预习准备工作; 3. 验后做好实验总结,根据实验情况完成实验报告。情况完成总结报告。

三、 实验学时 2 学时 四、 实验内容
1、用 T—SQL 建立一个“学生选课数据库”,在此基础上用 SQL 语句建立该数据库包含的 学生表,课程表,学生选修表: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 其中 Sno 为主键且 Sname 不能为空值,且 取值唯一、Ssex 只能取值男或女、Sage 在 15 到 30 之间: Sno S01 S02 S03 S04 S05 S06 Sname 王建平 刘华 范林军 李伟 黄河 长江 Ssex 男 女 女 男 男 男 Sage 21 19 18 19 18 20 Sdept 自动化 自动化 计算机 数学 数学 数学

create database 选课数据库

use 选课数据库 create table student(sno char(5) primary key, sname char(10) not null unique, ssex char(3) constraint ssex_ch check (ssex in('男',' 女')), sage int not null constraint sage_ch check (sage between 15 and 30), sdept char(10))

实验三 索引和视图

徐龙琴、刘双印设计制作

课程表:Course(Cno,Cname,Cpno,Credeit) 其中 Cno 为主键 Cno C01 C02 C03 C04 C05 C06 C07 Cname 英语 数据结构 数据库 DB_设计 C++ 网络原理 操作系统 Cpno NULL C05 C02 C03 NULL C07 C05 Credit 4 2 2 3 3 3 3

create table course(cno char(5) primary key, cname char(10) not null, cpno char(5), credit int not null) insert into course values('C01','英语',null,4) insert into course values('C02','数据结构','C05',2) insert into course values('C03','数据库','C02',2) insert into course

实验三 索引和视图

徐龙琴、刘双印设计制作

values('C04','DB_设计','C03',3) insert into course values('C05','C++',null,3) insert into course values('C06','网络原理','C07',3) insert into course values('C07','操作系统','C05',3)

学生选修表:SC(Sno,Cno,Grade) 其中 Sno,Cno 为主键同时又为外键、Grade 值在 0 到 100; Sno S01 S01 S02 S02 S02 S03 S03 S04 Cno C01 C03 C01 C02 C03 C01 C02 C03 Grade 92 84 90 94 82 72 90 75

create table sc(sno char(5) not null, cno char(5) not null, grade int constraint grade_ch check(grade between 0 and 100), primary key(sno,cno),

实验三 索引和视图

徐龙琴、刘双印设计制作

constraint fk_sno foreign key (sno) references student(sno), constraint fk_cno foreign key (cno) references course(cno)) insert into sc values('S01','C01',92) insert into sc values('S01','C03',84) insert into sc values('S02','C01',90) insert into sc values('S02','C02',94) insert into sc values('S02','C03',82) insert into sc values('S03','C01',72) insert into sc values('S03','C02',90) insert into sc values('S04','C03',75)

2.索引的建立、删除 ①用 SSMS 的方式为 Student 表按 Sno(学号)升序建唯一索引

实验三 索引和视图

徐龙琴、刘双印设计制作

②用 T—SQL 语句为 Course 表按 Cno(课程号)升序建唯一索引,

create unique index course_cno on course(cno asc)

③用 T—SQL 语句为 SC 表按 Sno(学号)升序和 Cno(课程号)号降序建唯一索引。

create unique index sc_sno_cno on sc(sno asc,cno desc)

④能否用 T—SQL 语句再为表 Students 的 Sname(姓名)和 Sno(学号)列上建立一个聚簇索引?

实验三 索引和视图

徐龙琴、刘双印设计制作

若不能说明原因? 不能,因为 student 表中主键 sno 唯一,则已默认存在聚集索引,而每个表只能有一个聚集 索引,故不能再建立另一个聚集索引。 ⑤用 T—SQL 语句删除基本表 SC 上的唯一索引。

drop index sc_sno_cno on sc

3.用 T—SQL 完成如下视图的建立、查询、修改及删除 1)建立数学系学生的视图 C_Student,并要求进行修改和插入操作时仍需保证该视图只有 数学系的学生,视图的属性名为 Sno,Sname,Sage,Sdept。

create view c_student as select sno,sname,sage,sdept from student where sdept='数学' with check option

2) 用 SSMS 的方式建立学生的学号(Sno)、 姓名(Sname)、 选修课程名(Cname)及成绩(Grade) 的视图 Student_CR。

实验三 索引和视图

徐龙琴、刘双印设计制作

3) 定义一个反映学生出生年份的视图 Student_birth(Sno, Sname, Sbirth)。

create view student_birth as select sno,sname,2013-sage as 'sbirth' from student go

4)建立先修课程为空的课程视图 v_course

create view v_course as select cno,cname from course where cpno is null go

实验三 索引和视图

徐龙琴、刘双印设计制作

5) 建立成绩高于 90 分的女生成绩视图 v_F_grade(包括学号,姓名,课程号及成绩列)

create view v_f_grade as select student.sno,sname,course.cno,grade from student,sc,course where student.sno=sc.sno and sc.cno=course.cno and ssex='女' and grade>90 go

6)建立视图 S_AVGAGE(其中包括性别 SSEX 与平均年龄 AVG_AGE 两列)用以反映男生、女 生的平均年龄

create view s_avgage as select ssex,avg(sage) as 'avg_age' from student group by ssex

实验三 索引和视图

徐龙琴、刘双印设计制作

7)对前面创建的视图 S_AVGAGE 执行更新操作: UPDATE S_AVGAGE SET AVG_AGE = 85 WHERE ssex = '女' 上述语句能否成功执行?为什么?

对视图或函数'S_AVGAGE' 的更新或插入失败,因其包含派生域或常量域。
8) 在数学系的学生视图 C_Student 中找出年龄(Sage)小于 20 岁的学生姓名(Sname)和年龄 (Sage)。

select sname,sage from c_student where sage<20

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

select sno,sname,cname from student_cr where grade>85

实验三 索引和视图

徐龙琴、刘双印设计制作

10) 将数学系学生视图 C_Student 中学号为 S05 的学生姓名改为“黄海” 。

update c_student set sname='黄海' where sno='S05'

11) 向数学系学生视图 C_Student 中插入一个新的学生记录,其中学号为“S09” ,姓名为 “王海” ,年龄为 20 岁。

insert into c_student(sno,sname,sage,sdept) values('S09','王海',20,'数学')

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

delete from c_student where sno='S09'

实验三 索引和视图

徐龙琴、刘双印设计制作

四、思考题 1. 在一个表中可以有多个聚簇索引吗?为什么? 聚簇索引也叫簇类索引,是一种对磁盘上实际数据重新组织以按指定的一个或多个列的 值排序。由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎 总是比使用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当 该表 120%的附加空间,以存放该表的副本和索引中间页。 2. 视图有哪些优点? 使用视图的优点如下: 查询的简单性:将复杂的查询(如多表的连接查询)定义为视图,保留了用户所关心的数 据内容,剔除了那些不必要的冗余数据,使其数据环境更加容易控制,从而达到简化用 户浏览和操作的目的; 安全保护:数据库管理员可以在限制表用户的基础上进一步限制视图用户,可以为各种 不同的用户授予或撤销在视图上的操作权限,这样,视图用户只能查询或修改他们各自 所能见到的数据,从而保证数据库中数据的安全; 掩盖数据库的复杂性:使用视图可以把数据库的设计和用户的使用屏蔽开来,当基本表 发生更改或重新组合时,只需要修改视图的定义即可。用户还能够通过视图获得和数据 库中的表一致的数据。 3. 总结创建视图的方法有几种,各种方法实现的步骤,各举一例实现。

两种。一种是 SSMS 创建,另一种是 T—SQL 语句创建。


相关文章:
实验三 索引和视图.doc
实验三 索引和视图 - 实验三 索引和视图 徐龙琴、刘双印设计制作 实验三 一、 实验目的 索引和视图 1. 掌握利用 SSMS 和 TSQL 语句创建和删除索引的两种...
实验三_视图和索引.doc
实验三_视图和索引 - 实验三 视图和索引 一、实验目的 使学生掌握 SQL SERVER 中的视图创建、查看、修改和删除的方法;索引的 创建和删除方法 二、实验内容 在...
实验3 索引和视图的创建、修改和删除.doc
实验三 1 实验目的 索引和视图的创建、修改和删除 1. 熟悉数据库的交互式 S
熊健羲 实验三 数据操作语句、索引和视图.doc
熊健羲 实验三 数据操作语句、索引和视图_计算机软件及应用_IT/计算机_专业资料。实验三一、 实验目的 数据操作语句、索引和视图 掌握数据操作语句、索引和视图的...
实验5 索引和视图.doc
实验5 索引和视图 - 实验5 一、实验目的 索引和视图 1. 学会使用企业管理
实验三_视图和索引.doc
实验三 视图和索引学号:201013418 姓名:杨学成 一、实验目的使学生掌握 SQL SERVER 中的视图创建、查看、修改和删除的方法;索引的 创建和删除方法 二、实验内容在学...
索引和视图实验报告.doc
实验时间 2014 年 5 月 29 日 实验名称 索引和视图 实验目的和要求
数据库实验五 索引和视图.doc
数据库实验索引和视图_计算机软件及应用_IT/计算机_专业资料。华中科技大学
视图和索引(数据库实验4).doc
2016-11-13 1 实验目的: 1) 掌握 SQL 进行视图创建的方法; 2) 掌握 SQL 进行视图更新的方法,理解视图更新受限的原因; 3) 掌握 SQL 进行索引创建及删除的...
视图和索引的创建和使用实验报告.doc
信息工程学院实验报告课程名称: 《数据库原理》 实验项目名称:视图和索引的创建和使用 成绩: 指导老师(签名):一、实验目的: (1)掌握创建视图的 SQL 语句的用法...
数据库实验5 索引和视图(答案).doc
数据库技术与应用实验 实验 5 索引和视图 实验 5 索引和视图 学号:18103317 专业:电子信息工程 一、实验内容 1.分别使用 SQL Server 管理平台和 Transact-SQL 语...
实验四 索引和视图参考答案.doc
实验索引和视图参考答案 - 索引 --为表 student 中 SName
实验三 索引和视图.doc
实验三 索引和视图 徐龙琴、刘双印设计制作 实验三一、 实验目的 索引和视图 1
SQL Serve实验5_索引和视图_.doc
实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和T
索引和视图实验.doc
索引和视图实验 - 《索引和视图实验 一、实验目的与要求 1.学会使用 SQL
实验九 视图和索引.doc
实验视图和索引 - 实验视图和索引 一. 实验目的 1.熟悉视图创建、修改、删除操作。 2.熟悉索引创建、删除操作。 二. 实验内容 1. 在 SSMS 中使用向导...
实验5 索引和视图.doc
2014/9/6 《MySQL 数据库技术》课程实验系列 实验 5 索引和视图一、 实验目的 1. 掌握索引的使用方法 2. 掌握数据完整性的实现方法 3. 熟悉视图的概念和作用...
实验五 视图、索引与数据更新.doc
实验视图索引及数据更新一、实验目的: 熟练掌握索引的建立与删除的方法,熟练...5 更新视图3.9 将数学系学生视图 C_Student 中学号为 S05 的学生姓名...
实验五 视图和索引.doc
实验视图和索引 - 实验视图和索引 附加数据库 附加上次实验保存的 student 数据库,注意将自己的数据库文件拷贝到指定目录下 一、 视图 1、 建立 3 号...
索引和视图实验.doc
索引和视图实验 一、实验目的与要求 1.学会使用 SQL Server 管理