以图5-1的数据库为例,用SQL完成以下检索:
检索在北京的供应商的名称。
SELECT * FROM 供应商 WHERE 地址=’北京’
检索发给供应商S6的订购单号。
SELECT 订购单号 FROM 订购单 WHERE 供应商号=’S6’
检索出职工E6发给供应商S6的订购单信息。
SELECT * FROM 订购单 WHERE 供应商号=’S6’ AND 职工号=’E6’
检索出向供应商S3发过订购单的职工的职工号和仓库号。
SELECT 职工号,仓库号 FROM 职工 WHERE 职工号 IN
( SELECT 职工号 FROM 订购单 WHERE 供应商号=’S3’ )
检索出目前与S3供应商没有联系的职工信息。
SELECT * FROM 职工 WHERE 职工号 NOT IN
( SELECT 职工号 FROM 订购单 WHERE 供应商号=’S3’ )
检索出目前没有任何订购单的供应商信息。
SELECT * FROM 供应商 WHERE NOT EXISTS
( SELECT * FROM 订购单 WHERE 供应商号=供应商.供应商号 )
检索出和职工E1、E3都有联系的北京的供应商信息。
SELECT * FROM 供应商 WHERE 地址=‘北京’ and 供应商号 IN
( SELECT 供应商号 FROM 订购单 WHERE 职工号=’E1’ )
AND 供应商号 IN
( SELECT 供应商号 FROM 订购单 WHERE 职工号=’E3’ )
检索出目前和华通电子公司有业务联系的每个职工的工资。
SELECT 职工号,工资 FROM 职工 WHERE 职工号 IN
(SELECT 职工号 FROM 订购单 WHERE 供应商号 IN
(SELECT 供应商号 FROM 供应商 WHERE 供应商名=’华通电子公司’))
检索出与工资在1220元以下的职工没有联系的供应商的名称。
SELECT 供应商名 FROM 供应商 WHERE 供应商号 NOT IN
(SELECT 供应商号 FROM 订购单 WHERE 职工号 IN
(SELECT 职工号 FROM 职工 WHERE 工资 < 1220))
检索出向S4供应商发出订购单的仓库所在的城市。
SELECT 城市 FROM 仓库 WHERE 仓库号 IN
(SELECT 仓库号 FROM 职工 WHERE 职工号 IN
(SELECT 职工号 FROM 订购单 WHERE 供应商号=’S4’))
检索出在上海工作并且向S6供应商发出了订购单的职工号。
SELECT 职工号 FROM 职工 WHERE 仓库号 IN
(SELECT 仓库号 FROM 仓库 WHERE 城市=’上海’) AND 职工号 IN
(SELECT 职工号 FROM 订购单 WHERE 供应商号=’S6’))
检索出在广州工作并且只向S6供应商发出了订购单的职工号。
SELECT 职工号 FROM 职工 WHERE 仓库号 IN
(SELECT 仓库号 FROM 仓库 WHERE 城市=’广州’) AND 职工号 IN
(SELECT 职工号 FROM 订购单 WHERE 供应商号=’S6’) AND 职工号 NOT IN
(SELECT 职工号 FROM 订购单 WHERE 供应商号!=’S6’)
检索出由工资多于1230元的职工向北京的供应商发出的订购单号。
SELECT 订购单号 FROM 订购单 WHERE 职工号 IN
(SELECT 职工号 FROM 职工 WHERE 工资>