目录
5. 针对习题4中的4个表试用SQL完成以下各项操作:
9. 为三建工程项目建立一个供应情况的视图,包括供应商代码SNO, 零件代码PNO, 供应数量QTY,针对该视图完成下列查询:
5. 针对习题4中的4个表试用SQL完成以下各项操作:
(1)找出所有供应商的姓名和所在城市
SELECT SNAME,CITY
FROM S;
(2)找出所有零件的名称、颜色、重量
SELECT PNAME,COLOR,WEIGHT
FROM P;
(3)找出使用供应商S1所供应零件的工程号码
本题思考:关于distinct
① 没有distinct: 查询语句返回所有在SPJ表中SNO等于’S1’的行的JNO值,可能会有重复的值。
②使用了DISTINCT关键字,它会返回所有不重复的JNO值,即使在SPJ表中有多个行的SNO等于’S1’,也只会返回一次相应的JNO值。
因为是S1,对应的JNO为J1,J2,J3,J4,没有重复的,所以可有可无
SELECT JNO
FROM SPJ
WHERE SNO = 'S1';
(4)找出工程项目J2使用的各种零件的名称及其数量
SELECT P.PNAME,SPJ.QTY
FROM SPJ,P
WHERE SPJ.JNO = 'J2' AND P.PNO = SPJ.PNO
(5)找出上海厂商供应的所有零件号码
SELECT DISTINCT PNO
FROM SPJ,S
WHERE S.CITY = '上海' AND S.SNO = SPJ.SNO
(6)找出使用上海产的零件的工程名称
使用三个表,连接。注意两个表city不是同一个
SELECT JNAME
FROM S,J,SPJ
WHERE S.SNO = SPJ.SNO AND J.JNO = SPJ.JNO AND S.CITY = '上海';
(7)找出没有使用天津产的零件的工程号码
SELECT JNO
FROM SPJ
WHERE JNO NOT IN(SELECT DISTINCT JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY='天津'
(8)把全部红色零件的颜色改为蓝色
UPDATE P
SET COLOR = '蓝'
WHERE COLOR = '红';
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改
UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5' AND JNO='J4' AND PNO='P6';
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录
DELETE FROM SPJ
WHERE SNO='S2' ;
DELETE FROM S
WHERE SNO='S2' ;
(11)请将 (S2,J6,P4,200) 插入供应情况关系
INSERT INTO SPJ
VALUES('S2','J6','P4',200);
9. 为三建工程项目建立一个供应情况的视图,包括供应商代码SNO, 零件代码PNO, 供应数量QTY,针对该视图完成下列查询: 2100300805 毛姝垚
CREATE VIEW GONG_YING_SHANG
AS
SELECT SNO,PNO,QTY
FROM SPJ,J
WHERE J.JNO=SPJ.JNO AND JNAME='三建';
(1)找出三建项目使用的各种零件代码PNO和其数量。
SELECT DISTINCT PNO,QTY
FROM GONG_YING_SHANG;
(2)找出供应商S1的供应情况。
SELECT *
FROM GONG_YING_SHANG
WHERE SNO='S1';