数据库系统原理实验一参考答案.docx
- 文档编号:1117126
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:13
- 大小:19.09KB
数据库系统原理实验一参考答案.docx
《数据库系统原理实验一参考答案.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验一参考答案.docx(13页珍藏版)》请在冰豆网上搜索。
数据库系统原理实验一参考答案
姓名:
专业:
班级:
学号:
科目:
数据库系统原理实验日期:
实验题目实验1SQLSERVER的安装及使用,数据库的建立
【实验目的】
安装并熟悉SQLSERVER2008环境,通过实验达到能熟练使用“管理器”及“命令窗口”两种方法,建立数据库及数据库表(表结构和表内容)。
重点注意数据类型及完整性约束(要求作验证)。
使用的SQL命令:
CREATEDATABASEUSECREATETABLEINSERT等。
【实验内容】
1、课本第一章的例题(学生数据库(Students_Mis_2018):
4个数据表)
(1)建立数据库(CREATEDATABASE)Students_Mis_2018(存储文件存放在自己建立的文件夹内)
(2)调用(USE数据库:
Students_Mis_2018
(3)分别建立4个数据表的表结构(CREATETABLE):
系(Depts),学生(Students),课程(Courses),选课(Reports)
(4)插入表数据(INSERT
(5)数据类型及完整性约束验证(难点是主外键约束)
回答以下几个问题:
(A)若先建立学生(Students)表,后建立系(Depts)表,行吗?
为什么?
(B)若先建立选课(Reports)表,后建立课程(Courses)表,行吗?
为什么?
(C)对INSERT,自己举几个违反约束条件(数据类型、主键约束、非空约束、外键约束、CHECK约束)的例子,并说明理由。
(6)分离数据库、复制数据库存储文件、附加数据库
(7)将调试好的正确命令代码及数据库存储文件保存到自己的备份盘(方便下次实验使用)
2、课本中的习题(零件供应数据库(SPJ_Mis__2018):
4个数据表)
(说明:
要求同上,各表模拟数据可参照课本P110)
【实验过程】
1、
(1)建立数据库(CREATEDATABASE)Students_Mis_2018
USEmaster
GO
CREATEDATABASEStudents_Mis_2018
ON
(
NAM=Students_Data,
FILENAME='E:
\SQL_DATEBASE\',
SIZE=10,
MAXSIZE=50,
FILEGR0WT=5
)
LOGON
(
NAM巨'Students_Log',
FILENAME='E:
\SQL_DATEBASE\',
SIZE=5MB
MAXSIZE25MB
FILEGROWT=5MB
)
GO
(2)调用(USE数据库:
Students_Mis_2018
useStudents_Mis_2018
GO
(3)分别建立4个数据表的表结构(CREATETABLE):
系(Depts),学生(Students),课程(Courses),选课(Reports)
CREATETABLEDepts
(
DnoCHAR5)PRIMARYKEY
DnameCHAR20)NOTNULL
)
GO
CREATETABLEStudents
(
SnoCHAR5)PRIMARYKEY
SnameCHAR20)NOTNULL,
SsexCHAR2),
SageINT,
DnoCHAIR5),
CONSTRAINTFK_DnoFOREIGNKEY(Dno)REFERENCEDepts
)
GO
CREATETABLECourses
(
CnoCHAR6)PRIMARYKEY
CnameCHAR20),
Pre_CnoCHAR6),
CreditsINT
)
GO
CREATETABLEReports
(
SnoCHAR5),
CnoCHAIR6),
GradeINTCHECKGrade>=0ANDGrade<=100),
PRIMARYKEY:
Sno,Cno),
CONSTRAINTStudent_ReportFOREIGNKE^Sno)REFERENCEStudentsCONSTRAINTReport_CourseFOREIGNKEYCno)REFERENCESourses
)
GO
(4)分别对4个表插入表数据(INSERT)
INSERT
INTOdepts
VALUES('D01','自动化')
INSERT
INTOdepts
VALUES('D02','计算机')
INSERT
INTOdepts
VALUES('D03','数学')
INSERT
INTOdepts
VALUES('D04','通信')
INSERT
INTOdepts
VALUES('D05','电子')
INSERT
INTOdepts
VALUES('D06','化学')
SELECT*
FROMDepts
INSERT
INTOStudents
VALUES('S01','王建平','男',21,'D01')
INSERT
INTOStudents
VALUES('S02','刘华','女',19,'D01')
INSERT
INTOStudents
VALUES('S03','范林军','女',18,'D02')
INSERT
INTOStudents
VALUES('S04'
'李伟','男',19,'D03')
INSERT
INTOStudents
VALUES('S05'
'黄河','男',18,'D03')
INSERT
INTOStudents
VALUES('S06'
'长江','男',20,'D03')
SELECT*
FROMStudents
INSERT
INTOCourses
VALUES('C01'
'英语','',4)
INSERT
INTOCourses
VALUES('C02'
'数据结构','C05',2)
INSERT
INTOCourses
VALUES('C03'
'数据库','C02',2)
INSERT
INTOCourses
VALUES('C04'
'DB-设计','C03',3)
INSERT
INTOCourses
VALUES('C05'
'C++',-,3)
INSERT
INTOCourses
VALUES('C06'
'网络原理’,'C07',3)
INSERT
INTOCourses
VALUES('C07'
'操作系统’,‘C05',3)
SELECT*
FROMCourses
INSERT
INTOReports
VALUES('S01'
'C01','92')
INSERT
INTOReports
VALUES('S01'
'C03','84')
INSERT
INTOReports
VALUES('S02'
'C01','90')
INSERT
INTOReports
VALUES('S02','C02','94')
INSERT
INTOReports
VALUES('S02','C03','82')
INSERT
INTOReports
VALUES('S03','C01','72')
INSERT
INTOReports
VALUES('S03','C02','89')
INSERT
INTOReports
VALUES('S04','C03','75')
SELECT*
FROMReports
(5)数据类型及完整性约束验证:
(A)若先建立学生(Students)表,后建立系(Depts)表,行吗?
为什么?
答:
不行,对Students的Dno作外键约束,必须引用到Depts表的主键Dnc。
必须先建立系(Depts)表,后才能建立学生(Students)表。
(B)若先建立选课(Reports)表,后建立课程(Courses)表,行吗?
为什么?
答:
不行,Reports的Cno作外键约束外键,必须引用到Courses表的主键Cno,应该先建课程表,
然后再才能对表Report的Cno作外键约束。
(C)对INSERT,自己举几个违反约束条件(数据类型、主键约束、非空约束、外键约束、CHECK约束)的例子,并说明理由。
1数据类型
INSERT
INTOStudent(SnoSname,Ssex,Sage,Dn。
VALUESS11'
'张三,'男','二十','D01')
Sage的数据类型是INT,INSERT失败
2主键不能为空或重复:
INSERTINTOdeptsVALUES(NULL,'自动化’)
INSERT失败,主键Dno不能为空。
INSERTINTOdeptsVALUES('D03','数学'),('D03','历史')
INSERT失败,主键Dno不能重复。
3非空约束
如执行以下命令会违反非空约束。
因为Sname属性是非空的。
INSERT
INTOStudent(SnoSsex,Sage,Dn。
VALUESS01',‘男','21','D01')
不能将值NULL插入列’Sname',因为Sname属性是非空约束。
INSERT失败。
4外键约束
INSERT
INTOStudent(SnqSname,Ssex,Sage,Dn。
VALUESS07','李四','男',20,'D11')
Student外键Dno受Depts的主键Dno的约束,Depts中的Dno没有’D11',不能在Student表插入’D11'
5CHECK勺束
INSERT
INTOReports
VALUES('S01','C02',120')
不能将值120插入列'Grade'违反CHEC&Grade>=0ANDGrade<=100),INSERT失败
上例中的第一行代码的主键值为空,第二行代码的主键值重复,故插入操作失败。
(6)分离数据库、复制数据库存储文件、附加数据库
(7)将调试好的正确命令代码及数据库存储文件保存到自己的备份盘(方便下次实验使用)
2、课本中的习题(零件供应数据库(SPJ_Mis__2018):
4个数据表)
(1)建立零件供应数据库(SPJ_Mis__2018)
USEmaster
GO
CREATEDATABASESPJ_Mis_2018
ON
(
NAMEstudent_Data,
FILENAME='E:
\SQL_DATABASE\',
SIZE=10,
MAXSIZE=50,
FILEGROWT=5)
LOGON
(NAME'student_Log',
FILENAME='E:
\SQL_DATABASE\',
SIZE=5MB
MAXSIZE=25MB
FILEGROWT=5MB
)
GO
(2)调用数据库
useSPJMis2018
GO
(3)分别建立4个数据表的表结构
CREATETAB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 实验 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)