数据库系统教程1-7章课后答案(施伯乐)(第二版)(4)
3.2 教材中习题3的解答
3.1 名词解释
·基本表:实际存储在数据库中的表,称为基本表。
·视图:是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是数据库中只存放视图的定义而不存放视图的数据。
·实表:是对基本表的别称。 ·虚表:是对视图的别称。
·相关子查询:SELECT语句嵌套时,子查询中查询条件依赖于外层查询中的值,因此子查询要反复求值供外层查询使用。这种子查询称为相关子查询。
·联接查询:查询时要从多个基本表中提取数据,此时把多个基本表写在同一层的FROM子句中,这种查询形式称为联接查询。
·嵌套查询:查询时要从多个基本表中提取数据,此时把多个基本表分别放在不同层次上的FROM子句中,这种查询形式称为嵌套查询。
·交互式SQL:在终端交互方式使用的SQL语言。
·嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言。
·共享变量:嵌入的SQL语句和主语言语句间传递信息的变量,称为共享变量。共享变量先由主语言程序定义,再用SQL的说明语句说明,然后SQL语句就可使用这些变量。
·游标:游标是与某一查询相联系的符号名。游标有游标关系和游标指针两层含义。在游标打开时,游标(指针)指向查询结果的第一个记录之前。
·卷游标:在游标推进时,可以进退自如的游标。 3.2 对于教学数据库的三个基本表 S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE) C(C#,CNAME,TEACHER)
试用SQL的查询语句表达下列查询:
①检索LIU老师所授课程的课程号和课程名。 ②检索年龄大于23岁的男学生的学号和姓名。
③检索学号为S3学生所学课程的课程名与任课教师名。
④检索至少选修LIU老师所授课程中一门课程的女学生姓名。 ⑤检索WANG同学不学的课程的课程号。 ⑥检索至少选修两门课程的学生学号。
⑦检索全部学生都选修的课程的课程号与课程名。 ⑧检索选修课程包含LIU老师所授课程的学生学号。 解:① SELECT C#, CNAME
FROM C
WHERE TNAME=’LIU’; ② SELECT S#, SNAME
FROM S
WHERE AGE>23 AND SEX=’M’; ③ SELECT CNAME,TEACHER
FROM SC, C
WHERE SC.C#=C.C# AND S#=’S3’; ④ SELECT SNAME (联接查询方式)
FROM S, SC, C
WHERE S.S#=SC.S# AND SC.C#=C.C#
(2003/9/21) (GJ-DA) (共2页) 目录--16
AND SEX=’F’ AND TNAME=’LIU’; 或:SELECT SNAME (嵌套查询方式)
FROM S
WHERE SEX=’F’
AND S# IN (SELECT S#
FROM SC
WHERE C# IN (SELECT C#
FROM C
WHERE TNAME=’LIU’));
或:SELECT SNAME (存在量词方式)
FROM S
WHERE SEX=’F’
AND EXISTS (SELECT *
FROM SC
WHERE SC.S#=S.S#
AND EXISTS (SELECT * FROM C WHERE C.C#=SC.C# AND TNAME=’LIU’));
⑤ SELECT C# FROM C
WHERE NOT EXISTS (SELECT * FROM S, SC WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=’WANG’); ⑥ SELECT DISTINCT X.S#
FROM SC AS X, SC AS Y
WHERE X.S#=Y.S# AND X.C#!=Y.C#; ⑦ SELECT C#, CNAME FROM C
WHERE NOT EXISTS
(SELECT * FROM S
WHERE NOT EXISTS
(SELECT * FROM SC WHERE S#=S.S# AND C#=C.C#));
在1974年的SYSTEM R系统中,曾使用过“集合包含”的语法,即 (集合1)CONTAINS(集合2) 用这种语法也能写出本题的SELECT语句,即: SELECT C#,CNAME FROM C WHERE (SELECT S# FROM SC WHERE C#=C.C#) CONTAINS (SELECT S# FROM S);
(2003/9/21) (GJ-DA) (共2页)--17
目录 由于判断“(集合1)CONTAINS(集合2)”与“NOT EXISTS((集合2)EXCEPT(集合1))”是等价的,因此本题的SELECT语句也能这样写:
SELECT C#,CNAME FROM C WHERE NOT EXISTS
((SELECT S# FROM S)
EXCEPT
(SELECT S# FROM SC WHERE C#=C.C#));
⑧ SELECT DISTINCT S# FROM SC AS X WHERE NOT EXISTS (SELECT * FROM C WHERE TNAME=’LIU’ AND NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.S#=X.S# AND Y.C#=C.C#)); 与⑦类似,本题的SELECT语句也能这样写: SELECT DISTINCT S#
FROM SC X WHERE NOT EXISTS
((SELECT C# FROM C WHERE TEACHER=’LIU’)
EXCEPT
(SELECT C# FROM SC Y WHERE Y.S#=X.S#));
3.3 对于第3.2题中的8个查询语句,试给出SELECT语句的图示形式。
解:为了说明问题,这里先用高级语言的算法形式表示其执行过程,再给出图示形式。 下面给出④、⑤、⑦、⑧的算法及图示形式。
④ 如果把三个关系S、SC、C看成三个文件,那么可以看出这个查询语句的SELECT语句实际上是一个三重循环。从而可得这个查询的算法形式如下:
for关系S的每个元组do {which:=false; if S.SEX=’F’ then for 关系SC的每个元组,且NOT which do if SC.S#=S.S# then for 关系C的每个元组,且NOT which do if C.C#=SC.C#,且TEACHER=’LIU’ then {print(S.SNAME); which:=true; } };
这个算法可以用图3.1表示。 S S# SNAME AGE SEX SC S# C# GRADE C C# CNAME TEACHER _X P. F _X _Y _Y LIU 图3.1 ⑤for 关系S的每个元组 do
{if S.SNAME=’WANG’ then
for 关系C的每个元组 do
(2003/9/21) (GJ-DA) (共2页) 目录--18
{which:=false;
for 关系SC的每个元组,且NOT which do if SC.S# =S.S# ,且SC.C#=C.C# then which := true; if NOT which then print(S.SNAME);
};
这个算法可以用图3.2表示。图中“┐”表示“NOT EXISTS”,即“不存在满足此条件的元组” S S# SNAME AGE SEX C C# CNAME TEACHER SC S# C# GRADE _X WANG P._Y ┐ _X _Y 图3.2 ⑦ for 关系C的每个元组 do {which1 := false;
for 关系S的每个元组,且NOT which1 do
{ which2 := false;
for 关系SC的每个元组,且NOT which2 do
if SC.S# =S.S#, 且SC.C# =C.C# then which2 := true; if NOT which2 then which1:=true; };
if NOT which1 then print(C.C#,C.CNAME);
};
这个算法可以用图3.3表示。
C C# CNAME TEACHER S S# SNAME AGE SEX SC S# C# GRADE P._X P. ┐ _Y ┐ _Y _X 图3.3 ⑧ for 关系SC的每个元组x do {which1 := false;
for 关系C的每个元组y,且NOT which1 do
{ if y.TEACHER=’LIU’then { which2 := false;
for 关系SC的每个元组z,且NOT which2 do
if z.S# =x.S#,且z.C# =y.C# then w …… 此处隐藏:3150字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




