《数据库原理》作业参考答案3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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中一个关系就对应一个表,一个(或多个)基本表对应一个存储文件。
视图是从一个或几个基本表(或视图)导出的表,是一个虚表。
区别:基本表是实表,磁盘上存在对应的数据;视图是虚表,磁盘上只存放视图的定义。