广东海洋大学_计算机科学与技术_数据库实验3

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

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)

实验名称实验3 索引和视图课程名称数据库系统原理课程号1620072学院(系) 信息学院专业计科班级 1113

学生姓名学号实验地点科技楼实验日期04-26

实验三索引和视图

一、实验目的

1.掌握利用SSMS和T—SQL语句创建和删除索引的两种方法。

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

二、实验要求

1.能认真独立完成实验内容;

2.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;

3.验后做好实验总结,根据实验情况完成实验报告。情况完成总结报告。

三、实验学时

2学时

四、实验内容

1、用T—SQL建立一个“学生选课数据库”,在此基础上用SQL语句建立该数据库包含的学生

表,课程表,学生选修表:

CREATE DATABASE学生选课数据库

ON PRIMARY

(

NAME=Student_dat,

FILENAME='D:\学生选课数据库.mdf',

SIZE=10MB,

MAXSIZE=50MB,

FILEGROWTH=10%

)

LOG ON

(

NAME=Student_log,

FILENAME='D:\学生选课数据库.ldf',

SIZE=5MB,

FILEGROWTH=10%

)

GO

学生表:Student

CREATE TABLE Student(

Sname CHAR(10),

Ssex CHAR(2)CHECK(Ssex='男'OR Ssex='女'),

Sage SMALLINT CHECK(Sage BETWEEN 15 AND 30),

Sdept CHAR(20)

);

INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S01','王建平','男',21,'自动化') INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S02','刘华','女',19,'自动化')

INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S03','范林军','女',18,'计算机') INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S04','李伟','男', 19 ,'数学'); INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S05','黄河','男',18,'计算机')

INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )

VALUES('S06','长江','男', 20 ,'数学');

课程表:Course

CREATE TABLE Course(

Cno CHAR(4)PRIMARY KEY,

Cname CHAR(10)NOT NULL,

Cpno CHAR(4),

Credit INT CHECK(Credit>=0 AND Credit<=100),

Teacher NCHAR(4)

);

INSERT INTO Course ( Cno,Cname,Cpno,Credit )

VALUES('C01','英语',NULL, 4 )

INSERT INTO Course ( Cno,Cname,Cpno,Credit )

VALUES('C02','数据结构','C05',2)

INSERT INTO Course ( Cno,Cname,Cpno,Credit )

VALUES('C03','数据库','C02',2)

INSERT INTO Course ( Cno,Cname,Cpno,Credit )

VALUES('C04','DB_设计','C03',3)

INSERT INTO Course ( Cno,Cname,Cpno,Credit )

VALUES('C05','C++',NULL,3)

INSERT INTO Course ( Cno,Cname,Cpno,Credit )

VALUES('C06','网络原理','C07',3)

INSERT INTO Course ( Cno,Cname,Cpno,Credit )

VALUES('C07','操作系统','C05',3)

学生选修表:SC

CREATE TABLE SC(

Sno char(10)FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(4)FOREIGN KEY REFERENCES Course(Cno), Grade INT CHECK( Grade>=0 AND Grade<=100 ),

);

INSERT INTO SC ( Sno,Cno,Grade)

VALUES('S01','C01',92)

INSERT INTO SC ( Sno,Cno,Grade)

VALUES('S01','C03',84)

INSERT INTO SC ( Sno,Cno,Grade)

VALUES('S02','C01',90)

INSERT INTO SC ( Sno,Cno,Grade)

VALUES('S02','C02',94)

INSERT INTO SC ( Sno,Cno,Grade)

VALUES('S02','C03',82)

INSERT INTO SC ( Sno,Cno,Grade)

VALUES('S03','C01',72)

INSERT INTO SC ( Sno,Cno,Grade)

VALUES('S03','C02',90)

INSERT INTO SC ( Sno,Cno,Grade)

VALUES('S03','C03',75)

2.索引的建立、删除

①用SSMS的方式为Student表按Sno(学号)升序建唯一索引

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

CREATE UNIQUE INDEX课程号

ON Course(Cno ASC)

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

CREATE UNIQUE INDEX PK_SC

ON SC(Sno ASC,Cno DESC)

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

明原因?

答:不能,因为一个表只能由一个聚集索引。

⑤用T—SQL语句删除基本表SC上的唯一索引。

DROP INDEX SC.PK_SC

相关文档
最新文档