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

《数据库系统原理》实验报告


《数据库系统原理》实验
实验 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) ,结构如下: (a) Student 表的结构为: 字段名 SNO SName Sex ClsNO StuAddr Birthday Height 类型 Char(8) Varchar(10) Char(2) Char(6) Varchar(20) Char(20) DEC(4,2) 中文名 学号 姓名 性别 班级 住址 出生年月 身高 以米为单位表示学生的身高。 男、女 外健,班级的编号,参照表 Class 描述性说明 备注 主键

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) );
1

(b) Class 表的结构为: 字段名 ClsNO ClsName Director Specialty 类型 Char(6) Varchar(16) Varchar(10) Varchar(30) 中文名 班号 班名 辅导员 专业 备注 主键 对班级的描述信息 班级的辅导员

create table class (clsno char(6) primary key, clsname varchar(16), dorector varchar(10), specialty varchar(30) ); (c) Course 表的结构为: 字段名 CNO CName PCNO Credit 类型 Char(4) Varchar(16) char(4) Tinyint 中文名 课程号 课程名 先修课程 学分 备注 主键 课程的名称 先修课程的课程号

create table course (cno char(4) primary key, cname varchar(16), pcno char(4), credit tinyint ); (d) Grade 表的结构为: 字段名 SNo CNO Scorce 类型 Char(8) Char(4) Char(20) 中文名 学号 课程号 成绩 备注 学号,参照 Student,与 Course 组成主键 课程号,参照 Course

create table grade (sno char(8), cno char(4), scorce int, primary key(sno,cno) );

2

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、表数据的操作 (1)向表(Student)中插入数据 SNO 19920101 19920102 19920103 19920306 19940107 SName 王军 李杰 李丽 王彤 吴杪 Sex 男 男 女 女 女 ClsNO CS01 CS01 MT04 MT04 PH08 StuAddr 下关 40# 江边路 96# 新湖中路 164# 中央路 94# 莲化小区 74# Birthday 1976.12.21 1974.5.24 1979.6.4 1977.3.18 1979.4.8 Height 1.76 1.72 1.65 1.65 1.60

插入数据之后使用命令:Select * from Student; 检查插入数据的正确性 (2)向表(Class)中插入数据 ClsNO CS01 MT04 PH08 ClsName 计算机一班 数学四班 物理八班 Director 王宁 陈晨 葛格 Specialty 计算机应用 数学 物理

插入数据之后使用命令:Select * from Class; 检查插入数据的正确性 (3)向表(Course )中插入数据 CNO 0001 0003 0007 CName 数学 计算机基础 物理 PCNO Null 0001 0001 Credit 6 3 4

插入数据之后使用命令:Select * from Course; 检查插入数据的正确性 (4)向表(Grade )中插入数据 SNO 19920101 19920101 19920102 19920102 CNO 0001 0007 0001 0003 Score 90 86 87 76
3

19920306 19920306 19940106

0001 0003 0007

87 93 85

插入数据之后使用命令:Select * from Grade; 检查插入数据的正确性

4

实验 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 course.cno=grade.cno and course.CNO='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 列上建立一个非聚集索引

5

Create nonclustered index clsn on Class(ClsName) (6)在 student 表的 SName 列上建立一个唯一性索引 Create unique index stuname on student (SName)

6

实验 4 简单的连接查询 一、实验目的
1、掌握 T-SQL 中运算符和表达式的使用。 2、通过对 Select 的使用,掌握 Select 语句的结构及其应用。 3、掌握 T-SQL 中几个常用流程控制语句的使用。 4、掌握系统内置函数的概念及其应用。

二、实验要求
掌握在 SQL Server 2000 环境下,利用企业管理器和查询分析器进行 SQL 数据查询。学 习使用 Select 语句进行数据库的检索,掌握在 Select 语句中使用 where 子句、order by 子 句、group by 子句以及 between、like 关键字。 学习 T-SQL 语言的几个常用语句、系统内置函数和用户自定义函数的使用方法。 三、实验内容 1、使用 SQL 查询分析器,对学生成绩管理(stuscore)数据库完成如下查询: (1)在学生成绩库中查询出生年月在“1976.12.21”至“1979.4.8”之间的男生情况, 并以出生年月按降序排列。 (2)统计“数学”专业的人数。 (3)统计每个学生每个学期的最低分、最高分及平均分。 (4)查询至少被 3 个学生选修的课程的课程号 (5)查询每个学生的平均成绩,要求查询结果中有学号和平均成绩两列。 (6)查询 CS01 或 MT04 班级姓李的学生的信息。 (7)求选修数学课程且成绩为 90 分以上的学生学号、姓名及成绩。 (8)将王军所选修的相关课程都增加 5 分 (1)
select * from Student where sex='男' and Birthday between '1976.12.21' and '1979.4.8' Order by Birthday desc;

(2)
select count(*) from student,class where student.clsno=class.clsno and class.specialty='数学';

(3)
select sno,max(Scorce), min(Scorce),avg(scorce) from grade group by sno

(4) select cno
7

select cno From grade group by cno having count(*)>=3;

(5) select sno,avg(Scorce) from grade group by sno (6)
select * from Student where sname like '李%' and clsno in('CS01','MT04');

(7)
Select student.sno,sname,scorce From student,class,grade Where student.clsno=class.clsno and class.specialty='数学' and student.sno=grade.sno and grade.scorce>'90';

(8)
update grade Set Scorce=Scorce+5 Where exists (select * from student where grade.sno=student.sno and sName='王军' );

实验 5、高级查询实验
一、实验目的
使学生进一步掌握 SQL Server 查询分析器的使用方法,加深 Transact-SQL 语言的嵌套 查询语句的理解。

二、实验内容
在 SQL Server 查询分析器中使用 IN 、比较符、ANY 或 ALL 和 EXISTS 操作符进行嵌套 查询操作。

三、实验步骤
用 Transact-SQL 语句表示,在学生选课库中实现其数据嵌套查询操作: (l)求选修了数学课程的学生学号和姓名。 (2)求其他系中年龄小于计算机系年龄的学生。

8

(3)求没有选修 0003 课程的学生姓名。

(1)
select student.sno,sname From student,grade,course Where student.sno=grade.sno and grade.cno=course.cno and course.pcno='0001';

(2)
Select * From student Where birthday > all (select birthday from student where clsno='cs01') and clsno <> 'cs01';

(3)
Select sname From student Where not exists (select * from grade,course,student Where grade.sno=student.sno and grade.cno=course.cno and course.pcno='0003') ;

9


相关文章:
数据库系统原理实验报告
本科实验报告 课程名称: 数据库系统原理 实验项目: 实验二、实验三、实验四 实验地点:逸夫楼 502 专业班级:学号: 学生姓名: 指导教师: 2013 年 5 月 20 日 ...
数据库系统原理概论(多表查询实验报告)
《数据库系统原理》实验报告 实验名称: 多表查询 学 院: 计算机学院 班 级: 学 号: 姓 名: 实验日期: 2013 年 4 月 9 日 一、 实验准备 1. 硬件:PC...
《数据库系统原理》实验报告九
《数据库系统原理》实验报告 班级: 姓名: 考号: 指导教师: 专接本(网络) 许贤华 028913218042 赵彦 实验名称: 实验日期: 实验报告日期: 成绩: 熟悉和编写存储...
《数据库系统原理》实验报告
《数据库系统原理》实验实验 1 表和表数据的操作 一、实验目的掌握在 SQL Server 2000 环境下,利用 SQL 语言创建和管理表的方法。 二、实验要求 1、学会利用 ...
数据库系统原理及应用实验报告
《数据库系统原理及应用》 实验报告 院系:计算机学院 班级:计科1102班 姓名:杨康 学号:04111043 序号:7号 实验二 定义表和数据库完整性 1. 使用T-SQL语句在数...
数据库系统原理-实验报告-数据库的基本查询
成绩评定 教师签名 计算机学院 数据库系统原理实验报告 课程名称: 数据库系统原理 2015-2016 学年第 1 学期 开课学期:班级: 指导老师: 实验题目: 学号: 姓名:...
数据库系统原理实验报告-基本操作
数据库系统原理实验报告-基本操作_计算机软件及应用_IT/计算机_专业资料。SQLServer数据库基本操作 成绩评定 教师签名 计算机学院 数据库系统原理实验报告 课程名称: ...
《数据库系统原理》实验报告
《数据库系统原理》实验报告 - 学生实验报告 (理工类) 课程名称:数据库系统原理 专业班级:软件工程 学生学号: 所属院部: 软件工程学院 学生姓名: 指导教师: 20...
数据库系统原理实验报告五
贵州大学实验报告 学院: 姓名 实验时间 实验课程名称 实验项目名称 实验目的实验仪器 专业: 班级: 学号 指导教师 数据库系统原理 数据库参照完整性实验 实验组 ...
桂林电子科技大学数据库系统原理实验报告
桂林电子科技大学数据库系统原理实验报告_工学_高等教育_教育专区。桂林电子科技大学...《数据库系统原理》实验... 3页 免费 桂林电子科技大学ASP NE... 暂无评价...
更多相关标签: