数据库系统原理实验一:关系数据库标准语言SQL

**

1.创建表

**
create table s
(sno char(2),
sname varchar(10),
status int,city varchar(10));

create table p(
pno char(2),
pname varchar(6) ,
color char(1),
weight int);

create table j(
jno char(2),
jname varchar(8),
city varchar(6));

create table spj(
sno char(2),
pno char(2),
jno char(2),
qty int);

**

2.插入数据

**
insert into s values(‘S1’,‘竟仪’,20,‘天津’);
insert into s values(‘S2’,‘盛锡’,10,‘北京’);
insert into s values(‘S3’,‘东方红’,30,‘北京’);
insert into s values(‘S4’,‘丰泰盛’,20,‘天津’);
insert into s values(‘S5’,‘为民’,30,‘上海’);

insert into p values(‘P1’,‘螺母’,‘红’,12);
insert into p values(‘P2’,‘螺栓’,‘绿’,17);
insert into p values(‘P3’,‘螺丝刀’,‘蓝’,14);
insert into p values(‘P4’,‘螺丝刀’,‘红’,14);
insert into p values(‘P5’,‘凸轮’,‘蓝’,40);
insert into p values(‘P6’,‘齿轮’,‘红’,30);

insert into j values(‘J1’,‘三建’,‘北京’);
insert into j values(‘J2’,‘一汽’,‘长春’);
insert into j values(‘J3’,‘弹簧厂’,‘天津’);
insert into j values(‘J4’,‘造船厂’,‘天津’);
insert into j values(‘J5’,‘机车厂’,‘唐山’);
insert into j values(‘J6’,‘无线电厂’,‘常州’);
insert into j values(‘J7’,‘半导体厂’,‘南京’);

insert into spj values(‘S1’,‘P1’,‘J1’,200);
insert into spj values(‘S1’,‘P1’,‘J3’,100);
insert into spj values(‘S1’,‘P1’,‘J4’,700);
insert into spj values(‘S1’,‘P2’,‘J2’,100);
insert into spj values(‘S2’,‘P3’,‘J1’,400);
insert into spj values(‘S2’,‘P3’,‘J2’,200);
insert into spj values(‘S2’,‘P3’,‘J4’,500);
insert into spj values(‘S2’,‘P3’,‘J5’,400);
insert into spj values(‘S2’,‘P5’,‘J1’,400);
insert into spj values(‘S2’,‘P5’,‘J2’,100);
insert into spj values(‘S3’,‘P1’,‘J1’,200);
insert into spj values(‘S3’,‘P3’,‘J1’,200);
insert into spj values(‘S4’,‘P5’,‘J1’,100);
insert into spj values(‘S4’,‘P6’,‘J3’,300);
insert into spj values(‘S4’,‘P6’,‘J4’,200);
insert into spj values(‘S5’,‘P2’,‘J4’,100);
insert into spj values(‘S5’,‘P3’,‘J1’,200);
insert into spj values(‘S5’,‘P6’,‘J2’,200);
insert into spj values(‘S5’,‘P6’,‘J4’,500);

**

3.请用sql语句完成下面题目的查询。

**
(1)找出所有供应商的姓名和所在城市:
select sname,city FROM s;

(2)求供应工程J1零件P1的供应商号码SNO:
select sno from spj where jno=‘j1’ and pno=‘p1’

(3)求供应工程J1零件为红色的供应商号码SNO:
select distinct sno from spj NATURAL JOIN p where color=‘红’ AND jno=‘j1’

(4)找出工程项目J2使用的各种零件的名称及其数量。
select pname,sum(qty) as sumqty from p join spj on p.pno=spj.pno where jno=‘j2’ group by pname

(5)找出使用上海产的零件的工程名称。
select distinct jname from s,j,spj where s.sno=spj.sno and j.jno=spj.jno and s.city=‘上海’

(6)求没有使用天津供应商生产的红色零件的工程号JNO:
select jno from spj where jno not in (select jno from spj,p,s where spj.pno=p.pno and spj.sno=s.sno and city=‘天津’ and color=‘红’)

(7)把全部红色零件的颜色改成蓝色。
update p set color=‘蓝’ where color=‘红’

(8)由S5供给J4的零件P6改为由S3供应。
update spj set sno=‘S3’ where sno=‘S5’ and pno=‘P6’ and jno=‘J4’

(9)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
delete from s where sno=‘s2’
delete from spj where sno=‘s2’

(10)请将(S2,J6,P4,200)插入供应情况关系。
INSERT INTO spj(sno,pno,jno,qty) values(‘S2’,‘P4’,‘J6’,200)

**

4.请为三建工程项目建立一个供应情况的视图,包括供应商代码SNO、零件代码PNO、供应数量QTY。

**
create view v_sj as
select sno,pno,sum(qty) as qty from spj where jno in (select jno from j where jname = ‘三建’) group by sno,pno
(1)找出三建工程项目使用的各种零件代码及其数量
select pno,sum(qty) as qtynum from v_spj group by pno
(2)找出供应商S1的供应情况
select * from v_spj where sno=‘S1’

**

5.在表SPJ定义索引IDX_SPJ,包括(SNO,PNO,JNO)。

**

CREATE UNIQUE INDEX IDX_SPJ TO(SNO,PNO,JNO);

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值