试述SQL的特点
有两个关系 S(A,B,C, D)和 T(C,D,E,F),写出与下列查询等价的 SQL 表达式:
用SQL语句建立第2章习题6中的4个表;针对建立的4个表用SQL完成第2章习题6中的查询
针对习题4中的4个表试用SQL完成以下各项操作
(1)找出所有供应商的姓名和所在城市
(2)找出所有零件的名称、颜色、重量
(3)找出使用供应商S1所供应零件的工程号码
(4)找出工程项目J2使用的各种零件的名称及其数量
(5)找出上海厂商供应的所有零件号码
(6)找出使用上海产的零件的工程名称
(7)找出没有使用天津产的零件的工程号码
(8)把全部红色零件的颜色改成蓝色
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改:
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录
(11)请将(S2J6P4200)插入供应情况关系
(1) 找出所有供应商的姓名和所在城市。
SELECT SNAME, CITYFROM S;
(2) 找出所有零件的名称、颜色、重量。
SELECT PNAME, COLOR, WEIGHTFROM P;
(3) 找出使用供应商S1所供应零件的工程号码。
SELECT JNOFROM SPJWHERE SNO=‘S1’;
(4) 找出工程项目J2使用的各种零件的名称及其数量。
SELECT P.PNAME, SPJ.QTYFROM P, SPJWHERE P.PNO=SPJ.PNOAND SPJ.JNO=‘J2’;
(5) 找出上海厂商供应的所有零件号码。
SELECT DISTINCT PNOFROM SPJWHERE SNO IN(SELECT SNOFROM SWHERE CITY=‘上海’);
(6) 找出使用上海产的零件的工程名称。
SELECT JNAMEFROM J, SPJ, SWHERE J. JNO=SPJ. JNOAND SPJ. SNO=S.SNOAND S.CITY=‘上海’;或SELECT JNAMEFROM JWHERE JNO IN(SELECT JNOFROM SPJ, SWHERE SPJ. SNO=S.SNOAND S.CITY=‘上海’);
(7) 找出没有使用天津产的零件的工程号码。
SELECT JNOFROM JWHERE NOT EXISTS(SELECT *FROM SPJWHERE SPJ.JNO=J.JNO AND SNO IN(SELECT SNOFROM SWHERE CITY=‘天津’));
或SELECT JNOFROM JWHERE NOT EXISTS(SELECT *1FROM SPJ, SWHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’);
(8) 把全部红色零件的颜色改成蓝色。
UPDATE PSET COLOR='蓝’WHERE COLOR=‘红’ ;
(9) 由S5供给J4的零件P6改为由S3供应,请作必要的修改。
UPDATE SPJSET SNO='S3’WHERE SNO=‘S5’ AND JNO=‘J4’ AND PNO=‘P6’;
(10) 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
DELETEFROM SPJWHERE SNO=‘S2’;或DELETEFROM SWHERE 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 SPJVALUES (S2,P4,J6,200);
什么是基本表?什么是试图?两者的区别和联系是什么?哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明
请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量;
(2)找出供应商S1的供应情况。