一、实验内容
1.用SQL语句创建工程项目数据表
(1)使用sql语句建立4个关系,如下:
供应商表s(sno, sname, city)
零件表p(pno, pname, color, weight)
工程项目表j(jno, jname, city)
供应情况表 spj(sno, pno, jno, qty)
其中:
供应商表s由供应商代码(sno)、供应商姓名(sname)、供应商所在城市(city)组成;
零件表p由零件代码(pno)、零件名(pname)、颜色(color)、重量(weight)组成;
工程项目表j由工程项目代码(jno)、工程项目名(jname)、工程项目所在城市(city)组成;
供应情况表spj由供应商代码(sno)、零件代码(pno)、工程项目代码(jno)、供应数量组成(qty),表示某供应商供应某种零件给某工程项目的数量为qty。
要求:
① 创建每个关系的主键,有外键的创建外键。
② s表中的sname属性列的取值唯一。
③ p表中weight属性列的取值范围在1-50之间。
④ j表中的jname取值不能为空并且是唯一的。
create table s
(sno varchar2(20)primary key,sname varchar2(40)unique,city varchar2(40));
create table p(pno varchar2(20)primary key,pname varchar2(40),color varchar2(40),weight number,check( weight between 10 and 50));
create table j
(jno varchar2(20)primary key,jname varchar2(40)not null unique,city varchar2(40));
create table spj
(sno varchar2(20),pno varchar2(20), jno varchar2(20),qty number,primary key(sno,pno,jno),foreign key(sno)references s(sno),foreign key(pno)references p(pno),foreign key(jno)references j(jno));
(2)将下列数据录入s,p,j和spj表中:
s表 | ||
sno | sname | city |
s1 | 精益 | 天津 |
s2 | 盛锡 | 北京 |
s3 | 东方红 | 北京 |
s4 | 丰泰盛 | 天津 |
s5 | 为民 | 上海 |
p表 | |||
pno | pname | color | weight |
p1 | 螺母 | 红 | 12 |
p2 | 螺栓 | 绿 | 17 |
p3 | 螺丝刀 | 蓝 | 14 |
p4 | 螺丝刀 | 红 | 14 |
p5 | 凸轮 | 蓝 | 40 |
p6 | 齿轮 | 红 | 30 |
j表 | ||
jno | jname | city |
j1 | 三建 | 北京 |
j2 | 一汽 | 长春 |
j3 | 弹簧厂 | 天津 |
j4 | 造船厂 | 天津 |
j5 | 机车厂 | 唐山 |
j6 | 无线电厂 | 常州 |
j7 | 半导体厂 | 南京 |
spj表 | |||
sno | pno | jno | qty |
s1 | p1 | j1 | 200 |
s1 | p1 | j3 | 100 |
s1 | p1 | j4 | 700 |
s1 | p2 | j2 | 100 |
s2 | p3 | j1 | 400 |
s2 | p3 | j2 | 200 |
s2 | p3 | j4 | 500 |
s2 | p3 | j5 | 400 |
s2 | p5 | j1 | 400 |
s3 | p1 | j1 | 200 |
s3 | p3 | j1 | 200 |
s4 | p5 | j1 | 100 |
s4 | p6 | j3 | 300 |
s4 | p6 | j4 | 200 |
s5 | p2 | j4 | 100 |
s5 | p3 | j1 | 200 |
s5 | p6 | j2 | 200 |
s5 | p6 | j4 | 500 |
(3)用sql语句完成以下操作:
① 给s表增加sphone和smanager两个属性列,分别用来存放供应商的联系电话和联系人。
alter table s add sphone varchar2(20);
alter table s add smanager varchar2(40);
② 删除jname属性列取值唯一的约束。
alter table j drop unique(jname);
③ 修改qty属性列的数据类型,使qty列数据的总长度不超过12,其中保留2位小数。
alter table spj modify qty number(12,2);
④ 删除s表中的属性列smanager
alter table s drop column smanager;
⑤在p表的pname属性上创建Normal索引。
题意为建立普通索引,即不加unique等参数。
create index ppname on p(pname);