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

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


《数据库系统原理》实验
实验 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


相关文章:
《数据库系统原理》实验报告.doc
《数据库系统原理》实验报告_工学_高等教育_教育专区。数据库实验报告 学生实验报
《数据库系统原理》实验报告.doc
《数据库系统原理》实验报告 - 《数据库系统原理》实验 实验 1 表和表数据的操
数据库系统原理概论(多表查询实验报告).doc
数据库系统原理概论(多表查询实验报告) - 《数据库系统原理》实验报告 实验名称
数据库系统原理及应用实验报告.doc
数据库系统原理及应用实验报告 - 《数据库系统原理及应用》 实验报告 院系:计算
数据库系统原理实验报告.doc
数据库系统原理实验报告 - 实验一 《数据库系统原理》实验报告 题目:数据库的创
数据库系统原理实验报告.pdf
数据库系统原理实验报告 - 本科实验报告 课程名称: 数据库系统概论 实验项目:
数据库系统原理学生实验报告.doc
数据库系统原理学生实验报告 - 学生实验报告 (理工类) 课程名称:数据库系统原理 专业班级: 15 计算机 w 专转本 1 班 学生学号: 1513504069 学生姓名: 蔡文豪 ...
数据库系统原理学生实验报告大学论文.doc
数据库系统原理学生实验报告大学论文 - 学生实验报告 (理工类) 课程名称:数据库系统原理 专业班级: 15 计算机 w 专转本 1 班 学生学号: 1513504069 学生姓名: ...
3《数据库系统原理》实验二.pdf
3《数据库系统原理》实验二 - 《数据库系统原理》实验报告 姓名: 姜秀连 学号
《数据库系统原理》实验报告一.doc
《数据库系统原理》实验报告一 - 《数据库系统原理》实验报告一 数据库系统原理》
《数据库原理与应用》实验报告三答案.doc
《数据库原理与应用》实验报告三答案_工学_高等教育_教育专区。《数据库原理与应用》实验报告三答案 广东金融学院实验报告课程名称:数据库原理与应用实验编号 及实验...
《数据库系统原理》实验报告七.doc
《数据库系统原理》实验报告七 - 《数据库系统原理》实验报告 班级: 姓名: 考
数据库系统原理实验报告.doc
数据库系统原理实验报告 - 基于sql server的一些实验报告,献丑了... 《数据库系统原理》 数据库系统原理》实验报告 班级___ 班级 姓名___ 姓名 学号___ 学号 ...
数据库原理实验报告(2).doc
数据库原理实验报告(2) - 《数据库原理与应用》 课程实验报告 实验二 数据库
2010《数据库系统原理》课程设计要求.doc
2010《数据库系统原理》课程设计要求_工学_高等教育_教育专区。《数据库系统原理...九、考核方式 完成实验内容规定的大型作业,提交课程设计实验报告,以及系统实现源码...
数据库系统原理实验报告.doc
数据库系统原理实验报告 - 实验报告 课程名称 实验项目名称 实验类型 数据库系统原理 数据查询--单表查询 验证型 □综合型 √ 设计型 实验日期 实验地点 图 523...
数据库原理实验一.doc
数据库原理实验一 - 南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一
数据结构实验报告3573753.doc
数据结构实验报告3573753 - 合肥师范学院 实验报告册 2013 / 2014 学年 第 2 学期 系 别 计算机科学与技术系 数据库原理 计算机软件 软件一班 李启祥 1...
山西农业大学数据库系统原理实验报告.doc
山西农业大学数据库系统原理实验报告 - 《数据库原理》实验报告 题目:交互式 S
数据库系统原理实验报告 数据库模式设计及建立.doc
沈阳工程学院 学生实验报告 (课程名称:数据库系统原理) 实验题目: 数据库模式
更多相关标签: