《数据库系统原理》实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库系统原理》实验
实验1 表和表数据的操作
一、实验目的
掌握在SQL Server 2000环境下,利用SQL语言创建和管理表的方法。
二、实验要求
1、学会利用SQL语句建立自定义数据类型;
2、掌握使用SQL语句建立数据表的方法;
3、掌握数据表的修改及删除方法(界面方式及语句方式);
4、掌握T-SQL中的INSERT、UPDATE及DELETE语句的使用方法;
三、实验内容
1、创建数据库
利用“查询分析器”创建“stuscore”数据库。
CREATE DATABASE stuscore
2、创建数据表
(1)用“查询分析器”建立stuscore数据库中的学生表(Student)、班级表(Class)、课程表(Course)及成绩表(Grade),结构如下:
create table student
(sno char(8) primary key,
sname varchar(10),
sex char(2),
clsno char(6),
stuaddr varchar(20),
birthday char(20),
height DEC(4,2),
foreign key(clsno) references class(clsno)
);
create table class
(clsno char(6) primary key, clsname varchar(16), dorector varchar(10), specialty varchar(30)
);
create table course
(cno char(4) primary key, cname varchar(16),
pcno char(4),
credit tinyint
);
create table grade
(sno char(8),
cno char(4),
scorce int,
primary key(sno,cno)
);
2)使用T-SQL语句修改表结构
可以使用Alter语句增加、删除或修改字段信息。
(1)将表Student增加一列Department(系别)Char(2),不能为空。
alter table student add department char(2);
(2)修改学生表中的学生姓名字段的长度为20:
alter table student alter column sname char(20);
3、表数据的操作
插入数据之后使用命令:Select * from Student; 检查插入数据的正确性
插入数据之后使用命令:Select * from Class; 检查插入数据的正确性
(4)向表(Grade )中插入数据
插入数据之后使用命令:Select * from Grade; 检查插入数据的正确性
实验3 关系、索引、视图和触发器
一、实验目的
1、掌握关系图的创建方法。
2、掌握创建索引、查看索引和删除索引的操作和方法。
3、掌握创建、查询、更新、修改和删除视图的操作和方法。
二、实验要求
1、掌握在SQL Server 2000环境下,利用查询分析器创建关系图,理解关系数据库中表间关系的参照引用完整性;
2、掌握在SQL Server 2000环境下,利用查询分析器创建、查看和管理视图;
3、掌握在SQL Server 2000环境下,利用查询分析器创建、查看和管理索引。
三、实验内容
索引、视图和触发器的创建、查询、修改和删除
(1)为学生情况(student)表创建一个视图V_xsqk,以显示学生的学号、姓名、性别和出生年月等基本信息。
Create view V_xsqk
As
Select sno,sname,sex,birthday
From student
(2)创建一个视图V_XSCJ,以显示“0001”号课程的学生成绩信息,如学号、姓名、课程名称、成绩和学分等。
create view V_XSCJ(sno,sname,CName,Scorce,Credit)
as
select grade.sno,sname,CName,Scorce,Credit
from student,Course,Grade
Where student.sno=grade.sno and o=o and O='0001';
(3)分别利用视图V_xsqk和V_XSCJ作查询和更新操作。
(4)创建触发器trigger_t3,实现当修改学生情况表(student)中的某个学生的学号时,对应学生成绩表(grade)中的学号也作修改。
Create trigger trigger_t3 on student for update
As
Update grade set grade.sno= inserted.sno from grade,deleted,inserted
where grade.sno=(select sno from deleted)
go
(5)在Class表ClsName列上建立一个非聚集索引
Create nonclustered index clsn on Class(ClsName)(6)在student表的SName列上建立一个唯一性索引Create unique index stuname on student (SName)