《数据库原理》作业参考答案3

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

《数据库原理》作业参考答案3

第三次(P148)

3.用SQL语句建立第二章习题5中的四个表。

答:creat table s (sno char(2),sname char(6),status char(2),city char(4));

creat table p (pno char(2),pname char(6),color char(2),weight int);

creat table j (jno char(2),jname char(6),city char(4));

creat table spj (sno char(2), pno char(2), jno char(2),qty int); 4.试用SQL语句完成第二章习题5中的查询。

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

答:select distinct sno from spj where jno=’j1’;

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

答:select distinct sno from spj where jno=’j1’ and pno=’p1’;

(3)求供应工程J1零件为红色的供应商号码SNO;

答:select distinct sno from spj,p where spj.pno=p.pno and color=’红’;

(4)求没有使用天津供应商生产的红色零件的工程号JNO;

答:select jno from j where not exist

(select * from spj,p,s where spj.pno=p.pno and spj.sno=s.sno and spj.jno=j.jno

and p.color=’红’ and s.city=’天津’);

(5)求至少用了供应商S1所供应的全部零件的工程号JNO.

答:供应商s1供应的全部零件:

select pno from spj where spj.sno=’s1’;

供应商s1供应的但所求工程jno没有用的零件:

select pno from p where not exist

(select * from spj x where x.pno=p.pno and x.jno=j.jno and x.sno in (select pno from spj y where y.sno=’s1’));

不存在供应商s1供应的但所求工程jno没有用的零件:

select jno from j where not exist

(select pno from p where not exist

(select * from spj x where x.pno=p.pno and x.jno=j.jno and x.sno in (select pno from spj y where y.sno=’s1’))

);

5.习题3中的四个表用SQL语言完成操作。

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

答:select sname,city from s;

(2)找出所有零件的名称、颜色、重量。

答:select pname,color,weught from p;

(3)找出使用供应商S1所供应零件的工程号码。

答:select jno from spj where sno=’s1’;

(4)找出工程项目J2使用的各种零件的名称及其数量。

答:select p.pname,spj.qty from spj,p where spj.pno=p.pno and spj.jno=’j2’

(5)找出上海厂商供应的所有零件号码。

答:select pno from spj where sno in (select sno from s where city=’上海’);

(6)找出使用上海产的零件的工程名称。

答:select jname from j where jno in (select jno from spj where sno in (select sno from s where city=’上海’))

(7)找出没有使用天津产的零件的工程号码。

答:select jno from j where not exist

(select * from spj,s where spj.sno=s.sno and spj.jno=j.jno and s.city=’天津’); 或:

select jno from spj where sno in (select sno from s where s.city<>’天津’); (8)把全部红色零件的颜色改成蓝色。

答:update p set color=’蓝’ where color=’红’;

(9)由S5供给J4的零件P6改为由S3供应。

答:update spj set sno=’s3’ where sno=’s5’ and pno=’p6’ and jno=’j4’;

(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。

答:delete from s where sno=’s2’;

delete from spj where sno=’s2’;

(11)将(S2,J6,P4,200)插入供应情况关系。

答:insert into spj values(‘s2’,’p4’,’j6’,200);

6.什么是基本表?什么是视图?两者的区别和联系是什么?

答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表,一个(或多个)基本表对应一个存储文件。

视图是从一个或几个基本表(或视图)导出的表,是一个虚表。

区别:基本表是实表,磁盘上存在对应的数据;视图是虚表,磁盘上只存放视图的定义。

相关文档
最新文档