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

实验三 索引和视图


实验三 索引和视图

徐龙琴、刘双印设计制作

实验三
一、 实验目的

索引和视图

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 语句创建和删除索引的两种...
实验3 索引和视图.doc
实验3 索引和视图 - 《数据库原理与应用》实验报告 实验序号:实验 1 学号
实验三:索引和视图的操作().doc
实验三:索引和视图的操作() - 实验三:索引和视图的操作 实验日期:2014 年 5 月 14 日 姓名:李怀彬 一、实验目的 1、掌握使用 SQL 语句创建索引和视图; 2...
实验三 索引和视图.doc
实验三 索引和视图 徐龙琴、刘双印设计制作 实验三一、 实验目的 索引和视图 1
实验三 索引和视图.doc
实验三 索引和视图 - 实验三 索引和视图 一 实验目的 1、 掌握创建视图的 T-SQL 语句的用法 2、 掌握使用 SQL Server Management Studio 创建视图和索引的...
实验三_视图和索引.doc
实验三_视图和索引 - 实验三 视图和索引 一、实验目的 使学生掌握 SQL SERVER 中的视图创建、查看、修改和删除的方法;索引的 创建和删除方法 二、实验内容 在...
实验六:关系图、索引和视图的定义及维护.doc
实验六:关系图、索引和视图的定义及维护 - 实验六:关系图、索引和视图的定义及维护 一、实验目的 1. 掌握创建关系图的方法。 2. 掌握创建、查看和删除索引的...
实验三 索引和视图.pdf
实验三 索引和视图 - 实验三 索引和视图 徐龙琴、刘双印设计制作 实验三 一、 实验目的 索引和视图 1. 掌握利用 SSMS 和 TSQL 语句创建和删除索引的两种...
数据库原理 实验三 数据查询、索引与视图.doc
数据库原理 实验三 数据查询、索引与视图 - 2012 级计算机专业 集美大学计算机工程学院 20013~2014 学年第二学期 《数据库原理》实验报告 题目: 实验三 数据查询...
实验二索引、视图和序列(精).ppt
实验索引视图和序列(精) - 实验索引视图和序列 Oracle数据库技术 实验目的 ? (1)掌握序列的创建、修改和删除。 ? (2)掌握索引的创建、修改和删除。...
实验三_视图和索引.doc
实验三 视图和索引学号:201013418 姓名:杨学成 一、实验目的使学生掌握 SQL SERVER 中的视图创建、查看、修改和删除的方法;索引的 创建和删除方法 二、实验内容在学...
实验三报告.doc
实验三报告 - 信息工程学院实验报告 课程名称: 《数据库原理》 实验项目名称:视图和索引的创建和使用 班级: 姓名: 实验时间: 学号: 成绩: 指导老师(签名): 一...
SQL server实验四 视图和索引.doc
(5) 删除索引 三、实验过程要求个人填写(要求有文字描述和适当的图片辅助说明) 1.1 图形工具创建视图: 1.2 T_SQL 创建视图: 2.1 视图输出: 修改: 修改后...
实验3视图和索引的创建与使用.doc
实验3视图和索引的创建与使用 - 学号: 710301114 辽宁师范大学海华学
SQL Serve实验5_索引和视图_要点.doc
SQL Serve实验5_索引和视图_要点 - 实验5 索引和视图 1.实验目的
实验5 索引和视图.doc
实验5 索引和视图 - 2014/9/6 《MySQL 数据库技术》课程实验系列 实验设计:刘潇 实验 5 索引和视图 一、 实验目的 1. 掌握索引的使用方法 2. 掌握数据完整...
数据库实验3答案...doc
实验要求包括如下方面的内容: 3.1 数据定义 1. 基本表的创建、修改及删除 2. 索引的创建 3. 视图的创建 3.2 数据操作完成各类更新操作包括: 1. 插入数据 2...
实验5 索引和视图.doc
实验5 索引和视图 - 1.实验目的 (1)掌握使用 SQL Server 管理
数据库实验三:创建视图、存储过程和实现数据安全_mysql.pdf
实验主要内容如下: 1.学习创建完整性约束的方法。 2.学习创建视图、存储过程和索引的方法。 3.学习利用用户管理和视图实现数据安全。 4.学习 mysql 数据库的基本...
数据库实验5 索引和视图(答案).doc
数据库技术与应用实验 实验 5 索引和视图 实验 5 索引和视图 学号:18103317 专业:电子信息工程 一、实验内容 1.分别使用 SQL Server 管理平台和 Transact-SQL 语...