数据库系统原理实验一参考答案.docx
- 文档编号:27814315
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:18
- 大小:150.65KB
数据库系统原理实验一参考答案.docx
《数据库系统原理实验一参考答案.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验一参考答案.docx(18页珍藏版)》请在冰豆网上搜索。
数据库系统原理实验一参考答案
姓名:
专业:
班级:
学号:
科目:
数据库系统原理
实验日期:
实验题目:
实验1SQLSERVER的安装及使用,数据库的建立
【实验目的】
安装并熟悉SQLSERVER2008环境,通过实验达到能熟练使用“管理器”及“命令窗口”两种方法,建立数据库及数据库表(表结构和表内容)。
重点注意数据类型及完整性约束(要求作验证)。
使用的SQL命令:
CREATEDATABASE,USE,CREATETABLE,INSERT等。
【实验内容】
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、课本中的习题1.3(零件供应数据库(SPJ_Mis__2018):
4个数据表)
(说明:
要求同上,各表模拟数据可参照课本P110)
【实验过程】
1、
(1)建立数据库(CREATEDATABASE):
Students_Mis_2018
USEmaster
GO
CREATEDATABASEStudents_Mis_2018
ON
(
NAME=Students_Data,
FILENAME='E:
\SQL_DATEBASE\Students_Mis_data.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5
)
LOGON
(
NAME='Students_Log',
FILENAME='E:
\SQL_DATEBASE\Students_Mis_log.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB
)
GO
(2)调用(USE)数据库:
Students_Mis_2018
useStudents_Mis_2018
GO
(3)分别建立4个数据表的表结构(CREATETABLE):
系(Depts),学生(Students),课程(Courses),选课(Reports)
CREATETABLEDepts
(
DnoCHAR(5)PRIMARYKEY,
DnameCHAR(20)NOTNULL
)
GO
CREATETABLEStudents
(
SnoCHAR(5)PRIMARYKEY,
SnameCHAR(20)NOTNULL,
SsexCHAR
(2),
SageINT,
DnoCHAR(5),
CONSTRAINTFK_DnoFOREIGNKEY(Dno)REFERENCESDepts
)
GO
CREATETABLECourses
(
CnoCHAR(6)PRIMARYKEY,
CnameCHAR(20),
Pre_CnoCHAR(6),
CreditsINT
)
GO
CREATETABLEReports
(
SnoCHAR(5),
CnoCHAR(6),
GradeINTCHECK(Grade>=0ANDGrade<=100),
PRIMARYKEY(Sno,Cno),
CONSTRAINTStudent_ReportFOREIGNKEY(Sno)REFERENCESStudents,
CONSTRAINTReport_CourseFOREIGNKEY(Cno)REFERENCESCourses
)
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表的主键Dno。
必须先建立系(Depts)表,后才能建立学生(Students)表。
(B)若先建立选课(Reports)表,后建立课程(Courses)表,行吗?
为什么?
答:
不行,Reports的Cno作外键约束外键,必须引用到Courses表的主键Cno,应该先建课程表,然后再才能对表Report的Cno作外键约束。
(C)对INSERT,自己举几个违反约束条件(数据类型、主键约束、非空约束、外键约束、CHECK约束)的例子,并说明理由。
①数据类型
INSERT
INTOStudent(Sno,Sname,Ssex,Sage,Dno)
VALUES('S11','张三,'男','二十','D01')
Sage的数据类型是INT,INSERT失败
②主键不能为空或重复:
INSERTINTOdeptsVALUES(NULL,'自动化')
INSERT失败,主键Dno不能为空。
INSERTINTOdeptsVALUES('D03','数学'),('D03','历史')
INSERT失败,主键Dno不能重复。
③非空约束
如执行以下命令会违反非空约束。
因为Sname属性是非空的。
INSERT
INTOStudent(Sno,Ssex,Sage,Dno)
VALUES('S01','男','21','D01')
不能将值NULL插入列'Sname',因为Sname属性是非空约束。
INSERT失败。
④外键约束
INSERT
INTOStudent(Sno,Sname,Ssex,Sage,Dno)
VALUES('S07','李四','男',20,'D11')
Student外键Dno受Depts的主键Dno的约束,Depts中的Dno没有’D11’,不能在Student表插入’D11’
⑤CHECK约束
INSERT
INTOReports
VALUES('S01','C02',120')
不能将值120插入列'Grade'违反CHECK(Grade>=0ANDGrade<=100),INSERT失败
上例中的第一行代码的主键值为空,第二行代码的主键值重复,故插入操作失败。
(6)分离数据库、复制数据库存储文件、附加数据库
(7)将调试好的正确命令代码及数据库存储文件保存到自己的备份盘(方便下次实验使用)
2、课本中的习题1.3(零件供应数据库(SPJ_Mis__2018):
4个数据表)
(1)建立零件供应数据库(SPJ_Mis__2018)
USEmaster
GO
CREATEDATABASESPJ_Mis_2018
ON
(
NAME=student_Data,
FILENAME='E:
\SQL_DATABASE\SPJ_Mis_data.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON
(NAME='student_Log',
FILENAME='E:
\SQL_DATABASE\SPJ_Mis_log.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB
)
GO
(2)调用数据库
useSPJ_Mis_2018
GO
(3)分别建立4个数据表的表结构
CREATETABLES
(
SnoCHAR(5)PRIMARYKEY,
SnameCHAR(20)NOTNULL,
StatusINT,
SCityCHAR(20)
)
GO
CREATETABLEP
(
PnoCHAR(6)PRIMARYKEY,
PnameCHAR(20),
ColorCHAR(9),
WeightFLOAT
)
GO
CREATETABLEJ
(
JnoCHAR(5)PRIMARYKEY,
JnameCHAR(20),
JCityCHAR(20)
)
GO
CREATETABLESPJ
(
SnoCHAR(5),
PnoCHAR(6),
JnoCHAR(5),
QTYINTCHECK(QTY>=0),
PRIMARYKEY(Sno,Pno,Jno),
CONSTRAINTS_SPJFOREIGNKEY(Sno)REFERENCESS,
CONSTRAINTP_SPJFOREIGNKEY(Pno)REFERENCESP,
CONSTRAINTJ_SPJFOREIGNKEY(Jno)REFERENCESJ
)
GO
(4)插入数据
INSERT
INTOS
VALUES('S1','利群',30,'广州'),
('S2','同方',20,'杭州'),
('S3','天远',60,'北京'),
('S4','精诚',10,'上海'),
('S5','华缘',80,'重庆'),
('S6','弘治',50,'太原')
SELECT*
FROMS
INSERT
INTOP
VALUES('P1','钉子','绿',34),
('P2','螺丝','蓝',25),
('P3','螺母','橙',12),
('P4','螺栓','紫',27),
('P5','螺钉','红',53),
('P6','齿轮','绿',17),
('P7','传送带','红',28)
SELECT*
FROMP
INSERT
INTOJ
VALUES('J1','一建','济南'),
('J2','三汽','广州'),
('J3','拉链厂','杭州'),
('J4','无线电厂','北京'),
('J5','机床厂','上海'),
('J6','螺钉厂','重庆'),
('J7','机械厂','天津')
SELECT*
FROMJ
INSERT
INTOSPJ
VALUES('S1','P1','j3',340),
('S1','P1','j2',250),
('S1','P2','j5',120),
('S1','P2','j6',270),
('S1','P2','j7',530)
INSERT
INTOSPJ
VALUES('S2','P2','j1',170),
('S2','P3','j2',280),
('S2','P4','j3',100),
('S2','P4','j4',120),
('S2','P5','j7',310),
('S2','P5','j5',560),
('S2','P6','j6',200)
INSERT
INTOSPJ
VALUES('S3','P7','j1',300),
('S3','P1','j1',400),
('S4','P3','j2',410),
('S4','P4','j3',330),
('S4','P4','j4',650),
('S4','P5','j4',150)
INSERT
INTOSPJ
VALUES('S5','P7','j5',230),
('S5','P7','j7',280),
('S6','P2','j2',350),
('S6','P2','j3',420),
('S6','P6','j1',310)
SELECT*
FROMSPJ
【实验结果及分析】
【教师评语和成绩】
成绩:
指导教师:
日期:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 实验 参考答案