1、数据库和基本表的创建数据库实验1数据库基础与实践实验报告实验一 数据库和基本表的创建 班级:惠普测试142 学号:* 姓名:*日期:2016.9.25一、实验目的与要求熟练掌握使用企业管理器创建和管理数据库。熟练掌握使用企业管理器创建、修改和删除表。熟练掌握使用企业管理器插入、修改和删除表数据。二、实验内容和步骤(一) 使用企业管理器完成数据库与基本表的创建1、启动企业管理器,创建产品销售数据库CPXS:数据文件初始大小为5MB,最大大小50MB,增长方式按10%比例增长;日志文件初始为2MB,最大可增长到10MB,按2MB增长;其余参数取默认值。数据文件操作截图日志文件操作截图2、CPXS数
2、据库包含如下三个表:1)CP(产品编号,产品名称,价格,库存量)2) XSS(客户编号,客户名称,地区,负责人,电话) 3)CPXSB(产品编号,客户编号,销售日期,数量,销售额)其中,产品编号,客户编号为两个外键。操作截图(二)使用SQL完成的实验内容和步骤1、创建名称为数据库sch_id的数据库(其中ID为本人学号的后三位),并使用该数据库。代码:CREATE DATABASE sch_idUSE sch_id运行结果截图:2、利用SQL语句定义6张基本表:D、T、S、C、TC、TD,并根据要求添加各类约束。(1) 专业表:D(dno, dn),dno表示专业代码,两个字符,主码;dn表示
3、专业名称,可变长度最多30个字符,不能取空值,不能取重复值。基本表D创建代码:CREATE TABLE D(dno char(2) PRIMARY KEY,dn varchar(30) UNIQUE NOT NULL)运行结果截图:(2) 教师表:T(tno,tn,sex,age,prof,sal,comm,dno),tno表示教师号,4个字符,主码;tn表示教师姓名,8个字符,不能为空值;sex表示性别,不能为空值,取值只能是“男”或“女”;age表示年龄,整型值,取值范围在20到70之间;prof表示职称,6个字符,取值只能是“教授”、“副教授”、“讲师”、“助教”其中之一。Sal表示基本
4、工资,浮点型,值不能少于800;comm表示奖金,浮点型,值不能少于1200;dno表示教师专业代码,两个字符50,外码。基本表T创建代码:CREATE TABLE T(tno char(4) PRIMARY KEY,tn char(8) NOT NULL,sex char(2) NOT NULL CHECK(sex IN(男,女),age int CHECK(age BETWEEN 20 AND 70),prof char(6) CHECK(prof IN(教授,副教授,讲师,助教),sal float CHECK (sal=800),comm float CHECK (comm=1200)
5、,dno char(2) FOREIGN KEY REFERENCES D(dno)运行结果截图:(3) 学生表S(sno, sn, sex, age, dno)sno表示学号,10个字符,主码;sn表示学生姓名,8个字符,不能为空值;sex表示性别,不能为空值,取值只能是“男”或“女”;age表示年龄,整型值,取值范围在15到40之间;dno表示学生的专业代码,两个字符50,外码。基本表S创建代码:CREATE TABLE S(sno char(10)PRIMARY KEY,sn char(8)NOT NULL,sex char(2)NOT NULL CHECK(sex IN(男,女),ag
6、e int CHECK(age BETWEEN 15 AND 40),dno char(2)FOREIGN KEY REFERENCES D(dno)运行结果截图:(4) 课程表C(cno, cn, ct) cno表示课程号,3个字符,主码;cn表示课程名,可变长度最多20个字符,不能取空值,不能取重复值;ct表示课时,整型值,取值范围在32至80之间。基本表C创建代码:CREATE TABLE C(cno char(3) PRIMARY KEY,cn varchar(20)UNIQUE NOT NULL,ct int CHECK(ct BETWEEN 32 AND 80)运行结果截图:(5)
7、 选课关系表SC(sno, cno, score)sno表示学号,10个字符,外码;cno表示课程号,3个字符,外码;score表示成绩,浮点型, 取值在0到100之间。(sno, cno)为主码。基本表SC创建代码:CREATE TABLE SC(sno char(10) FOREIGN KEY REFERENCES S(sno),cno char(3) FOREIGN KEY REFERENCES C(cno),score float CHECK(score BETWEEN 0 AND 100)运行结果截图:(6) 授课关系TC(tno, cno)tno表示教师号,4个字符,外码;cno表
8、示课程号,3个字符,外码;(tno,cno)为主码。基本表TC创建代码:CREATE TABLE TC(tno char(4)FOREIGN KEY REFERENCES T(tno),cno char(3)FOREIGN KEY REFERENCES C(cno),CONSTRAINT tc_pk PRIMARY KEY (tno,cno)运行结果截图:3、利用企业管理器进行6张表中元组的插入、修改、删除,分别测试每张表中的各个约束。(1) 基本表D约束测试:INSERT INTO D(dno,dn)VALUES (08,软件开发)INSERT INTO D(dno,dn)VALUES (0
9、9,软件测试)INSERT INTO D(dno,dn)VALUES (10,null) -dn非空测试INSERT INTO D(dno,dn)VALUES (08,计算机) -dno主键测试INSERT INTO D(dno,dn)VALUES (11,软件测试) -dn唯一测试UPDATE D SET dno=11 WHERE dn=软件测试 -dno主键测试UPDATE D SET dn=NULL WHERE dno=09 -dn非空测试UPDATE D SET dn=软件测试 WHERE dno=08 -dn唯一测试SELECT * FROM D(2) 基本表T约束测试:INSERT
10、 INTO T VALUES (0001,庄梦蝶,女,20,讲师,3000.0,3600.0,08)INSERT INTO T VALUES (0001,庄晓蝶,女,21,讲师,3600.0,3000.0,09) -tno主键测试INSERT INTO T VALUES (0002,null,女,21,讲师,3600.0,3000.0,09) -tn非空测试INSERT INTO T VALUES (0002,庄晓蝶,null,21,讲师,3600.0,3000.0,09) -sex非空测试INSERT INTO T VALUES (0002,庄晓蝶,二,21,讲师,3600.0,3000.0
11、,09) -sex CHECK约束测试INSERT INTO T VALUES (0002,庄晓蝶,女,18,讲师,3600.0,3000.0,09) -age CHECK约束测试 INSERT INTO T VALUES (0002,庄晓蝶,女,21,老师,3600.0,3000.0,09) -prof CHECK约束测试INSERT INTO T VALUES (0002,庄晓蝶,女,21,讲师, 700.0,3000.0,09) -sal CHECK约束测试INSERT INTO T VALUES (0002,庄晓蝶,女,21,讲师,3600.0, 800.0,09) -comm CHE
12、CK约束测试INSERT INTO T VALUES (0002,庄晓蝶,女,21,讲师,3600.0,3600.0,11)INSERT INTO T VALUES (0003,单雨童,男,26,教授,4000.0,3600.0,11)INSERT INTO T VALUES (0004,单雨真,男,20,助教,2000.0,2000.0,01) -dno外键测试INSERT INTO T VALUES (0004,单雨真,男,20,助教,2000.0,2000.0,08) UPDATE T SET tno=0001 WHERE tn=单雨真 -tno主键测试UPDATE T SET tn=N
13、ULL WHERE tn=单雨真 -tn非空测试UPDATE T SET sex=NULL WHERE tn=单雨真 -sex非空测试UPDATE T SET sex=1 WHERE tn=单雨真 -sex CHECK约束测试UPDATE T SET age=1 WHERE tn=单雨童 -age CHECK约束测试UPDATE T SET prof=老师 WHERE tn=单雨童 -prof CHECK约束测试UPDATE T SET sal=799.0 WHERE tn=单雨童 -sal CHECK约束测试UPDATE T SET comm=1000.0 WHERE tn=单雨童 -pro
14、f CHECK约束测试UPDATE T SET dno=07 WHERE tn=单雨童 -dno外键测试(3) 基本表S约束测试:INSERT INTO S VALUES(1408090213,百里登风,男,21,08)INSERT INTO S VALUES(1408090213,良垣,男,21,08) -sno主键测试INSERT INTO S VALUES(1408090213,NULL,男,21,08) -sn非空测试INSERT INTO S VALUES(1408090213,百里登风,NULL,21,08) -sex非空测试INSERT INTO S VALUES(1408090
15、213,百里登风,1,21,08) -sex CHECK约束测试INSERT INTO S VALUES(1408090213,百里登风,男,13,08) -age CHECK约束测试INSERT INTO S VALUES(1408090213,百里登风,男,21,01) -dno 外键测试INSERT INTO S VALUES(1408090208,良莠,女,20,09)INSERT INTO S VALUES(1408090303,良垣,男,21,08)UPDATE S SET sno=1408090303 WHERE sn=百里登风 -sno主键测试UPDATE S SET sn=N
16、ULL WHERE sn=百里登风 -sn非空测试UPDATE S SET sex=NULL WHERE sn=百里登风 -sex非空测试UPDATE S SET sex=1 WHERE sn=百里登风 -sex CHECK约束测试UPDATE S SET age=100 WHERE sn=百里登风 -age CHECK约束测试UPDATE S SET dno=03 WHERE sn=百里登风 -dno 外键测试UPDATE S SET dno=09 WHERE sn=百里登风 (4) 基本表C约束测试:INSERT INTO C VALUES(001,Python,48)INSERT INT
17、O C VALUES(002,数据库,48)INSERT INTO C VALUES(003,Python,48) -cn唯一约束测试INSERT INTO C VALUES(003,NULL,48) -cn非空测试INSERT INTO C VALUES(001,JAVA,48) -cno主键测试INSERT INTO C VALUES(004,C语言,24) -ct CHECK约束测试INSERT INTO C VALUES(005,JAVA,36)UPDATE C SET cn=JAVA WHERE cno=001 -cn唯一约束测试UPDATE C SET cn=NULL WHERE
18、cno=001 -cn非空测试UPDATE C SET cno=002 WHERE cn=JAVA -cno主键测试UPDATE C SET ct=24 WHERE cno=001 -ct CHECK约束测试UPDATE C SET ct=36 WHERE cno=001(5)基本表SC约束测试:INSERT INTO SC VALUES(1408090213,001,100)INSERT INTO SC VALUES(1508090213,001,100)-sno外键测试INSERT INTO SC VALUES(1408090208,003,100)-cno外键测试INSERT INTO
19、SC VALUES(1408090208,005,101)-score约束测试INSERT INTO SC VALUES(1408090208,005,100)-cno外键测试INSERT INTO SC VALUES(1408090303,001,98)INSERT INTO SC VALUES(1408090303,002,99)INSERT INTO SC VALUES(1408090303,005,97)UPDATE SC SET score=101 WHERE sno=1408090213 AND cno=001-score约束测试(6) 基本表TC约束测试:INSERT INTO
20、TC VALUES(0001,001)INSERT INTO TC VALUES(0002,005)INSERT INTO TC VALUES(0002,002)INSERT INTO TC VALUES(0003,005)INSERT INTO TC VALUES(0004,005)INSERT INTO TC VALUES(0002,005)-主键测试三、讨论题1CP表是空表(没有任何元组),XSS表也是空表,是否能首先向CPXSB表中先添加元组。如果不能添加元组请说明原因,如果能添加请展示添加的元组。不能。存在外键约束。2、向CP表中添加一条记录,XSS表仍是空表,是否能向CPXSB表中添加元组。如果不能添加元组请说明原因,如果能添加请展示添加的元组。不能。存在外键约束。3、向CP表中再添加一条记录,向XSS表中添加一条记录,向CPXSB表中添加元组。说明能添加的元组的属性取值规律。CP:XSS:CPXSB:由于CPXSB的外键产品编号和客户编号参照了CP的主键产品编号和XSS的主键客户编号,所以只能插入产品编号存在于CP表且客户编号存在于XSS表,并满足约束条件的元组。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1