数据库原理难题,设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:注意分别用关系代数和SQL语句哦

数据库原理难题,设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:注意分别用关系代数和SQL语句哦,第1张

关系代数:

1)求供应工程J1零件供应商号码SNO:

π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'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9992464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存