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图,并转换成等价的关系模型结构。
答案:
图略。
转换为等价的关系模型结构如下:
借书人(借书证号,姓名,单位)
图书(书号,书名,数量,位置,出版社名)
出版社(出版社名,电报,电话,邮编,地址)
借阅(借书证号,书号,借书日期,还书日期)
版权声明:本文标题:sql数据库建表 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702866593h433837.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论