您的当前位置:首页正文

sql数据库建表

2022-06-10 来源:客趣旅游网
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 char(10), Cpr real); (2分)

create vendition(Sid char(3), Cid char(3), Vse int, primary key (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 y。Each=x。Each);

(5)create view Eman(Eid, Ename, Esex, Each, Sid, Ere, Esa) As select Eid, Ename, Esex, Each, Sid, Ere, Es from employee where Each〉100 and Esex=’男';(2分)

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

学生表:学号、姓名、班级 课程表:课程号、课程名称、教师

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

(1)试画出E—R图,要求在图上注明属性及联系的类型; (2)将E-R图转换成关系模型,并注明主码; (2)这个E—R图可转换为4个关系模式:(12分) 商店(商店编号,商店名,地址) (3分)

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

商品(商品编号,商品名,规格,单价) (3分) 销售(商店编号,商品编号,月销售量) (3分)

(1)(4分) 学号(2)这个E-R图可转换为3个关

姓名班级课程表(学号,姓名,班级) 选修(学号,课程号)

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

选修N课程表课程名称课程号教师

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

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

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

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

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

转换为等价的关系模型结构如下: 借书人(借书证号,姓名,单位)

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

出版社(出版社名,电报,电话,邮编,地址) 借阅(借书证号,书号,借书日期,还书日期)

因篇幅问题不能全部显示,请点此查看更多更全内容