数据库系统原理实验一参考答案.docx

上传人:b****5 文档编号:3327769 上传时间:2022-11-21 格式:DOCX 页数:18 大小:243.91KB
下载 相关 举报
数据库系统原理实验一参考答案.docx_第1页
第1页 / 共18页
数据库系统原理实验一参考答案.docx_第2页
第2页 / 共18页
数据库系统原理实验一参考答案.docx_第3页
第3页 / 共18页
数据库系统原理实验一参考答案.docx_第4页
第4页 / 共18页
数据库系统原理实验一参考答案.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据库系统原理实验一参考答案.docx

《数据库系统原理实验一参考答案.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验一参考答案.docx(18页珍藏版)》请在冰豆网上搜索。

数据库系统原理实验一参考答案.docx

数据库系统原理实验一参考答案

 

数据库系统原理实验一参考答案(总13页)

姓名:

专业:

班级:

学号:

科目:

数据库系统原理

实验日期:

实验题目:

实验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、课本中的习题(零件供应数据库(SPJ_Mis__2018):

4个数据表)

(说明:

要求同上,各表模拟数据可参照课本P110)

【实验过程】

1、

(1)建立数据库(CREATEDATABASE):

Students_Mis_2018

USEmaster

GO

CREATEDATABASEStudents_Mis_2018

ON

NAME=Students_Data,

FILENAME='E:

\SQL_DATEBASE\',

SIZE=10,

MAXSIZE=50,

FILEGROWTH=5

LOGON

NAME='Students_Log',

FILENAME='E:

\SQL_DATEBASE\',

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、课本中的习题(零件供应数据库(SPJ_Mis__2018):

4个数据表)

(1)建立零件供应数据库(SPJ_Mis__2018)

USEmaster

GO

CREATEDATABASESPJ_Mis_2018

ON

NAME=student_Data,

FILENAME='E:

\SQL_DATABASE\',

SIZE=10,

MAXSIZE=50,

FILEGROWTH=5)

LOGON

(NAME='student_Log',

FILENAME='E:

\SQL_DATABASE\',

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

【实验结果及分析】

【教师评语和成绩】

 

成绩:

指导教师:

日期:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1