数据库系统实验报告广东工业大学.docx
- 文档编号:9171052
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:50
- 大小:1.58MB
数据库系统实验报告广东工业大学.docx
《数据库系统实验报告广东工业大学.docx》由会员分享,可在线阅读,更多相关《数据库系统实验报告广东工业大学.docx(50页珍藏版)》请在冰豆网上搜索。
数据库系统实验报告广东工业大学
数据库系统实验报告
学院计算机学院
专业计算机科学与技术
班级级班
学号
姓名
指导教师
(2016年12月)
实验__一__题目数据库与基本表的建立
实验__二__题目查询数据库_
实验__三__题目创建和使用视图、索引、存储过程
实验__四_题目小型数据库规划设计
实验平台:
SQLSever2005
实验题目实验一数据库与基本表的建立
一、实验目的
1、掌握SQLSERVER的查询分析器和企业管理器的使用;
2、掌握创建数据库和表的操作;
二、实验容和要求
1、分别使用SQL语句、企业管理器(EnterpriseManager)创建数据库;
2、使用SQL语句、企业管理器(EnterpriseManager)创建数据库表;
三、实验主要仪器设备和材料
1.计算机与操作系统:
PC机,Windows2000/xp;
2.数据库管理系统:
SQLsever2000/2003/2005;
四、实验方法、步骤与结果测试
创建一个教学管理数据库SC,其描述的信息有:
学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。
创建:
student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student_course表(学生选课成绩表)、teacher_course表(教师上课课表)等。
1、创建数据库:
确定数据库名称;数据库用于学生管理,命名为SC
确定数据库的位置;要求:
数据文件和日志文件分别存储在E盘自己的目录下。
确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。
确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。
(1)、利用查询分析器(QueryAnalyzer),使用SQL语句指定参数创建数据库;
实现代码与截图:
SQL语句
CREATEDATABASESC_3114006159
ONPRIMARY
(NAME=SC_3114006159_DATA,
FILENAME='E:
\3114006159\SC_3114006159.mdf',
SIZE=30,
FILEGROWTH=20%)
LOGON
(NAME=SC_3114006159_LOG,
FILENAME='E:
\3114006159\SC_3114006159.ldf',
SIZE=3,
FILEGROWTH=1)
查询分析器执行情况:
SQL语句与执行结果截图显示
2、创建基本表
利用查询分析器,使用SQL语句方式创建方式将下面各表建立到教学管理数据库中。
(1)创建student表
字段名
代码
类型
约束
学号
s_no
char(8)
主键
sname
char(8)
非空
性别
sex
char
(2)
出生日期
sbirthday
Smalldatetime
学生所在院系编号
dno
char(6)
外键
专业代码
spno
char(8)
外键
班级编码
class_no
char(4)
(2)创建Course表
字段名
代码
类型
约束
课程编号
cno
char(10)
主键
课程名称
cname
char(20)
非空
专业代码
spno
char(8)
外键
课程类型编号
ctno
tinyint
理论学时
lecture
tinyint
实验学时
experiment
tinyint
开课学期
semester
tinyint
课程学分
credit
tinyint
(3)创建student_course表
字段名
代码
类型
约束
学号
s_no
char(8)
主键,与student表中s_no外键关联,级联删除
上课编号
tcid
smallint
主键
学生成绩
score
tinyint
(4)创建teacher表
字段名
代码
类型
约束
教师编号
t_no
char(8)
主键
教师
t_name
char(8)
非空
性别
t_sex
char
(2)
出生日期
t_birthday
smalldatetime
教师所在院系编号
dno
char(6)
外键
职称
tech_title
char(10)
(5)创建系部表(department)
字段名
代码
类型
约束
院系编号
dno
char(6)
主键
院系名称
dept_name
char(20)
非空
院系负责人
header
char(8)
(6)创建专业信息表(speciality)
字段名
代码
类型
约束
专业代码
spno
char(8)
主键
院系编号
dno
char(6)
外键,非空
专业名称
spname
char(20)
非空
(7)创建teacher_course表
字段名
代码
类型
约束
上课编号
tcid
smallint
主键
教师编号
t_no
char(8)
外键
专业代码
spno
char(8)
外键
班级编码
class_no
char(4)
课程编号
cno
char(10)
非空,外键
学期
semester
Char(6)
学年
schoolyear
Char(10)
(8)创建班级表(class)
字段名
代码
类型
约束
专业代码
spno
char(8)
主键,与speciality表中spno外键关联,
班级编码
class_no
char(4)
主键,
班负责人
header
char(8)
3、查看各数据表之间的关系,生成数据库关系图。
生成数据库关系图截图显示
4、创建各表的实现代码与截图:
SQL语句
USESC_3114006159
GO
CREATETABLEstudent_3114006159
(s_nochar(8)PRIMARYKEY,
snamechar(8)NOTNULL,
sexchar
(2),
sbirthdaysmalldatetime,
dnochar(6),
spnochar(8),
class_nochar(4)
);
CREATETABLEcourse_3114006159
(cnochar(10)PRIMARYKEY,
amechar(20)NOTNULL,
spnochar(8),
ctnotinyint,
lecturetinyint,
experimenttinyint,
semestertinyint,
credittinyint
);
CREATETABLEstudent_course_3114006159
(s_nochar(8),
tcidsmallint,
scoretinyint,
PRIMARYKEY(s_no,tcid)
);
CREATETABLEteacher_3114006159
(t_nochar(8)PRIMARYKEY,
t_namechar(8)NOTNULL,
t_sexchar
(2),
t_birthdaysmalldatetime,
dnochar(6),
tech_titlechar(10)
);
CREATETABLEdeparment_3114006159
(dnochar(6)PRIMARYKEY,
dept_namechar(20)NOTNULL,
headerchar(8)
);
CREATETABLEspeciality_3114006159
(spnochar(8)PRIMARYKEY,
dnochar(6)NOTNULL,
spnamechar(20)NOTNULL
);
CREATETABLEteacher_course_3114006159
(tcidsmallintPRIMARYKEY,
t_nochar(8),
spnochar(8),
class_nochar(4),
ochar(10)NOTNULL,
semesterchar(6),
schoolyearchar(10)
);
CREATETABLEclass_3114006159
(spnochar(8),
class_nochar(4),
headerchar(8),
PRIMARYKEY(spno,class_no)
);
ALTERTABLEstudent_3114006159
ADDFOREIGNKEY(dno)REFERENCESdeparment_3114006159(dno);
ALTERTABLEstudent_3114006159
ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);
ALTERTABLEcourse_3114006159
ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);
ALTERTABLEstudent_course_3114006159
ADDFOREIGNKEY(s_no)REFERENCESstudent_3114006159(s_no);
ALTERTABLEteacher_3114006159
ADDFOREIGNKEY(dno)REFERENCESdeparment_3114006159(dno);
ALTERTABLEspeciality_3114006159
ADDFOREIGNKEY(dno)REFERENCESdeparment_3114006159(dno);
ALTERTABLEteacher_course_3114006159
ADDFOREIGNKEY(t_no)REFERENCESteacher_3114006159(t_no);
ALTERTABLEteacher_course_3114006159
ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);
ALTERTABLEteacher_course_3114006159
ADDFOREIGNKEY(cno)REFERENCEScourse_3114006159(cno);
ALTERTABLEclass_3114006159
ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);
查询分析器执行情况:
SQL语句与执行结果截图显示
5、利用查询分析器修改上述各表。
(1)、用INSERT语句向各个表中插入数据录入5条记录。
录入时注意体会外键约束。
实现代码与截图:
查询分析器执行情况:
SQL语句与执行结果显示
insertintodeparment_3114006159
values('659801','计算机','周杰伦');
insertintodeparment_3114006159
values('659802','机电','奕迅');
insertintodeparment_3114006159
values('659803','外国语','章子怡');
insertintodeparment_3114006159
values('659804','土木','梁朝伟');
insertintodeparment_3114006159
values('659805','环境','国荣');
insertintoteacher_3114006159
values('65980101','德华','男','1975-03-25','659801','高级');
insertintoteacher_3114006159
values('65980201','周润发','男','1964-09-24','659802','高级');
insertintoteacher_3114006159
values('65980301','学友','男','1956-06-15','659803','高级');
insertintoteacher_3114006159
values('65980401','曼玉','女','1965-04-21','659804','高级');
insertintoteacher_3114006159
values('65980501','坤','男','1988-03-02','659805','高级');
insertintospeciality_3114006159
values('65980110','659801','计算机科学与技术');
insertintospeciality_3114006159
values('65980210','659802','自动化');
insertintospeciality_3114006159
values('65980310','659803','商务英语');
insertintospeciality_3114006159
values('65980410','659804','土木工程');
insertintospeciality_3114006159
values('65980510','659805','环境工程');
insertintoclass_3114006159
values('65980110','1401','德华');
insertintoclass_3114006159
values('65980210','1402','周润发');
insertintoclass_3114006159
values('65980310','1403','学友');
insertintoclass_3114006159
values('65980410','1404','曼玉');
insertintoclass_3114006159
values('65980510','1405','坤');
insertintocourse_3114006159
values('6598011001','数据库','65980110',1,48,12,1,2);
insertintocourse_3114006159
values('6598021001','制图','65980210',2,56,6,2,2);
insertintocourse_3114006159
values('6598031001','口语','65980310',3,48,0,1,4);
insertintocourse_3114006159
values('6598041001','建筑学','65980410',4,48,12,1,2);
insertintocourse_3114006159
values('6598051001','基础化学','65980510',5,48,12,1,2);
insertintoteacher_course_3114006159
values(1,'65980101','65980110','1401','6598011001','一学期','第二学年');
insertintoteacher_course_3114006159
values(2,'65980201','65980210','1402','6598021001','一学期','第二学年');
insertintoteacher_course_3114006159
values(3,'65980301','65980310','1403','6598031001','一学期','第二学年');
insertintoteacher_course_3114006159
values(4,'65980401','65980410','1404','6598041001','一学期','第二学年');
insertintoteacher_course_3114006159
values(5,'65980501','65980510','1405','6598051001','一学期','第二学年');
insertintostudent_3114006159
values('31140001','王小波','男','1997-01-03','659801','65980110','1401');
insertintostudent_3114006159
values('31140002','寒','男','1992-03-23','659802','65980210','1402');
insertintostudent_3114006159
values('31140003','莫言','男','1997-06-15','659803','65980310','1403');
insertintostudent_3114006159
values('31140004','三毛','女','1994-05-30','659804','65980410','1404');
insertintostudent_3114006159
values('31140005','郭敬明','男','1995-12-03','659805','65980510','1405');
insertintostudent_course_3114006159
values('31140001',1,96);
insertintostudent_course_3114006159
values('31140002',3,67);
insertintostudent_course_3114006159
values('31140003',2,91);
insertintostudent_course_3114006159
values('31140004',4,89);
insertintostudent_course_3114006159
values('31140005',5,96);
实验结果截图显示(插入数据的表格)
共8组(共8个表)
(2)、用UPDATE语句更改student表中数据;
实现代码:
useSC_3114006159
updatestudent_3114006159
setsname='村上春树'
wheresname='莫言'
student表更改前的容截图显示查询分析
student表更改后的容截图显示
(3)、用DELETE语句删除student表中数据;
实现代码:
useSC_3114006159
delete
fromstudent_course_3114006159
wheres_noin
(selects_no
fromstudent_3114006159
wheresname='郭敬明');
delete
fromstudent_3114006159
wheresname='郭敬明'
student表更改前的容截图显示查询分析
student表更改后的容截图显示
五、实验中出现的问题与解决方案
在插入数据时没注意外键约束,结果导致插入失败,于是根据数据表关系图先插入没有外键约束的表,再根据外键约束关系按照一定顺序插入表。
在删除student的元组时,因为其主键被student_course表外键所参照,所以无法删除,于是先删除student_course表中的元组,再删除student中的元组。
六、思考题
1、说明数据库中的表和数据文件的关系。
答:
表存储于数据文件中,一个数据文件可以存储多个表。
2、数据库中的日志文件能否单独修改?
不能,SQLServer数据库都有log日志文件,log日志文件记录用户对数据库修改的操作,只有数据库发生更改时,日志文件才会发生更改,不能单独更改。
3、附加练习题.(代码以与运行结果采用截图显示)
(1)将计算机专业所有学生的数据库原理的成绩增加10分
代码以与运行结果:
(2)删除计算机专业所有学生的数据库原理的选修信息
代码以与运行结果:
(3)为speciality的spname添加唯一约束
代码以与运行结果:
(4)为student_course的score设置检查约束
代码以与运行结果:
实验题目实验二查询数据库
一、实验目的
熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询
1、掌握基本的SELECT查询与其相关子句的使用;
2、掌握复杂的SELECT查询,如多表查询、子查询、连接查询和嵌套查询。
二、实验容和要求
使用SQL查询分析器查询数据,练习查询语句的使用,掌握SELECT语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法,掌握存储查询结果的方法,体会各种查询的异同与相互之间的转换,体会各种查询的执行过程,为简单综合应用打下良好的基础。
三、实验主要仪器设备和材料
1.计算机与操作系统:
PC机,Windows2000/xp;
2.数据库管理系统:
SQLsever2000/2003/2005;
四、实验方法、步骤与结果测试
要求用SELECT完成以下查询,
1、对实验立的数据库表进行查询
简单查询:
(1)、查询全部学生的学号、、性别和日。
实现代码与查询结果截图:
格式如下
查询分析器执行情况:
SQL语句与执行结果显示
useSC_3114006159
selects_no,sname,sex,sbirthday
fromstudent_3114006159
查询结果截图显示
(2)、查询全体学生的学号、和年龄
实现代码与查询结果截图:
useSC_3114006159
selects_no,sname,sex,year(getdate())-year(sbirthday)
fromstudent_3114006159
(3)、查询院系编号为‘510000’(计算机学院)的全部学生的学号、、性别和日。
实现代码与查询结果截图:
useSC_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实验 报告 广东工业大学