数据库和基本表的创建数据库实验1.docx

上传人:b****6 文档编号:7269497 上传时间:2023-01-22 格式:DOCX 页数:22 大小:2.19MB
下载 相关 举报
数据库和基本表的创建数据库实验1.docx_第1页
第1页 / 共22页
数据库和基本表的创建数据库实验1.docx_第2页
第2页 / 共22页
数据库和基本表的创建数据库实验1.docx_第3页
第3页 / 共22页
数据库和基本表的创建数据库实验1.docx_第4页
第4页 / 共22页
数据库和基本表的创建数据库实验1.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数据库和基本表的创建数据库实验1.docx

《数据库和基本表的创建数据库实验1.docx》由会员分享,可在线阅读,更多相关《数据库和基本表的创建数据库实验1.docx(22页珍藏版)》请在冰豆网上搜索。

数据库和基本表的创建数据库实验1.docx

数据库和基本表的创建数据库实验1

 

数据库基础与实践实验报告

 

实验一数据库和基本表的创建

 

班级:

惠普测试142

学号:

**********

姓名:

***

日期:

2016.9.25

一、实验目的与要求

⏹熟练掌握使用企业管理器创建和管理数据库。

⏹熟练掌握使用企业管理器创建、修改和删除表。

⏹熟练掌握使用企业管理器插入、修改和删除表数据。

二、实验内容和步骤

(一)使用企业管理器完成数据库与基本表的创建

1、启动企业管理器,创建产品销售数据库CPXS:

数据文件初始大小为5MB,最大大小50MB,增长方式按10%比例增长;日志文件初始为2MB,最大可增长到10MB,按2MB增长;其余参数取默认值。

数据文件操作截图

日志文件操作截图

2、CPXS数据库包含如下三个表:

1)CP(产品编号,产品名称,价格,库存量)

2)XSS(客户编号,客户名称,地区,负责人,电话)

3)CPXSB(产品编号,客户编号,销售日期,数量,销售额)其中,产品编号,客户编号为两个外键。

操作截图

(二)使用SQL完成的实验内容和步骤

1、创建名称为数据库sch_id的数据库(其中ID为本人学号的后三位),并使用该数据库。

代码:

CREATEDATABASEsch_id

USEsch_id

运行结果截图:

2、利用SQL语句定义6张基本表:

D、T、S、C、TC、TD,并根据要求添加各类约束。

(1)专业表:

D(dno,dn),dno表示专业代码,两个字符,主码;dn表示专业名称,可变长度最多30个字符,不能取空值,不能取重复值。

基本表D创建代码:

CREATETABLED(

dnochar

(2)PRIMARYKEY,

dnvarchar(30)UNIQUENOTNULL

运行结果截图:

(2)教师表:

T(tno,tn,sex,age,prof,sal,comm,dno),tno表示教师号,4个字符,主码;tn表示教师姓名,8个字符,不能为空值;sex表示性别,不能为空值,取值只能是“男”或“女”;age表示年龄,整型值,取值范围在20到70之间;prof表示职称,6个字符,取值只能是“教授”、“副教授”、“讲师”、“助教”其中之一。

Sal表示基本工资,浮点型,值不能少于800;comm表示奖金,浮点型,值不能少于1200;dno表示教师专业代码,两个字符50,外码。

基本表T创建代码:

CREATETABLET(

tnochar(4)PRIMARYKEY,

tnchar(8)NOTNULL,

sexchar

(2)NOTNULLCHECK(sexIN('男','女')),

ageintCHECK(ageBETWEEN20AND70),

profchar(6)CHECK(profIN('教授','副教授','讲师','助教')),

salfloatCHECK(sal>=800),

commfloatCHECK(comm>=1200),

dnochar

(2)FOREIGNKEYREFERENCESD(dno)

运行结果截图:

(3)学生表S(sno,sn,sex,age,dno)sno表示学号,10个字符,主码;sn表示学生姓名,8个字符,不能为空值;sex表示性别,不能为空值,取值只能是“男”或“女”;age表示年龄,整型值,取值范围在15到40之间;dno表示学生的专业代码,两个字符50,外码。

基本表S创建代码:

CREATETABLES(

snochar(10)PRIMARYKEY,

snchar(8)NOTNULL,

sexchar

(2)NOTNULLCHECK(sexIN('男','女')),

ageintCHECK(ageBETWEEN15AND40),

dnochar

(2)FOREIGNKEYREFERENCESD(dno)

运行结果截图:

(4)课程表C(cno,cn,ct)cno表示课程号,3个字符,主码;cn表示课程名,可变长度最多20个字符,不能取空值,不能取重复值;ct表示课时,整型值,取值范围在32至80之间。

基本表C创建代码:

CREATETABLEC(

cnochar(3)PRIMARYKEY,

cnvarchar(20)UNIQUENOTNULL,

ctintCHECK(ctBETWEEN32AND80)

运行结果截图:

(5)选课关系表SC(sno,cno,score)sno表示学号,10个字符,外码;cno表示课程号,3个字符,外码;score表示成绩,浮点型,取值在0到100之间。

(sno,cno)为主码。

基本表SC创建代码:

CREATETABLESC(

snochar(10)FOREIGNKEYREFERENCESS(sno),

cnochar(3)FOREIGNKEYREFERENCESC(cno),

scorefloatCHECK(scoreBETWEEN0AND100)

运行结果截图:

(6)授课关系TC(tno,cno)tno表示教师号,4个字符,外码;cno表示课程号,3个字符,外码;(tno,cno)为主码。

基本表TC创建代码:

CREATETABLETC(

tnochar(4)FOREIGNKEYREFERENCEST(tno),

cnochar(3)FOREIGNKEYREFERENCESC(cno),

CONSTRAINTtc_pkPRIMARYKEY(tno,cno)

运行结果截图:

3、利用企业管理器进行6张表中元组的插入、修改、删除,分别测试每张表中的各个约束。

(1)基本表D约束测试:

INSERTINTOD(dno,dn)VALUES('08','软件开发')

INSERTINTOD(dno,dn)VALUES('09','软件测试')

INSERTINTOD(dno,dn)VALUES('10',null)--dn非空测试

INSERTINTOD(dno,dn)VALUES('08','计算机')--dno主键测试

INSERTINTOD(dno,dn)VALUES('11','软件测试')--dn唯一测试

UPDATEDSETdno='11'WHEREdn='软件测试'--dno主键测试

UPDATEDSETdn=NULLWHEREdno='09'--dn非空测试

UPDATEDSETdn='软件测试'WHEREdno='08'--dn唯一测试

SELECT*FROMD

(2)基本表T约束测试:

INSERTINTOTVALUES('0001','庄梦蝶','女',20,'讲师',3000.0,3600.0,'08')

INSERTINTOTVALUES('0001','庄晓蝶','女',21,'讲师',3600.0,3000.0,'09')--tno主键测试

INSERTINTOTVALUES('0002',null,'女',21,'讲师',3600.0,3000.0,'09')--tn非空测试

INSERTINTOTVALUES('0002','庄晓蝶',null,21,'讲师',3600.0,3000.0,'09')--sex非空测试

INSERTINTOTVALUES('0002','庄晓蝶','二',21,'讲师',3600.0,3000.0,'09')--sexCHECK约束测试

INSERTINTOTVALUES('0002','庄晓蝶','女',18,'讲师',3600.0,3000.0,'09')--ageCHECK约束测试

INSERTINTOTVALUES('0002','庄晓蝶','女',21,'老师',3600.0,3000.0,'09')--profCHECK约束测试

INSERTINTOTVALUES('0002','庄晓蝶','女',21,'讲师',700.0,3000.0,'09')--salCHECK约束测试

INSERTINTOTVALUES('0002','庄晓蝶','女',21,'讲师',3600.0,800.0,'09')--commCHECK约束测试

INSERTINTOTVALUES('0002','庄晓蝶','女',21,'讲师',3600.0,3600.0,'11')

INSERTINTOTVALUES('0003','单雨童','男',26,'教授',4000.0,3600.0,'11')

INSERTINTOTVALUES('0004','单雨真','男',20,'助教',2000.0,2000.0,'01')--dno外键测试

INSERTINTOTVALUES('0004','单雨真','男',20,'助教',2000.0,2000.0,'08')

UPDATETSETtno='0001'WHEREtn='单雨真'--tno主键测试

UPDATETSETtn=NULLWHEREtn='单雨真'--tn非空测试

UPDATETSETsex=NULLWHEREtn='单雨真'--sex非空测试

UPDATETSETsex='1'WHEREtn='单雨真'--sexCHECK约束测试

UPDATETSETage=1WHEREtn='单雨童'--ageCHECK约束测试

UPDATETSETprof='老师'WHEREtn='单雨童'--profCHECK约束测试

UPDATETSETsal=799.0WHEREtn='单雨童'--salCHECK约束测试

UPDATETSETcomm=1000.0WHEREtn='单雨童'--profCHECK约束测试

UPDATETSETdno='07'WHEREtn='单雨童'--dno外键测试

(3)基本表S约束测试:

INSERTINTOSVALUES('1408090213','百里登风','男',21,'08')

INSERTINTOSVALUES('1408090213','良垣','男',21,'08')--sno主键测试

INSERTINTOSVALUES('1408090213',NULL,'男',21,'08')--sn非空测试

INSERTINTOSVALUES('1408090213','百里登风',NULL,21,'08')--sex非空测试

INSERTINTOSVALUES('1408090213','百里登风','1',21,'08')--sexCHECK约束测试

INSERTINTOSVALUES('1408090213','百里登风','男',13,'08')--ageCHECK约束测试

INSERTINTOSVALUES('1408090213','百里登风','男',21,'01')--dno外键测试

INSERTINTOSVALUES('1408090208','良莠','女',20,'09')

INSERTINTOSVALUES('1408090303','良垣','男',21,'08')

UPDATESSETsno='1408090303'WHEREsn='百里登风'--sno主键测试

UPDATESSETsn=NULLWHEREsn='百里登风'--sn非空测试

UPDATESSETsex=NULLWHEREsn='百里登风'--sex非空测试

UPDATESSETsex='1'WHEREsn='百里登风'--sexCHECK约束测试

UPDATESSETage=100WHEREsn='百里登风'--ageCHECK约束测试

UPDATESSETdno='03'WHEREsn='百里登风'--dno外键测试

UPDATESSETdno='09'WHEREsn='百里登风'

(4)基本表C约束测试:

INSERTINTOCVALUES('001','Python',48)

INSERTINTOCVALUES('002','数据库',48)

INSERTINTOCVALUES('003','Python',48)--cn唯一约束测试

INSERTINTOCVALUES('003',NULL,48)--cn非空测试

INSERTINTOCVALUES('001','JAVA',48)--cno主键测试

INSERTINTOCVALUES('004','C语言',24)--ctCHECK约束测试

INSERTINTOCVALUES('005','JAVA',36)

UPDATECSETcn='JAVA'WHEREcno='001'--cn唯一约束测试

UPDATECSETcn=NULLWHEREcno='001'--cn非空测试

UPDATECSETcno='002'WHEREcn='JAVA'--cno主键测试

UPDATECSETct=24WHEREcno='001'--ctCHECK约束测试

UPDATECSETct=36WHEREcno='001'

(5)基本表SC约束测试:

INSERTINTOSCVALUES('1408090213','001','100')

INSERTINTOSCVALUES('1508090213','001','100')--sno外键测试

INSERTINTOSCVALUES('1408090208','003','100')--cno外键测试

INSERTINTOSCVALUES('1408090208','005','101')--score约束测试

INSERTINTOSCVALUES('1408090208','005','100')--cno外键测试

INSERTINTOSCVALUES('1408090303','001','98')

INSERTINTOSCVALUES('1408090303','002','99')

INSERTINTOSCVALUES('1408090303','005','97')

UPDATESCSETscore=101WHEREsno='1408090213'ANDcno='001'--score约束测试

(6)基本表TC约束测试:

INSERTINTOTCVALUES('0001','001')

INSERTINTOTCVALUES('0002','005')

INSERTINTOTCVALUES('0002','002')

INSERTINTOTCVALUES('0003','005')

INSERTINTOTCVALUES('0004','005')

INSERTINTOTCVALUES('0002','005')--主键测试

三、讨论题

1.CP表是空表(没有任何元组),XSS表也是空表,是否能首先向CPXSB表中先添加元组。

如果不能添加元组请说明原因,如果能添加请展示添加的元组。

不能。

存在外键约束。

2、向CP表中添加一条记录,XSS表仍是空表,是否能向CPXSB表中添加元组。

如果不能添加元组请说明原因,如果能添加请展示添加的元组。

不能。

存在外键约束。

3、向CP表中再添加一条记录,向XSS表中添加一条记录,向CPXSB表中添加元组。

说明能添加的元组的属性取值规律。

CP:

XSS:

CPXSB:

由于CPXSB的外键产品编号和客户编号参照了CP的主键产品编号和XSS的主键客户编号,所以只能插入产品编号存在于CP表且客户编号存在于XSS表,并满足约束条件的元组。

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

当前位置:首页 > 自然科学 > 物理

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

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