数据库系统实验报告广东工业大学文档格式.docx
- 文档编号:22307146
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:50
- 大小:1.58MB
数据库系统实验报告广东工业大学文档格式.docx
《数据库系统实验报告广东工业大学文档格式.docx》由会员分享,可在线阅读,更多相关《数据库系统实验报告广东工业大学文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
确定数据库的位置;
要求:
数据文件和日志文件分别存储在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,
\3114006159\SC_3114006159.ldf'
SIZE=3,
FILEGROWTH=1)
查询分析器执行情况:
SQL语句与执行结果截图显示
2、创建基本表
利用查询分析器,使用SQL语句方式创建方式将下面各表建立到教学管理数据库中。
(1)创建student表
字段名
代码
类型
约束
学号
s_no
char(8)
主键
sname
非空
性别
sex
char
(2)
出生日期
sbirthday
Smalldatetime
学生所在院系编号
dno
char(6)
外键
专业代码
spno
外键
班级编码
class_no
char(4)
(2)创建Course表
课程编号
cno
char(10)
课程名称
cname
char(20)
课程类型编号
ctno
tinyint
理论学时
lecture
实验学时
experiment
开课学期
semester
课程学分
credit
(3)创建student_course表
主键,与student表中s_no外键关联,级联删除
上课编号
tcid
smallint
学生成绩
score
(4)创建teacher表
教师编号
t_no
教师
t_name
t_sex
t_birthday
smalldatetime
教师所在院系编号
职称
tech_title
(5)创建系部表(department)
院系编号
院系名称
dept_name
院系负责人
header
(6)创建专业信息表(speciality)
外键,非空
专业名称
spname
(7)创建teacher_course表
非空,外键
学期
Char(6)
学年
schoolyear
Char(10)
(8)创建班级表(class)
主键,与speciality表中spno外键关联,
主键,
班负责人
3、查看各数据表之间的关系,生成数据库关系图。
生成数据库关系图截图显示
4、创建各表的实现代码与截图:
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,
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,
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),
class_nochar(4),
ochar(10)NOTNULL,
semesterchar(6),
schoolyearchar(10)
CREATETABLEclass_3114006159
(spnochar(8),
headerchar(8),
PRIMARYKEY(spno,class_no)
ALTERTABLEstudent_3114006159
ADDFOREIGNKEY(dno)REFERENCESdeparment_3114006159(dno);
ADDFOREIGNKEY(spno)REFERENCESspeciality_3114006159(spno);
ALTERTABLEcourse_3114006159
ALTERTABLEstudent_course_3114006159
ADDFOREIGNKEY(s_no)REFERENCESstudent_3114006159(s_no);
ALTERTABLEteacher_3114006159
ALTERTABLEspeciality_3114006159
ADDFOREIGNKEY(dno)REFERENCESdeparment_3114006159(dno);
ALTERTABLEteacher_course_3114006159
ADDFOREIGNKEY(t_no)REFERENCESteacher_3114006159(t_no);
ADDFOREIGNKEY(cno)REFERENCEScourse_3114006159(cno);
ALTERTABLEclass_3114006159
5、利用查询分析器修改上述各表。
(1)、用INSERT语句向各个表中插入数据录入5条记录。
录入时注意体会外键约束。
SQL语句与执行结果显示
insertintodeparment_3114006159
values('
659801'
'
计算机'
周杰伦'
659802'
机电'
奕迅'
659803'
外国语'
章子怡'
659804'
土木'
梁朝伟'
659805'
环境'
国荣'
insertintoteacher_3114006159
65980101'
德华'
男'
1975-03-25'
高级'
65980201'
周润发'
1964-09-24'
65980301'
学友'
1956-06-15'
65980401'
曼玉'
女'
1965-04-21'
65980501'
坤'
1988-03-02'
insertintospeciality_3114006159
65980110'
计算机科学与技术'
65980210'
自动化'
65980310'
商务英语'
65980410'
土木工程'
65980510'
环境工程'
insertintoclass_3114006159
1401'
1402'
1403'
1404'
1405'
insertintocourse_3114006159
6598011001'
数据库'
1,48,12,1,2);
6598021001'
制图'
2,56,6,2,2);
6598031001'
口语'
3,48,0,1,4);
6598041001'
建筑学'
4,48,12,1,2);
6598051001'
基础化学'
5,48,12,1,2);
insertintoteacher_course_3114006159
values(1,'
一学期'
第二学年'
values(2,'
values(3,'
values(4,'
values(5,'
insertintostudent_3114006159
31140001'
王小波'
1997-01-03'
31140002'
寒'
1992-03-23'
31140003'
莫言'
1997-06-15'
31140004'
三毛'
1994-05-30'
31140005'
郭敬明'
1995-12-03'
insertintostudent_course_3114006159
1,96);
3,67);
2,91);
4,89);
5,96);
实验结果截图显示(插入数据的表格)
共8组(共8个表)
(2)、用UPDATE语句更改student表中数据;
实现代码:
useSC_3114006159
updatestudent_3114006159
setsname='
村上春树'
wheresname='
student表更改前的容截图显示查询分析
student表更改后的容截图显示
(3)、用DELETE语句删除student表中数据;
delete
fromstudent_course_3114006159
wheres_noin
(selects_no
fromstudent_3114006159
fromstudent_3114006159
五、实验中出现的问题与解决方案
在插入数据时没注意外键约束,结果导致插入失败,于是根据数据表关系图先插入没有外键约束的表,再根据外键约束关系按照一定顺序插入表。
在删除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语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法,掌握存储查询结果的方法,体会各种查询的异同与相互之间的转换,体会各种查询的执行过程,为简单综合应用打下良好的基础。
要求用SELECT完成以下查询,
1、对实验立的数据库表进行查询
简单查询:
(1)、查询全部学生的学号、、性别和日。
实现代码与查询结果截图:
格式如下
selects_no,sname,sex,sbirthday
查询结果截图显示
(2)、查询全体学生的学号、和年龄
selects_no,sname,sex,year(getdate())-year(sbirthday)
(3)、查询院系编号为‘510000’(计算机学院)的全部学生的学号、、性别和日。
useSC_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实验 报告 广东工业大学