WHERE NOT EXISTS
(SELECT *1
FROM SPJ, S
WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’);
(8) 把全部红色零件的颜色改成蓝色。
UPDATE P
SET COLOR='蓝'
WHERE COLOR='红' ;
(9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。
UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5' AND JNO='J4' AND PNO='P6';
(10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
DELETE
FROM SPJ
WHERE SNO='S2';
或
DELETE
FROM S
WHERE SNO='S2';
解析:注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。
(11) 请将 (S2,J6,P4,200) 插入供应情况关系。
INSERT INTO SPJ(SNO, JNO, PNO, QTY)
VALUES (S2,J6,P4,200);
或
INSERT INTO SPJ
VALUES (S2,P4,J6,200);
6. 什么是基本表?什么是视图?两者的区别和联系是什么?
答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
7. 试述视图的优点。
答:(1)视图能够简化用户的操作。
(2)视图使用户能以多种角度看待同一数据。
(3)视图对重构数据库提供了一定程度的逻辑独立性。
(4)视图能够对机密数据提供安全保护。
8. 所有的视图是否都可以更新?为什么?
答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。如《概论》3.5.1中的视图