数据库概论参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、4 教材习题答案
3、1 试述SQL语言得特点。
答:
SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)与数据控制(Data Control)功能于一体,主要特点包括:
1、综合统一。SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL 得功能于一体。
2、高度非过程化。用SQL语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径得选择以及SQL语句得操作过程由系统自动完成。这不仅大大减轻了用户负担,而且有利于提高数据独立性。
3、面向集合得操作方式。SQL语言采用集合操作方式,不仅操作对象、查找结果可以就是元组得集合,而且一次插入、删除、更新操作得对象也可以就是元组得集合。
4、以同一种语法结构提供两种使用方式。SQL语言既就是自含式语言,又就是嵌入式语言。作为自含式语言,它能够独立地用于联机交互操作使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言得程序中,供程序员设计程序时使用。
5、语言简捷,易学易用。SOL语言功能极强,但由于设计巧妙,语言十分简捷,完成核心功能只用了9个动词。SQL语言接近英语句子,因此容易学习,容易使用。
6、支持三级模式结构。SQL语言支持关系数据库得三级模式结构。其中外模式对应于视图(View),模式对应于基本表,内模式对应于存储文件。
3、2 试述SQL得定义功能。
答:
SQL得数据定义功能包括定义表、定义视图与定义索引。
SQL语言使用CREATE TABLE语句建立基本表,ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表;使用CREATE INDEX语句建立索引,DROP INDEX语句删除索引;使用CREATE VIEW语句建立视图,DROP VIEW语句删除视图。
3、3 用SQL语句建立习题2、4中得4个表。
答:
对于供应商表:S(Sno(供应商代码),Sname (供应商名),Status(供应状态),City(供应商所在城市))
建S表
CREATE TABLE S
(Sno CHAR(4),Sname CHAR(10),Status CHAR(4),City CHAR(20));
对于零件表:P(Pno(零件代码),Pname(零件名),Color(颜色),Weight(重量))
建P表
CREATE TABLE P
(Pno CHAR(4),Pname CHAR(20),Color CHAR(4),Weight INT);
对于工程项目表:J(Jno(工程项目代码),Jname(工程项目名),City(工程项目所在得城
市))
建J表
CREATE TABLE J
(Jno CHAR(4),Jname CHAR(20),City CHAR(20));
对于零件供应情况表:SPJ(Sno(供应商代码),Pno(零件代码),Jno(工程项目代码),QTY(供应数量))。
建SPJ表
CREATE TABLE SPJ
(Sno CHAR(4), Pno CHAR(4),Jno CHAR(4),QTY INT);
3、4 针对习题3、3中建立得3个表,试用SQL语言完成习题2、4中得查询。
⑴找出供应工程J1零件得供应商号;
答:
SELECT Sno
FROM SPJ
WHERE Jno=’J1’;
⑵找出供应工程J1零件P1得供应商号;
答:
SELECT Sno
FROM SPJ
WHERE Jno=’J1’ AND Pno=’P1’;
⑶找出供应工程J1红色零件得供应商号;
答:
SELECT Sno
FROM SPJ
WHERE Jno=’J1’ AND Pno IN
(SELECT Pno
FROM P
WHERE Color=’绿’);
或
SELECT Sno
FROM SPJ ,P
WHERE Jno=’J1’ AND SPJ、Pno=P、Pno AND P、Color=’绿’);
⑷找出没有使用杭州供应商生产得绿色零件得工程号。
答:
SELECT Jno
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ、Jno=J、Jno AND Sno IN
(SELECT Sno
FROM S
WHERE City=’杭州’)
AND Pno IN
(SELECT Pno
FROM P
WHERE Col or=’绿’));
或
SELECT Jno
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ,S,P
WHERE SPJ、Jno=J、Jno AND SPJ、Sno=S、Sno
AND SPJ、Pno=P、Pno AND S、City=’杭州’
AND P、Color=’绿’);
⑸找出至少用了S2供应商所供应得全部零件得工程号。
答:
SELECT DISTINCT Jno
FROM SPJ SPJZ
WHERE NOT EXISTS
(SELECT *
FROM SPJ SPJX
WHERE Sno=’S2’
AND NOT EXISTS
(SELECT *
FROM SPJ SPJY
WHERE SPJY、Pno=SPJX、Pno
AND SPJY、Jno=SPJZ、Jno));
⑹找出供应红色得P1零件且其供应量大于200得供应商号。
答:
SELECT Jno
FROM P,SPJ
WHERE P、Pno=SPJ、Pno AND P、Pno=’P1’ AN D SPJ、QTY>=200;
3、5 针对习题3、3中得4个表,试用SQL语言完成以下各项操作。
(1) 找出所有供应商得姓名与所在城市。
答:
SELECT Sname,City