数据库系统实验报告广东工业大学.docx
- 文档编号:9865949
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:49
- 大小:1.62MB
数据库系统实验报告广东工业大学.docx
《数据库系统实验报告广东工业大学.docx》由会员分享,可在线阅读,更多相关《数据库系统实验报告广东工业大学.docx(49页珍藏版)》请在冰豆网上搜索。
数据库系统实验报告广东工业大学
数据库系统试验汇报
学院计算机学院
专业计算机科学与技术
班级级班
学号
姓名
指导老师
(年12月)
试验__一__题目数据库及基础表建立
试验__二__题目查询数据库_
试验__三__题目创建和使用视图、索引、存放过程
试验__四_题目小型数据库计划设计
试验平台:
SQLSever
试验题目试验一数据库及基础表建立
一、试验目
1、掌握SQLSERVER查询分析器和企业管理器使用;
2、掌握创建数据库和表操作;
二、试验内容和要求
1、分别使用SQL语句、企业管理器(EnterpriseManager)创建数据库;
2、使用SQL语句、企业管理器(EnterpriseManager)创建数据库表;
三、试验关键仪器设备和材料
1.计算机及操作系统:
PC机,Windows/xp;
2.数据库管理系统:
SQLsever//;
四、试验方法、步骤及结果测试
创建一个教学管理数据库SC,其描述信息有:
学生信息、课程信息、老师信息、学生选课成绩、讲课信息、班级信息、系部信息、专业信息。
创建:
student表(学生信息表)、course表(课程信息表)、teacher表(老师信息表)、student_course表(学生选课成绩表)、teacher_course表(老师上课课表)等。
1、创建数据库:
确定数据库名称;数据库用于学生管理,命名为SC
确定数据库位置;要求:
数据文件和日志文件分别存放在E盘自己目录下。
确定数据库大小;依据实际数据量确定数据文件初始大小为30MB,日志文件初始大小为3MB。
确定数据库增加;依据实际情况,确定数据文件按20%增加,日志文件按1MB增加。
(1)、利用查询分析器(QueryAnalyzer),使用SQL语句指定参数创建数据库;
实现代码及截图:
SQL语句
CREATEDATABASESC_
ONPRIMARY
(NAME=SC__DATA,
FILENAME='E:
\\SC_.mdf',
SIZE=30,
FILEGROWTH=20%)
LOGON
(NAME=SC__LOG,
FILENAME='E:
\\SC_.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_
GO
CREATETABLEstudent_
(s_nochar(8)PRIMARYKEY,
snamechar(8)NOTNULL,
sexchar
(2),
sbirthdaysmalldatetime,
dnochar(6),
spnochar(8),
class_nochar(4)
);
CREATETABLEcourse_
(cnochar(10)PRIMARYKEY,
cnamechar(20)NOTNULL,
spnochar(8),
ctnotinyint,
lecturetinyint,
experimenttinyint,
semestertinyint,
credittinyint
);
CREATETABLEstudent_course_
(s_nochar(8),
tcidsmallint,
scoretinyint,
PRIMARYKEY(s_no,tcid)
);
CREATETABLEteacher_
(t_nochar(8)PRIMARYKEY,
t_namechar(8)NOTNULL,
t_sexchar
(2),
t_birthdaysmalldatetime,
dnochar(6),
tech_titlechar(10)
);
CREATETABLEdeparment_
(dnochar(6)PRIMARYKEY,
dept_namechar(20)NOTNULL,
headerchar(8)
);
CREATETABLEspeciality_
(spnochar(8)PRIMARYKEY,
dnochar(6)NOTNULL,
spnamechar(20)NOTNULL
);
CREATETABLEteacher_course_
(tcidsmallintPRIMARYKEY,
t_nochar(8),
spnochar(8),
class_nochar(4),
cnochar(10)NOTNULL,
semesterchar(6),
schoolyearchar(10)
);
CREATETABLEclass_
(spnochar(8),
class_nochar(4),
headerchar(8),
PRIMARYKEY(spno,class_no)
);
ALTERTABLEstudent_
ADDFOREIGNKEY(dno)REFERENCESdeparment_(dno);
ALTERTABLEstudent_
ADDFOREIGNKEY(spno)REFERENCESspeciality_(spno);
ALTERTABLEcourse_
ADDFOREIGNKEY(spno)REFERENCESspeciality_(spno);
ALTERTABLEstudent_course_
ADDFOREIGNKEY(s_no)REFERENCESstudent_(s_no);
ALTERTABLEteacher_
ADDFOREIGNKEY(dno)REFERENCESdeparment_(dno);
ALTERTABLEspeciality_
ADDFOREIGNKEY(dno)REFERENCESdeparment_(dno);
ALTERTABLEteacher_course_
ADDFOREIGNKEY(t_no)REFERENCESteacher_(t_no);
ALTERTABLEteacher_course_
ADDFOREIGNKEY(spno)REFERENCESspeciality_(spno);
ALTERTABLEteacher_course_
ADDFOREIGNKEY(cno)REFERENCEScourse_(cno);
ALTERTABLEclass_
ADDFOREIGNKEY(spno)REFERENCESspeciality_(spno);
查询分析器实施情况:
SQL语句及实施结果截图显示
5、利用查询分析器修改上述各表。
(1)、用INSERT语句向各个表中插入数据录入5条统计。
录入时注意体会外键约束。
实现代码及截图:
查询分析器实施情况:
SQL语句及实施结果显示
insertintodeparment_
values('659801','计算机','周杰伦');
insertintodeparment_
values('659802','机电','陈奕迅');
insertintodeparment_
values('659803','外国语','章子怡');
insertintodeparment_
values('659804','土木','梁朝伟');
insertintodeparment_
values('659805','环境','张国荣');
insertintoteacher_
values('65980101','刘德华','男','1975-03-25','659801','高级');
insertintoteacher_
values('65980201','周润发','男','1964-09-24','659802','高级');
insertintoteacher_
values('65980301','张学友','男','1956-06-15','659803','高级');
insertintoteacher_
values('65980401','张曼玉','女','1965-04-21','659804','高级');
insertintoteacher_
values('65980501','陈坤','男','1988-03-02','659805','高级');
insertintospeciality_
values('65980110','659801','计算机科学与技术');
insertintospeciality_
values('65980210','659802','自动化');
insertintospeciality_
values('65980310','659803','商务英语');
insertintospeciality_
values('65980410','659804','土木工程');
insertintospeciality_
values('65980510','659805','环境工程');
insertintoclass_
values('65980110','1401','刘德华');
insertintoclass_
values('65980210','1402','周润发');
insertintoclass_
values('65980310','1403','张学友');
insertintoclass_
values('65980410','1404','张曼玉');
insertintoclass_
values('65980510','1405','陈坤');
insertintocourse_
values('','数据库','65980110',1,48,12,1,2);
insertintocourse_
values('','制图','65980210',2,56,6,2,2);
insertintocourse_
values('','口语','65980310',3,48,0,1,4);
insertintocourse_
values('','建筑学','65980410',4,48,12,1,2);
insertintocourse_
values('','基础化学','65980510',5,48,12,1,2);
insertintoteacher_course_
values(1,'65980101','65980110','1401','','一学期','第二年');
insertintoteacher_course_
values(2,'65980201','65980210','1402','','一学期','第二年');
insertintoteacher_course_
values(3,'65980301','65980310','1403','','一学期','第二年');
insertintoteacher_course_
values(4,'65980401','65980410','1404','','一学期','第二年');
insertintoteacher_course_
values(5,'65980501','65980510','1405','','一学期','第二年');
insertintostudent_
values('31140001','王小波','男','1997-01-03','659801','65980110','1401');
insertintostudent_
values('31140002','韩寒','男','1992-03-23','659802','65980210','1402');
insertintostudent_
values('31140003','莫言','男','1997-06-15','659803','65980310','1403');
insertintostudent_
values('31140004','三毛','女','1994-05-30','659804','65980410','1404');
insertintostudent_
values('31140005','郭敬明','男','1995-12-03','659805','65980510','1405');
insertintostudent_course_
values('31140001',1,96);
insertintostudent_course_
values('31140002',3,67);
insertintostudent_course_
values('31140003',2,91);
insertintostudent_course_
values('31140004',4,89);
insertintostudent_course_
values('31140005',5,96);
试验结果截图显示(插入数据表格)
共8组(共8个表)
(2)、用UPDATE语句更改student表中数据;
实现代码:
useSC_
updatestudent_
setsname='村上春树'
wheresname='莫言'
student表更改前内容截图显示查询分析
student表更改后内容截图显示
(3)、用DELETE语句删除student表中数据;
实现代码:
useSC_
delete
fromstudent_course_
wheres_noin
(selects_no
fromstudent_
wheresname='郭敬明');
delete
fromstudent_
wheresname='郭敬明'
student表更改前内容截图显示查询分析
student表更改后内容截图显示
五、试验中出现问题及处理方案
在插入数据时没注意外键约束,结果造成插入失败,于是依据数据表关系图先插入没有外键约束表,再依据外键约束关系根据一定次序插入表。
在删除student元组时,因为其主键被student_course表外键所参考,所以无法删除,于是先删除student_course表中元组,再删除student中元组。
六、思索题
1、说明数据库中表和数据文件关系。
答:
表存放于数据文件中,一个数据文件能够存放多个表。
2、数据库中日志文件能否单独修改?
不能,SQLServer数据库都有log日志文件,log日志文件统计用户对数据库修改操作,只有数据库发生更改时,日志文件才会发生更改,不能单独更改。
3、附加练习题.(代码以及运行结果采取截图显示)
(1)将计算机专业全部学生数据库原理成绩增加10分
代码以及运行结果:
(2)删除计算机专业全部学生数据库原理选修信息
代码以及运行结果:
(3)为specialityspname添加唯一约束
代码以及运行结果:
(4)为student_coursescore设置检验约束
代码以及运行结果:
试验题目试验二查询数据库
一、试验目
熟悉SQL语句基础使用方法,学习怎样编写SQL语句来实现查询
1、掌握基础SELECT查询及其相关子句使用;
2、掌握复杂SELECT查询,如多表查询、子查询、连接查询和嵌套查询。
二、试验内容和要求
使用SQL查询分析器查询数据,练习查询语句使用,掌握SELECT语句完整结构,包含简单查询、嵌套查询、连接查询等基础实现方法,掌握存放查询结果方法,体会多种查询异同及相互之间转换,体会多种查询实施过程,为简单综合应用打下良好基础。
三、试验关键仪器设备和材料
1.计算机及操作系统:
PC机,Windows/xp;
2.数据库管理系统:
SQLsever//;
四、试验方法、步骤及结果测试
要求用SELECT完成以下查询,
1、对试验一建立数据库表进行查询
简单查询:
(1)、查询全部学生学号、姓名、性别和出身年月日。
实现代码及查询结果截图:
格式以下
查询分析器实施情况:
SQL语句及实施结果显示
useSC_
selects_no,sname,sex,sbirthday
fromstudent_
查询结果截图显示
(2)、查询全体学生学号、姓名和年纪
实现代码及查询结果截图:
useSC_
selects_no,sname,sex,year(getdate())-year(sbirthday)
fromstudent_
(3)、查询院系编号为‘510000’(计算机学院)全部学生学号、姓名、性别和出身年月日。
实现代码及查询结果截图:
useSC_
selects_no,sname,sex,sbirthday
fromstudent_
wheredno='659801'
(4)、查询“计算机科学与技术”专业(专业代码为‘080605’)而且班级代码为‘0201’学生学号、姓名和出生日期。
实现代码及查询结果截图:
useSC_
selects_no,sname,sbirthday
fromstudent_
wherespno='65980110'andclass_no='1401'
(5)、查询在‘1983/01/10’以后出生计算机学院(院系编号为‘510000’)学生学号、姓名、性别和出身年月日。
实现代码及查询结果截图:
useSC_
selects_no,sname,sex,sbirthday
fromstudent_
wheredno='659801'andsbirthday>'1983-01-10'
(6)、查询全部学生学号、姓名、性别和出身日期结果根据出生日期升序排列。
实现代码及查询结果截图:
useSC_
selects_no,sname,sex,sbirthday
fromstudent_
orderbysbirthday
连接查询:
(1)、查询全部学生学号、姓名、性别、所在院系名称和专业名称
实现代码及查询结果截图:
useSC_
selects_no,sname,sex,dept_name,spname
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实验 报告 广东工业大学