admin 管理员组

文章数量: 887021


2023年12月18日发(作者:php中%是什么意思)

1.写出创建如下三张表的SQL语句,要求在定义表的同时定义数据的完整性约束:

(1)“图书表”结构如下:

书号:统一字符编码定长类型,长度为6,主键;

书名:统一字符编码可变长类型,长度为30,非空;

第一作者:普通编码定长字符类型,长度为10,非空;

出版日期:小日期时间型;

价格:定点小数,小数部分1位,整数部分3位。

(2)“书店表”结构如下:

书店编号:统一字符编码定长类型,长度为6,主键;

店名:统一字符编码可变长类型,长度为30,非空;

电话:普通编码定长字符类型,8位长,每一位的取值均是0~9的数字;

地址:普通编码可变长字符类型,40位长。

邮政编码:普通编码定长字符类型,6位长。

(3)“图书销售表”结构如下:

书号:统一字符编码定长类型,长度为6,非空;

书店编号:统一字符编码定长类型,长度为6,非空;

销售日期:小日期时间型,非空;

销售数量:小整型,大于等于1。

主键为(书号,书店编号,销售日期);

其中“书号”为引用“图书表”的“书号”的外键;

“书店编号”为引用“书店表”的“书店编号”的外键。

答:

CREATE TABLE 图书表 (

书号 nchar(6) primary key,

书名 nvarchar(30) not null,

第一作者 char(10) not null,

出版日期 smalldatetime,

价格 numeric(4,1))

CREATE TABLE 书店表 (

书店编号 nchar(6) primary key,

店名 nvarchar(30) not null,

电话 char(8) check (电话 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),

地址 varchar(40),

邮政编码 char(6))

CREATE TABLE 图书销售表 (

书号 nchar(6) not null,

书店编号 nchar(6) not null,

销售日期 smalldatetime not null,

销售数量 smallint check(销售数量>=1),

primary key(书号,书店编号,销售日期),

foreign key(书号) references 图书表(书号),

foreign key(书店编号) references 书店表(书店编号))

1.1为图书表添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于等于1000。

答:ALTER TABLE 图书表

ADD 印刷数量 int check (印刷数量>=1000)

1.2删除“书店表”中的“邮政编码”列。

答:ALTER TABLE 书店表

DROP COLUMN 邮政编码

1.3将“图书销售表”中的“销售数量”列的数据类型改为整型。

答:ALTER TABLE 图书销售表

ALTER COLUMN 销售数量 int

2.设某商业集团数据库中有三个实体集:

商店:商店编号、商店名、地址

商品:商品编号、商品名、规格、单价

职工:职工编号、姓名、性别、业绩

每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品时有月销售量;每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。

(1)试画出E-R图,要求在图上注明属性及联系的类型;

(2)将E-R图转换成关系模型,并注明主码;

(3)根据实际情况,使用SQL创建表,包括各种约束;

(4)用SQL语句查找大于平均业绩的职工姓名;

(5)用SQL语句创建一个业绩大于100的所有男职工信息的视图。

(1)(5分)

商店编号商店名地址M商店1聘期月销售量销售聘用月薪NN商品职工职工编号姓名性别业绩商品编号商品名规格单价

(2)这个E-R图可转换为4个关系模式:(8分)

商店(商店编号,商店名,地址) (2分)

职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪) (2分)

商品(商品编号,商品名,规格,单价) (2分)

销售(商店编号,商品编号,月销售量) (2分)

(3) create shop(Sid char(3) primary key, Sname char(10), Sadd

char(50)); (2分)

create employee(Eid char(3) primary key, Ename char(5), Esex

char(1), Each real, Sid char(3),Ere date, Esa int, foreign key (Sid)

references (shop)); (2分)

create commodity(Cid char(3) primary key, Cname char(10), Csp

create vendition(Sid char(3), Cid char(3), Vse int, primary key

char(10), Cpr real); (2分)

(Sid,Cid), foreign key (Sid) references (shop), foreign key (Cid)

references (commodity)); (2分)

(4)(4)select Ename from employee x where Each>=(select avg(Each)

from employee y where =);

(5) create view Eman(Eid, Ename, Esex, Each, Sid, Ere, Esa)

3. (共10分)设学校数据库中有两个实体集:

学生表:学号、姓名、班级

课程表:课程号、课程名称、教师

某学校有若干学生,每个学生可以选修多门课程,学校有若干课程供学生选修,每门课程可以供多个学生选修,要建立该学校学生选修课程的数据库,请设计:

(1)试画出E-R图,要求在图上注明属性及联系的类型;

(2)将E-R图转换成关系模型,并注明主码;

(2)这个E-R图可转换为4个关系模式:(12分)

商店(商店编号,商店名,地址) (3分)

职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪) (3分)

商品(商品编号,商品名,规格,单价) (3分)

销售(商店编号,商品编号,月销售量) (3分)

As select Eid, Ename, Esex, Each, Sid, Ere, Es from employee

where Each>100 and Esex=’男’;(2分)

(1)(4分)

学号(2)这个E-R图可转换为3个关姓名班级课程表(学号,姓名,班级)

选修(学号,课程号)

学生表M课程表(课程号,课程名称,教师选修N课程表课程名称课程号教师

4.一个图书借阅管理数据库要求提供下述服务:

1)可随时查询书库中现有书籍的品种,数量与存放位置。所有各类书籍均可由书号唯一标识。

2)可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。约定任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。

3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。约定一个出版社可以出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。

根据以上情况,试构造满足需求的E-R图,并转换成等价的关系模型结构。

答案:

图略。

转换为等价的关系模型结构如下:

借书人(借书证号,姓名,单位)

图书(书号,书名,数量,位置,出版社名)

出版社(出版社名,电报,电话,邮编,地址)

借阅(借书证号,书号,借书日期,还书日期)


本文标签: 编号 商店 类型 职工 书籍