πSno(σSno=‘J1’(SPJ))
2)求供应工程J1零件P1的供应商号码SNO:
πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供应工程J1零件为红色的供应商号码SNO:
πSno(σPno=‘P1‘(σCOLOR=’红‘ (P)∞SPJ))
4)求没有使用天津供应商生产的红色零件的工程号JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P)
5)求至少用了供应商S1所供应的全部零件的工程号JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
sql语句:
( l )求供应工程 Jl 零件的供应商号码 SNO
SELECT SNO FROM SPJ WHERE JNO=’J1’
( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO
SELECT SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'
( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO
SELECT SNO FROM SPJ,P WHEREJNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'
( 4 )求没有使用天津供应商生产的红色零件的工程号 JNO
SELECT JNO FROM SPJ WHERE JNO NOT IN(SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' ANDS.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
( 5 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO
由于VFP不允许子查询嵌套太深,将查询分为两步
A、查询S1供应商供应的零件号
SELECT PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2)
B、查询哪一个工程既使用P1零件又使用P2零件。
SELECT FROM SPJ WHEREPNO='P1'
AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2')
这是难题?(1)
create table S
(
SNO VARCHAR(20) PRIMARY KEY,
SNAME NVARCHAR(50) NOT NULL,
STATUS INT DEFAULT(0),
SCITY NVARCHAR(20)
)
CREATE TABLE P
(
PNO VARCHAR(20) PRIMARY KEY,
PNAME NVARCHAR(50) NOT NULL,
COLOR NVARCHAR(10),
WEIGHT NUMERIC(9,2)
)
CREATE TABLE J
(
JNO VARCHAR(20) PRIMARY KEY,
JNAME NVARCHAR(50) NOT NULL,
JCITY NVARCHAR(100)
)
CREATE TABLE SPJ
(
SNO VARCHAR(20),
PNO VARCHAR(20),
JNO VARCHAR(20),
QTY NEMERIC(9,2)
)
(2)
----------------------
SELECT PNAME, COLOR, WEIGHT FROM P
(3)
--------------------
SELECT SNO FROM SPJ AS T
WHERE JNO='J2'
AND EXISTS(SELECT 1 FROM P WHERE COLOR='红色' AND PNO=T.JNO)
(4)
-----------------
UPDATE J SET JCITY='天津' WHERE JNO='J2'
(5)
-----------------
DELETE FROM P WHERE PNO = 'P4'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)