问答题 已知某数据库系统中包含3个基本表:
商品基本表GOODS(G#, GNAME, PRICE, TYPE, FACT)
商场基本表SHOPS(S#, SNAME, MANAG, ADDR)
销售基本表SALES(S#, G#, QTY)
其中,G#, GNAME, PRICE, TYPE, FACT分别代表商品号、商品名、单价、型号、制造商;S#, SNAME, MANAG, ADDR分别代表商场号、商场名、经理、地址;QTY代表销售量。
试用SQL语句完成下列查询:
问答题 查询不生产微波炉的制造商。
【正确答案】
【答案解析】SELECT FACT
FROM GOODS
WHERE FACT NOT IN
(SELECT FACT
FROM GOODS
WHERE GNAME="微波炉")
问答题 查询位于南京路的所有商场的商场号和商场名。
【正确答案】
【答案解析】SELECT S#, SNAME
FROM SHOPS
WHERE ADDR LIKE "南京路%"
问答题 查询未销售南华厂的产品的商场名和经理。
【正确答案】
【答案解析】SELECT SNAME, MANAG
FROM SHOPS
WHERE S# NOT IN
(SELECT S#
FROM SALES
WHERE G# IN
(SELECT G#
FROM GOODS
WHERE FACT="南华")
问答题 查询至少在S01和S02两个商场销售的商品名、型号和制造商。
【正确答案】
【答案解析】SELECT GNAME, TYPE, FACT
FROM GOODS
WHERE G# IN
(SELECT G#
FROM SALES
WHERE S# ="S01"
AND G# IN
(SELECT G
FROM SALES
WHERE S# ="S02"))
问答题 查询生产电视机的制造商的数量。
【正确答案】
【答案解析】SELECT COUNT(DISTINCT FACT)
FROM GOODS
WHERE GNAME="电视机"
问答题 查询平均销售量最高的商品号。
【正确答案】
【答案解析】SELECT G#
FROM SALES
GROUP BY G#
HAVING AVG(QTY)>=ALL(SELECT AVG(QTY)
FROM SALES
GROUP BY G#)