数据库第七周作业——第三章课后习题

【摘要】 3.有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:
(1)σ A=10(S)
SELECT *
FROM S
WHERE A=10;
123
(2)π A , B ( S )
SELECT A,B
FROM S;
12
(3)S ⋈ T
SELECT S.A,S.B,C,D,E,F
FROM S,T
WHERE S…

3.有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:

在这里插入图片描述
(1)σ A=10(S)

SELECT *
FROM S
WHERE A=10;

  
 

(2)π A , B ( S )

SELECT A,B
FROM S;

  
 

(3)S ⋈ T

SELECT S.A,S.B,C,D,E,F
FROM S,T
WHERE S.C=T.C AND S.D=T.D;

  
 

(4)
在这里插入图片描述

SELECT *
FROM S,T
WHERE S.C=T.C;

  
 

(5)
在这里插入图片描述

SELECT *
FROM S,T
WHERE S.A<T.E;

  
 

(6)
在这里插入图片描述

SELECT 	S.C,S.D,T.*
FROM S,T;

  
 

SELECT *
FROM S,T
WHERE S.C=T.C AND S.D=T.D;

  
 

4.用SQL语句建立第2章习题6中的4个表;针对建立的4各表用SQL完成第2章习题6中的查询

在这里插入图片描述

	CREATE TABLE S(SNO CHAR(5) UNIQUE, SNAME CHAR(20), STATUS INT, CITY CHAR(10) );
	CREATE TABLE P(PNO CHAR(5) UNIQUE, PNAME CHAR(20), COLOR CHAR(5), WEIGHT INT );
	CREATE TABLE J(JNO CHAR(5) UNIQUE, JNAME CHAR(20), CITY CHAR(10) );
	CREATE TABLE SPJ(SNO CHAR(5), PNO CHAR(5), JNO CHAR(5), QTY INT );

	INSERT INTO S
	VALUES ('S1','精益',20,'天津');
	INSERT INTO S
	VALUES ('S2','盛锡',10,'北京');
	INSERT INTO S
	VALUES ('S3','东方红',20,'北京');
	INSERT INTO S
	VALUES ('S4','丰泰盛',20,'天津');
	INSERT INTO S
	VALUES ('S5','为民',20,'上海');

	INSERT INTO	P
	VALUES ('P1','螺母','红',12);
	INSERT INTO	P
	VALUES ('P2','螺栓','绿',17);
	INSERT INTO	P
	VALUES ('P3','螺丝刀','蓝',14);
	INSERT INTO	P
	VALUES ('P4','螺丝刀','红',14);
	INSERT INTO	P
	VALUES ('P5','凸轮','蓝',40);
	INSERT INTO	P
	VALUES ('P6','齿轮','红',30);

	INSERT INTO	J
	VALUES ('J1','三建','北京');
	INSERT INTO	J
	VALUES ('J2','一汽','长春');
	INSERT INTO	J
	VALUES ('J3','弹簧厂','天津');
	INSERT INTO	J
	VALUES ('J4','造船厂','天津');
	INSERT INTO	J
	VALUES ('J5','机车厂','唐山');
	INSERT INTO	J
	VALUES ('J6','无线电厂','常州');
	INSERT INTO	J
	VALUES ('J7','半导体厂','南京');

	INSERT INTO	SPJ
	VALUES ('S1','P1','J1',200);
	INSERT INTO	SPJ
	VALUES ('S1','P1','J3',100);
	INSERT INTO	SPJ
	VALUES ('S1','P1','J4',700);
	INSERT INTO	SPJ
	VALUES ('S1','P2','J2',100);
	INSERT INTO	SPJ
	VALUES ('S2','P3','J1',400);
	INSERT INTO	SPJ
	VALUES ('S2','P3','J2',200);
	INSERT INTO	SPJ
	VALUES ('S2','P3','J4',500);
	INSERT INTO	SPJ
	VALUES ('S2','P3','J5',400);
	INSERT INTO	SPJ
	VALUES ('S2','P5','J1',400);
	INSERT INTO	SPJ
	VALUES ('S2','P5','J2',100);
	INSERT INTO	SPJ
	VALUES ('S3','P1','J1',200);
	INSERT INTO	SPJ
	VALUES ('S3','P3','J1',200);
	INSERT INTO	SPJ
	VALUES ('S4','P5','J1',100);
	INSERT INTO	SPJ
	VALUES ('S4','P6','J3',300);
	INSERT INTO	SPJ
	VALUES ('S4','P6','J4',200);
	INSERT INTO	SPJ
	VALUES ('S5','P2','J4',100);
	INSERT INTO	SPJ
	VALUES ('S5','P3','J1',200);
	INSERT INTO	SPJ
	VALUES ('S5','P6','J2',200);
	INSERT INTO	SPJ
	VALUES ('S5','P6','J4',500);

  
 

(1)求供应工程J1零件的供应商号码SNO;

SELECT SNO
FROM SPJ
WHERE JNO='J1';

  
 

或去除重复记录

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

  
 

在这里插入图片描述

(2)求供应工程J1零件P1的供应商号码SNO;

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

  
 

在这里插入图片描述
(3)求供应工程J1零件为红色的供应商号码SNO;

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

  
 

SELECT SNO
FROM SPJ
WHERE JNO='J1' AND PNO IN 
	(
		SELECT PNO
		FROM P
		WHERE COLOR='红'
	);

  
 

在这里插入图片描述
(4)求没有使用天津供应商生产的红色零件的工程号JNO;

SELECT JNO
FROM S,P,SPJ
WHERE P.PNO=SPJ.PNO AND SPJ.SNO=S.SNO AND COLOR!='红' AND CITY!='天津';

  
 

SELECT JNO
FROM SPJ
WHERE SNO  NOT IN
	(
		SELECT SNO
		FROM S
		WHERE CITY='天津'
	)
AND PNO NOT IN 
	(
		SELECT PNO
		FROM P
		WHERE COLOR='红'
	);

  
 

SELECT JNO
FROM SPJ
WHERE SNO IN
	(
		SELECT SNO
		FROM S
		WHERE CITY!='天津'
	)
AND PNO IN 
	(
		SELECT PNO
		FROM P
		WHERE COLOR!='红'
	);

  
 

在这里插入图片描述
(5)求至少用了供应商S1所供应的全部零件的工程号JNO.

SELECT DISTINCT JNO
FROM SPJ
WHERE PNO>=ALL
	(
		SELECT PNO
		FROM SPJ
		WHERE SNO='S1'
	); 

  
 

在这里插入图片描述

5.针对习题4中的4个表试用SQL语句完成以下各项操作:

(1)找出所有供应商的姓名和所在城市:

SELECT SNAME,CITY
FROM S;

  
 

在这里插入图片描述
(2)找出所有零件的名称、颜色、重量:

SELECT PNAME,COLOR,WEIGHT
FROM P;

  
 

在这里插入图片描述
(3)找出使用供应商S1所供应零件的工程号码:

SELECT JNO 
FROM SPJ
WHERE SNO='S1';

  
 

在这里插入图片描述
(4)找出工程项目J2使用的各种零件的名称及其数量:

SELECT PNAME,QTY
FROM SPJ,P
WHERE SPJ.PNO=P.PNO AND JNO='J2';

  
 

在这里插入图片描述
(5)找出上海厂商供应的所有零件号码:

SELECT PNO
FROM S,SPJ
WHERE SPJ.SNO=S.SNO AND CITY='上海';

  
 

SELECT PNO
FROM SPJ
WHERE SNO IN 
	(
		SELECT SNO
		FROM S
		WHERE CITY='上海' 
	);

  
 

在这里插入图片描述
(6)找出使用上海产的零件的工程名称:

SELECT JNAME
FROM J,S,SPJ
WHERE J.JNO=SPJ.JNO AND SPJ.SNO=S.SNO AND S.CITY='上海';

  
 

SELECT JNAME 
FROM J
WHERE JNO IN
	(
		SELECT JNO
		FROM SPJ
		WHERE SNO IN ( SELECT SNO FROM S WHERE CITY='上海' )
	);

  
 

在这里插入图片描述
(7)找出没有使用天津产的零件的工程号码:

SELECT PNO 
FROM S,SPJ
WHERE SPJ.SNO=S.SNO AND CITY!='天津';

  
 

SELECT PNO 
FROM SPJ
WHERE SNO NOT IN 
	(
		SELECT SNO FROM S
		WHERE CITY='天津'
	);

  
 

在这里插入图片描述
(8)把全部红色零件颜色改为蓝色:

SELECT *
FROM P;

UPDATE P
SET COLOR='蓝'
WHERE COLOR='红';

SELECT *
FROM P;

  
 

在这里插入图片描述
(9)由S5供给J4的零件P6改为由S3供应,作必要的修改:

SELECT *
FROM SPJ;

UPDATE SPJ
SET SNO='S3'
WHERE PNO='P6' AND JNO='J4' AND SNO='S5';

SELECT *
FROM SPJ;

  
 

在这里插入图片描述
(10)从供应商关系中删除S2的记录,并从供应情况中删除相应的记录:

SELECT *
FROM S;

DELETE 
FROM S
WHERE SNO='S2';

SELECT *
FROM S;

SELECT *
FROM SPJ;

DELETE 
FROM SPJ
WHERE SNO='S2';

SELECT *
FROM SPJ;

  
 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(11)请将(S2 , J6 , P4, 200) 插入供应关系情况:

INSERT
INTO SPJ
VALUES('S2','P4','J6',200);

SELECT *
FROM SPJ;

  
 

在这里插入图片描述

9.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。

CREATE VIEW VSPJ
AS
SELECT SNO,PNO,QTY
FROM SPJ
WHERE JNO IN
	(
		SELECT JNO
		FROM J
		WHERE JNAME='三建'
	);

  
 

CREATE VIEW VSPJ
AS
SELECT SNO,PNO,QTY
FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND JNAME='三建';

  
 
--查询视图
SELECT *
FROM VSPJ;

  
 

在这里插入图片描述
针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量:

SELECT PNO,QTY
FROM VSPJ;

  
 

在这里插入图片描述
(2)找出供应商S1的供应情况:

SELECT *
FROM VSPJ
WHERE SNO='S1';

  
 

在这里插入图片描述

啊啊啊啊啊啊!!!

第三章终于结束了!!!

充实的下午,从来没有这么认真过!!!

付出不一定有回报,不付出就一定不会有回报!!!

对于表、视图等的增删改查更明白了,更熟练了。。

散会,干饭

文章来源: blog.csdn.net,作者:YKYBF,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/m0_50759850/article/details/115693776

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享