数据库系统概论-SQL语言实验报告
- 格式:docx
- 大小:40.72 KB
- 文档页数:12
数据库系统概论
学号:
姓名:
班级:
指导老师:
(一)实验目标
通过“数据库系统概论”书本知识学习和“数据库原理与应用”课程教学所授知识对“教学管理系统”实验内容进行分析,建立相应的数据库、数据表、数据视图以及相应的界面程序,利用SQL结构化查询语言提供的数据操纵功能,编程设计实现对数据的定义、修改、删除、查询、更新以及控制等操作,并按照实验指导书的各项要求完成实验。
(二)实验说明
1. 在工作站计算机的硬盘D盘符下,请同学们建立以自己名字命名的子目录(可以是汉字名,也可以是汉语拼音字母)。再在此子目录下,建立用于存放上机实验文件的相关子目录,它们是\DATA;\PROGS 等,Data目录用来存放“教学管理系统”数据库文件。Progs用来存放实验中的SQL语句和执行结果。
如用“萨师煊”的汉语拼音的第一个字母组成的“SSX”在D盘上建立目录后的结果是:D:\SSX\DATA; D:\SSX\PROGS 等。
2. 本课程实验要利用数据库管理系统SQL SEVER 2000进行实验,每台计算机上都已经安装好了微软公司的SQL Server 2000数据库管理系统,请熟悉SQL SEVER
2000的同学,根据SQL SEVER提供的客户端编程界面按照实验要求完成实验。
3. SQL Server 2000的安装过程见附录,建议同学们在自己的电脑上进行安装,熟悉安装过程及安全性设置。在数据库身份验证模式上,建议使用混合模式。
实验一:设计数据库、数据表和数据视图并编程实现
1. 目的要求
(1)这是一个验证性实验。
(2)利用所学E-R数据模型图概念,描述“学生管理” 系统中数据表之间以及各数据项之间的联系。并按照课程教学大纲要求,转化相关E-R图为关系模型中对应的二维表,指出每个数据表中的关键字、索引项、外码以及表中需要满足完整性约束条件;
(3)对照关系模型中(1:1)、(1:n)、(m:n)实体联系,指出各数据表实体属于哪一类联系。
(4)熟悉微软公司SQL Server的企业管理器(后台实验平台)和查询分析器(前台实验平台)内嵌的SQL编程环境,正确登录、退出和使用实验平台环境;
(5)熟练掌握SQL环境下的程序编辑和运行命令;
(6)建立一个教学管理数据库,即建立五个相关数据表。练习并掌握定义、删除和修改表的数据结构操作。建立数据库和数据表、数据视图并完成对各个数据表输入一定查询要求的模拟数据(模拟数据记录尽量多输一些且数据要能满足查询要求)的内容
2. 实验内容
(1)根据实验建议所示,建立“学生管理”数据库,这里是以SQL Server 2000为例来进行建立,其他数据库管理系统的建立方法,同学们自己查询相关书籍完成。
(2)建立数据表的方法,建立五个相关的数据表。完成数据库的建立并定义各表的完整性约束条件。分别使用 企业管理器 和SQL 语言 来实现。
(3)熟练掌握并应用SQL中的数据表定义、删除和修改等操作命令;
(4)熟练掌握为各表常用字段建立索引,以提高数据检索效率。
3.实验代码
基本表Course:
create table course
( cno Char(6)primary key, cname Char(20),
cpno Char(6),
ctime Numeric(2),
credit Numeric(2),
foreign key (cpno) references course(cno),
);
基本表Score:
create table Score
(
sno char(9),
cno char(6),
score numeric(3),
primary key (sno,cno),
foreign key (sno) references student(sno),
foreign key (cno) references course(cno),
);
基本表student:
create table student
( sno Char(9) primary key,
sname Char(10) constraint c1 not null,
sbirthday Datetime,
ssex Char(2) constraint c2 check(ssex in ('男','女')),
sclass Char(20),
sremark Char(100),
address Char(40),
zipcode Char(6),
phone Char(15),
email Char(40), );
基本表Teacher:
create table Teacher
(
tno char(7)primary key,
tname char(10),
tsex char(2)check (tsex in ('男','女')),
tbirthday datetime, position char(12),
department char(16),
tamount numeric(7,2),
experience char(200),
);
基本表Teaching:
create table Teaching
(
tno char(7), cno char(6),
tdata datetime,
classroom char(10),
sclass char(20),
primary key (tno,cno),
foreign key (tno) references Teacher(tno),
foreign key (cno) references course(cno),
);
4.实验心得
通过本次实验,对SQL语言有了更加深刻的理解,对基本表的建立有了更加清晰的认识,能够更加熟练地创建基本表。
实验二:设计数据插入、修改、删除、更新、查询和视图查询等操作并编程实现
1. 目的要求
(1)熟练掌握数据更新语句,灵活地操作插入数据、修改数据和删除数据;
(2)熟练掌握关系数据库中的完整性概念的应用;
(3)了解数据录入的方法和过程。
(4)掌握单表查询的基本方法;
(5)掌握连接查询的基本方法;
(6)熟练掌握以下练习,并进行以下各类查询:
① 选择表中的若干列、查询全部列、查询经过计算的值;
② 选择表中的若干元组,即消除取值重复的行与查询满足指定条件的元组(包括:比较大小、确定范围、确定集合、字符匹配、涉及空值和多种条件查询);
③ 对查询结果排序;
④ 使用集函数;
⑤ 对查询结果分组
(7)熟练掌握以下练习,并进行下列各类连接查询:
① 等值与非等值连接查询;
② 自身连接;
③ 外连接; ④ 复合条件连接;
(8)掌握嵌套查询的基本方法;
(9)掌握集合查询的基本方法;
(10)熟练掌握查询视图操作
(11)熟练掌握更新视图操作
(12)熟练关系的完整性概念,领会视图的用途
(13)练习以下各类查询:
① 带有IN谓词的子查询;
② 带有比较运算符的子查询;
③ 带有ANY或ALL谓词的子查询;
④ 带有EXISTS谓词的子查询;
⑤ 视图查询与更新操作;
2. 实验内容
(1)根据以下给定的数据表信息分别对student, course, score, teacher,
teching 表进行数据插入和修改,以完成给定的数据录入,同时要求输入班级同学名录模拟客观真实情况,给student、score表添加30条以上记录,以便以后查询应用方便。
Student表:
Sno sname Sbirthday ssex Sclass
011110101 章海潮 1982.02.07 男 信管系0101
011111103 王天力 1982.03.04 男 电商系0101
011111204 董丞悟 1982.06.06 男 电商系0102
011112110 马丽鹃 1982.04.03 女 工商系0101
011113104 杨乾坤 1982.03.23 男 会计系0101
011113221 刘抗日 1983.01.16 男 会计系0102
011114111 丘海棠 1983.02.08
女 旅游系0101
011115208 齐振国 1982.07.22 男 旅游系0102
001011101 王晓悦 1982.01.12 女 材料系0001
001011212 程伊莲 1982.03.21 女 材料系0002
course表:
Cno Cname Cpno Credit Ctime
C001 数据库原理 C005 4 64
C002 高等数学 4 72
C003 管理信息系统 C001 4 54
C004 操作系统 C006 3 32
C005 数据结构 C007 4 32
C006 计算机文化基础 2 32