(数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题

在这里插入图片描述

名词解释

  • 视图:视图是一个虚表,其本质就是一条SELECT语句,而查询结果被赋予了一个名字,也即视图名字。或者说视图本身不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化时,视图数据也随之变化。其目的就是在于方便,简化数据操作

简答题

在这里插入图片描述

【答案】
(数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题_第1张图片

在这里插入图片描述

【答案】

(数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题_第2张图片

在这里插入图片描述

【答案】

基本表是本身独立存在的表,在sQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图

在这里插入图片描述

【答案】

(数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题_第3张图片

在这里插入图片描述

【答案】
基本表的行列子集视图一般是可更新的。若视图的属性来自集合函数、表达式,则该视图肯定是不可以更新的

应用题

在这里插入图片描述

【答案】

SELECT * FROM S WHERE A='10';

SELECT A,B FROM S;

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

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

SELECT * FROM S,T WHERE A
在这里插入图片描述
(数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题_第4张图片

【答案】

SELECT SNO FROM SPJ WHERE JNO='J1';

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

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

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

①:先查询S1供应的零件号
SELECT PNO FROM SPJ WHERE SNO='S1' ,其结果为(P1,P2)
②:查询哪一个工程即使用P1又使用P2
SELECT JON FROM SPJ WHERE PNO='P1' AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2');
(数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题_第5张图片
SELECT SNAME,CTIY FROM S;

SELECT PNAME,COLOR,WEIGHT FROM P;

SELECT JNO FROM SPJ WHERE SNO='S1';

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

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

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

SELECT JNO FROM SPJ WHERE JNO NOT IN(
    SELECT JNO FROM SPJ,S WHERE SPJ.SNO=S.SNO AND S.CITY='天津'
);

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

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

DELETE FROM S WHERE SNO='S2' DELETE FROM SPJ WHERE SNO='S2';

INSERT INTO SPJ VALUES('S2','J6','P4',200);
在这里插入图片描述

【答案】

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

SELECT PNO,QTY FROM VSP

SELECT * FROM VSP WHERE SNO='S1';

你可能感兴趣的:(数据库mysql)