数据库系统概论第三章4题和9题上机实验实操
4.建立的四个表如下
CREATE TABLE S
(SNO CHAR(2) PRIMARY KEY ,
SNAME CHAR(20),
STATUS CHAR(4),
CITY CHAR(10)
);
CREATE TABLE P
(PNO CHAR(2) PRIMARY KEY ,
SNAME CHAR(20),
COLOR CHAR(10),
WEIGHT SMALLINT
);
CREATE TABLE J
(JNO CHAR(2) PRIMARY KEY ,
JNAME CHAR(20),
CITY CHAR(10)
);
CREATE TABLE SPJ
(SNO CHAR(2),
PNO CHAR(2),
JNO CHAR(2),
QTY INT,
PRIMARY KEY (SNO,PNO,JNO),
FOREIGN KEY (SNO) REFERENCES S(SNO),
FOREIGN KEY (PNO) REFERENCES P(PNO),
FOREIGN KEY (JNO) REFERENCES J(JNO)
);
(1)供应工程J1零件的供应商号码SNO:
SELECT DISTINCT SNO
FROM SPJ
WHERE JNO='J1';
(2)供应工程J1零件P1的供应商号码SNO:
SELECT DISTINCT SNO
FROM SPJ
WHERE JNO='J1'AND PNO='P1';
(3)供应工程J1零件为红色的供应商号码SNO:
SELECT SNO
FROM SPJ,P
WHERE JNO='J1'AND
SPJ.PNO=P.PNO AND
COLOR='红';
(4)没有使用天津供应商生产的红色零件的工程号JNO:
SELECT DISTINCT JNO
FROM SPJ
WHERE JNO NOT IN
(SELECT JNO
FROM SPJ,P,S
WHERE S.CITY='天津'AND COLOR='红'AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO);
(5)至少使用供应商SI所供应的全部零件的工程号JNO:
①SELECT DISTINCT PNO
FROM SPJ
WHERE SNO='S1';
②SELECT JNO
FROM SPJ
WHERE PNO=′P1′AND JNO IN
(SELECT JNO
FROM SPJ
WHERE PNO='P2');
或者SELECT DISTINCT JNO
FROM SPJ
WHERE SNO='J1' AND PNO='P1' AND JNO IN(
SELECT JNO
FROM SPJ
WHERE PNO='P2');
9. CREATE VIEW SPQ(SNO,PNO,QTY)
AS
SELECT SNO,SPJ.PNO,QTY
FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND JNAME='三建';
(1)三建工程项目使用的各种零件代码及其数量:
SELECT DISTINCT PNO,QTY
FROM SPQ;
(2)供应商S1的供应情况:
SELECT DISTINCT *
FROM SPQ
WHERE SNO='S1';