已知GCGL数据库包括S、P、J、SPJ这4个关系:
S(SNO,SNAME,STATUS,CITY)
供应商(供应商代码,供应商姓名,供应商状态,供应商所在城市);
P(PNO,PNAME,COLOR,WEIGHT)
零件(零件代码,零件名,颜色,重量);
J(JNO,JNAME,CITY)
工程项目(工程项目代码,工程项目名,项目所在城市);
SPJ(SNO,PNO,JNO,QIY)
供应情况(供应商代码,零件代码,工程项目代码,供应数量)。
一、基本操作
(1)查询P2零件供应的总数;
SELECT PNO,SUM(QTY)
FROM SPJ
WHERE PNO="P2";
(2)查询每个工程有几个供应商在向它供应零件;
SELECT COUNT( DISTINCT SNO) AS 总供应商个数,JNO
FROM SPJ
(3)查询每个供应商供应零件的总数,给出供应商编号和总数;
SELECT SNO,SUM(QTY) AS 总量
FROM SPJ
(4)查询每个城市供应商的数量;
SELECT CITY,COUNT(CITY) AS 供应商数量
FROM S
(5)查询每个城市工程的数量;
SELECT CITY, COUNT(CITY) AS 工程数量
FROM J
(6)查询现已接受供应的工程总数;
SELECT COUNT( DISTINCT JNO)
FROM SPJ
(7)查询向3个以上工程供应零件的供应商编号;
SELECT SNO,COUNT(JNO) AS 工程供应零件个数
FROM SPJ
HAVING COUNT(JNO)>3
(8)查询接受3家以上供应商供应零件的工程编号;
SELECT JNO,COUNT(SNO) AS 供应商供应零件个数
FROM SPJ
HAVING COUNT(SNO)>3
(9)查询每种零件有几种颜色;
SELECT PNO,COUNT(COLOR)
FROM P
(10)查询总供应量在1000以上的供应商的编号和总供应量;
SELECT SNO,SUM(QTY)
FROM SPJ
WHERE SUM(QTY)>1000
二、提高操作
(1)查询每个城市的工程接受零件的供应量;
SELECT J.CITY,SUM(SPJ.QTY)
FROM J,QTY
WHERE J.JNO=SPJ.JNO
(2)查询每种零件的供应信息,包括零件代码、零件名、颜色、重量和供应总量;
SELECT P.*,SUM(SPJ.QTY) AS 供应总量
FROM P,SPJ
WHERE P.PNO=SPJ.PNO
(3)查询每个供应商的供应信息,包括供应商代码、供应商名、所在城市和供应总量;
SELECT S.SNO,SNAME,CITY,SUM(SPJ.QTY) AS 供应总量
FROM S,SPJ
WHERE S.PNO=SPJ.PNO
(4)查询供应总量在1000以上的供应商信息,包括供应商基本信息和供应总量;
SELECT S.SNO,SNAME,,STATUS,CITY,SUM(SPJ.QTY) AS 供应总量
FROM S,SPJ
WHERE S.PNO=SPJ.PNO
AND SUM(SPJ.QTY)>1000
(5)查询每种颜色的零件的供应总量;
SELECT P.COLOR,SUM(SPJ.QTY) AS 供应总量
FROM P,SPJ
WHERE P.PNO=SPJ.PNO
(6)查询每个城市供应商供应零件的总数;
SELECT S.CITY,SUM(SPJ.QTY) AS 供应总量
FROM S,SPJ
WHERE S.PNO=SPJ.PNO
(7)查询供应商和工程在同一个城市的工程的基本信息和供应信息;
SELECT S.*,J.*
FROM S,J
WHERE S.CITY=J.CITY
(8)查询没有使用天津产的零件的工程号码JNO;
SELECT JNO
FROM J
WHERE J.CITY!="天津"
(9)查询使用上海厂商供应的所有零件号码;
SELECT SPJ.PNO
FROM S,SPJ
WHERE S.CITY="上海"
AND S.SNO=SPJ.SNO
(10)找出工程项目J2使用的各种零件的名称及其数量。
SELECT P.PNAME,SPJ.QTY
FROM SPJ,P
WHERE SPJ.JNO="J2"
AND SPJ.PNO=P.PNO