SQL习题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL习题及答案

实验

设有以下关系模式:

S(SNO,SNAME,CITY)

其中,S表示别SUPPLIER(供应者),SNO为供应者代号,SNAME为供应者的名字,CITY为供应商所在的城市.主键为SNO。

P(PNO,PNAME,COLOR,WEIGHT)

其中,P表示PART(零件),PNO为零件代号,PNAME为零件名,COLOR为零件颜色,WEIGHT 为零件重量,主键为PNO。

J(JNO,JNAME,CITY)

其中,J表示JOB(工程),JNO为工程编号,JNAME 为工程名,CITY为工程所在城市,主键为JNO。

SPJ(SNO,PNO,JNO,QTY)

其中,SPJ表示供应关系,SNO是为指定工程提供零件的供应者代号,PNO是所提供的零件代号,JNO 为工程编号,QTY表示提供的零件数量,主键为(SNO,PNO,JNO),外部键分别为SNO,PNO,JNO。试做以下各题:

1、用SQL的DDL语言创建S,P,J,SPJ四个基本表。

2、按照下面表格提供的数据,用SQL的插入语句插入所有记录。

3、给出下列各题的查询、存储等操作的语句序列,并且上机验证结果。

1)取出所有工程的全部细节;

2)取出所在城市为上海的所有工程的全部细节;

3)取出重量最轻的那些零件的号码;

4)取出为工程J1提供零件的供应者的代号;

5)取出为工程J1提供零件P1的供应者的代号;

6)取出由供应者S1提供零件的工程的名称;

7)取出由供应者S1提供的零件的颜色;

8)取出为工程J1和J2提供零件的供应者的代号;

9)取出为工程J1提供红色零件的供应者的代号;

10)取出为所在城市为上海的工程提供零件的供应者的代号;

11)取出为所在城市为上海或北京的工程提供红色零件的供应者的代号;

12)取出供应者与工程所在城市相同的供应者提供的零件的代号;

13)取出上海的供应者提供给上海的任一工程的零件的代号;

14)取出至少有一个和工程不在同一城市的供应者提

供零件的工程的代号;

15)取出上海供应者不提供任何零件的工程的代号;

16)取出这样一些供应者的代号,他们能够提供至少一种由红色零件的供应者提供的零件;

17)取出由供应者S1提供零件的工程的代号;

18)取出所有这样的三元组<CITY,PNO,CITY>,使得第一个城市的供应者为第二个城市的工程提供零件;

19)取出为所有工程提供同样零件的供应者的代号;

20)取出提供给上海的所有工程的零件代号;

21)取出至少需要供应者S1提供的所有零件的工程的代号;

22)把所有红色零件改成橙色;

23)删除所有红色零件和对应的SPJ记录;

24)取出供应者Sl提供的代号为P1的零件总数;

25)取出每个工程的供应商数;

26)取出所需的零件总数大于1000的工程代号;

1.

CREATE TABLE S(

SNO CHAR(5) PRIMARY KEY, SNAME CHAR(5),

CITY CHAR(10)

);

CREATE TABLE P(

PNO CHAR(5) PRIMARY KEY,

PNAME CHAR(5),

COLOR CHAR(5),

WEIGHT INT

);

CREATE TABLE J(

JNO CHAR(5) PRIMARY KEY,

JNAME CHAR(5),

CITY CHAR(10)

);

CREATE TABLE SPJ(

SNO CHAR(5),

PNO CHAR(5),

JNO CHAR(5),

QTY INT,

CONSTRAINT PK_SPJ PRIMARY KEY(SNO,PNO,JNO),

CONSTRAINT FK_SNO FOREIGN KEY(SNO)REFERENCES S(SNO), CONSTRAINT FK_PNO FOREIGN KEY(PNO)REFERENCES P(PNO), CONSTRAINT FK_JNO FOREIGN KEY(JNO)REFERENCES J(JNO)

);

2.

SELECT * FROM J;

3.

SELECT * FROM J WHERE CITY='上海';

4.

SELECT PNO FROM P WHERE WEIGHT=(SELECT MIN(WEIGHT) FROM P);

5.

SELECT DISTINCT SNO FROM SPJ WHERE JNO='J1';

6.

SELECT SNO FROM SPJ WHERE JNO='J1' AND PNO='P1';

7.

SELECT DISTINCT JNAME FROM J,SPJ WHERE J.JNO=SPJ.JNO AND SPJ.SNO='S1';

8.

SELECT DISTINCT COLOR FROM P,SPJ WHERE P.PNO=SPJ.PNO AND SPJ.SNO='S1;

9.

SELECT X.SNO FROM SPJ X WHERE X.JNO='J1'AND EXISTS

(SELECT * FROM SPJ Y WHERE Y.SNO=X.SNO AND Y.JNO='J2');

10.

SELECT DISTINCT SNO FROM SPJ,P WHERE SPJ.JNO='J1' AND SPJ.PNO=P.PNO AND P.COLOR='红';

相关文档
最新文档