当前位置:文档之家› 数据库原理与应用教程答案

数据库原理与应用教程答案

习题参考答案第1章习题参考答案一、选择题1. C2. B3. D4. C5. D6. A7. A8. B9. D、 10. B 11. C 12. D 13. A 14. D 15. B二、填空题1. 数据库系统2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 多对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念结构(逻辑)12. 树有向图二维表嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构第2章习题参考答案一、选择题1. A2. C3. C4. B5. B6. C7. B8. D9. C 10. A11. B 12. A 13. A 14. D 15. D二、填空题1. 选择(选取)2. 交3. 相容(或是同类关系)4. 并差笛卡尔积选择投影5. 并差交笛卡尔积6. 选择投影连接7. σf(R)8. 关系代数关系演算9. 属性10. 同质11. 参照完整性12. 系编号系名称,电话,办公地点13. 元组关系域关系14. 主键外部关系键15. R和S没有公共的属性三简答题(1)查询T1老师所授课程的课程号和课程名。

ΠCNO,CN(σTNO=’T1’(TC)*ΠCNO,CN(C))(2)查询年龄大于18岁男同学的学号、姓名、系别。

ΠSNO, SN, Dept(σAge>18Sex=’男’(S))(3)查询“李力”老师所授课程的课程号、课程名和课时。

ΠCNO (ΠTNO(σTN=’李力’(T))*TC))* C(4)查询学号为S1的同学所选修课程的课程号、课程名和成绩。

ΠCNO,CN,Score(σSNO=’S1’(SC)*ΠCNO,CN(C))(5)查询“钱尔”同学所选修课程的课程号、课程名和成绩。

ΠCNO,CN,Score(ΠSNO(σSN=’钱尔’(S))*ΠCNO,CN(C)*SC)(6)查询至少选修“刘伟”老师所授全部课程的学生姓名。

ΠSN((ΠSNO, SN(S)*(ΠSNO, CNO(SC)ΠCNO(σTN=’刘伟’(T*TC))))(7)查询“李思”同学未选修的课程的课程号和课程名。

ΠCNO, CN((ΠCNO(C)-ΠCNO(σSN=’李思’(S)*SC))*C)(8)查询全部学生都选修了的课程的课程号和课程名。

ΠCNO, CN(C*(ΠSNO, CNO(SC)ΠSNO(S)))(9)查询选修了课程号为C1和C2的学生的学号和姓名。

(ΠSNo,CNo(SC)ΠCNo(σCNo =’C1’CNo =’C2’(C))*ΠSNo,SN(S)(10)查询选修全部课程的学生的学号和姓名。

ΠSNO, SN(S*(ΠSNO, CNO(SC)ΠCNO(C)))(11)查询选修课程包含“程军”老师所授课程之一的学生学号。

ΠSNO(SC*ΠCNO(σTN=’程军’(C)))(12)查询选修课程包含学号S2的学生所修课程的学生学号。

ΠSNO, CNO(SC)ΠCNO(σCNO=’S2’(SC))第3章习题参考答案一、选择题1. B2. A3. C4. B5. C6. C7. B8. D9. A 10. D二、填空题1.结构化查询语言(Structured Query Language)2.数据查询、数据定义、数据操纵、数据控制3.外模式、模式、内模式4.数据库、事务日志5.NULL/NOT NULL、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束、CHECK约束6.聚集索引、非聚集索引7.连接字段8.行数9.定义10.系统权限、对象权限11.基本表、视图12.(1)INSERT INTO S VALUES('990010','李国栋','男',19)(2)INSERT INTO S(No,Name) VALUES('990011', '王大友')(3)UPDATE S SET Name='陈平' WHERE No='990009'(4)DELETE FROM S WHERE No='990008'(5)DELETE FROM S WHERE Name LIKE '陈%'13.CHAR(8) NOT NULL14.o=o15.ALTER TABLE StudentADD SGrade CHAR(10)三、设计题1. 图书(Book)(1)查找在“高等教育出版社”出版,书名为“操作系统”的图书的作者名。

SELECT BAuth FROM Book, PublishWHERE Book.PNo= Publish.PNo AND BName=’操作系统’ AND PName=’高等教育出版社’(2)查找为作者“张欣”出版全部“小说”类图书的出版社的电话。

SELECT PTel FROM Book, PublishWHERE Book.PNo= Publish.PNo AND BType =’小说’ AND BAuth=’张欣’(3)查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图书类别。

SELECT BPrice, PName, BType FROM Book, PublishWHERE Book.PNo= Publish.PNo AND PName =’电子工业出版社’ AND BType =’计算机’(4)查找比“人民邮电出版社”出版的“高等数学”价格低的同名书的有关信息。

SELECT * FROM BookWHERE BName =’高等数学’AND BPrice<ANY(SELECT BPrice FROM Book,PublishWHERE Book.PNo= Publish.PNo AND PName =’人民邮电出版社’ AND BName =’高等数学’)AND PName <>’人民邮电出版社’(5)查找书名中有“计算机”一词的图书的书名及作者。

SELECT BName, BAuth FROM BookWHERE BName LIKE’%计算机%’(6)在“图书”表中增加“出版时间”(BDate)项,其数据类型为日期型。

ALTER TABLE BookADD BDate datetime(7)在“图书”表中以“作者”建立一个索引。

CREATE INDEX Name ON Book(BAuth) desc2. 存书(BookStore)(1)建立存书表和销售表。

CREATE TABLE BookStore( BNo CHAR(8) PRIMARY KEY,BName VARCHAR(20),Publish VARCHAR(20),Version INT,PDate DATETIME,BAuth VARCHAR(10),BPrice NUMERIC(4,1),BInPrice NUMERIC(4,1),BCount INT);CREATE TABLE BookSell( BNo CHAR(8) PRIMARY KEY,SDate DATETIME,SCount INT,PDate DATETIME, SMoney SMALLMONEY );(2) 掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价*数量,即库存占用的资金)SELECT BName, BCount, BPrice* BCount AS TOTALCOUNT FROM BookStore(3) 统计总销售额。

SELECT SUM(SCount * SMoney) AS TOTALMONEY FROM BookSell(4) 列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额)SELECT BNo, BName , SDate , BCount , SCount * SMoney AS TOTALMONEY FROM BookStore, BookSellWHERE BookStore. BNo= BookSell. Bno GROUP BY BNo, BName , SDate , BCount(5) 分析畅销书,即列出当期(从当前起,向前30天)销售数量大于100的书名、数量。

SELECT BName , SCount FROM BookStore, BookSellWHERE BookStore. BNo= BookSell. BNo AND SCount>100 AND SDate+30<(SELECT MAX(SDate) FROM BookSell)或:SDate-‘2009-5-1’<30 或: ‘2009-5-30’- SDate <30 或:SDate BETWEEN ‘2009-5-1’ AND ‘2009-5-30’ 说明:日期的表示方法2009-5-30 20090530 2009/5/30四、简答题 S (学生信息表)(1) 创建S 表,S#为主键,SN 不能为空。

CREATE TABLE S( S# CHAR(8) PRIMARY KEY ,SN CHAR(8) NOT NULL , AGE INT,DEPT VARCHAR(20) );(2)创建计算机系学生的视图,该视图的属性列由学号、姓名、课程名和任课教师号组成。

CREATE VIEW computer_student(S#, SN, C#,T#)ASSELECT S.S#, SN,SC.C#,T# FROM S,SC,TWHERE S.S#= SC.S# AND SC.C#= T.C# AND DEPT=’计算机’(3)检索计算机系年龄在20岁以上的学生学号。

SELECT S# FROM S WHERE AGE>20 AND DEPT=’计算机’(4)检索姓王的教师所讲课程的课程号和课程名称。

SELECT C.C#,CN FROM C, TWHERE C.C#= T.C# AND TN LIKE‘王%’(5)检索张三同学所学课程的成绩,列出SN, C#,GRSELECT SN,C#,GR FROM S,SCWHERE S.S#= SC.S# AND SN= ’张三’(6)检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。

SELECT SN,T.C#,GR FROM T,SC,SWHERE T.C# =SC.C# AND S.S#= SC.S# AND (SAL+COMM)>1000(7)检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。

相关主题