数据库原理第三章课后题答案(第四版)

简介: 数据库原理第三章课后题答案(第四版)

一、选择题

1. B    2. A    3. C    4. B    5. C    6. C  

7. B    8. D    9. A    10. D   11. 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 NULL

14.SC.CNo=C.CNo

15.ALTER TABLE Student

ADD

SGrade CHAR(10)

三、设计题

1.设有以下两个数据表,各表中的结果及字段名如下:

图书(Book)包括书号(BNo)、类型(BType)、书名(BName)、作者(BAuth)、单价(BPrice)、出版社号(PNo);

出版社(Publish)包括出版社号(PNo)、出版社名称(PName)、所在城市(PCity)、电话(PTel)。

用SQL实现下述功能。

(1)在“高等教育出版社”出版、书名为“操作系统”的图书的作者名;

(2)查找为作者“张欣”出版全部“小说”类图书的出版社的电话;

(3)查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图书类别;

(4)查找比“人民邮电出版社”出版的“高等数学”价格低的同名书的有关信息;

(5)查找书名中有“计算机”一词的图书的书名及作者;

(6)在“图书”表中增加“出版时间”(BDate)项,其数据类型为日期型;

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

(1)SELECT BAuth FROM Book,Pubish WHERE Book.PNo=Pubish.PNo AND BName=’操作系统’ AND PName=’高等教育出版社’

(2)SELECT PTel FROM Book,Pubish WHERE Book.PNo=Pubish.PNo AND BType=’小说’ AND BAuth=’张欣’

(3)SELECT BPrice,PName,Btype FROM Book,Pulish

WHERE Book.PNo=Pubish.PNo AND PName=’电子工业出版社’ AND BType=’计算机’

(4)SELECT * FROM Book

WHERE BName=’高等数学’ AND BPrice<ANY(SELECT BPrice FROM Book,Pubish WHERE Book.PNo=Pubish.PNo AND PName=’人民邮电出版社’ AND BName=’高等数学’) AND PName<>’人民邮电出版社’

(5)SELECT BName,BAuth FROM Book WHERE BName LIKE ‘%计算机%’

(6)ALTER TABLE Book

ADD BDate datetime

(7)CREATE INDEX Name ON Book (BAuth)

2.假设有一个书店,书店的管理者要对书店的经营状况进行管理,需要建立一个数据库,其中包括两个表:

存书(书号,书名,出版社,版次,出版日期,作者,书价,进价,数量)

销售(日期,书号,数量,金额)

请用SQL实现书店管理者的下列要求。

(1)建立存书表和销售表;

(2)掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价×数量,即库存占用的资金);

(3)统计总销售额;

(4)列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额);

(5)分析畅销书,即列出本期(从当前日期起,向前30天)销售数量大于100的书名、数量。

(1)

CREATE TABLE Book

(

BNo CHAR(10) PRIMARY KEY,

BName  VARCHAR(50) NOT NULL,

Publish   VARCHAR(50),

Version   FLOAT,

PDate  DATE,

BAuth  VARCHAR(30),

BPirce NUMERIC(4,1),

BInPrice  NUMERIC(4,1),

BCount INT

);

CREATE TABLE BookSell

(BSID CHAR(20) PRIMARY KEY,

BNO CHAR(8) CONSTRAINT B_C FOREIGN KEY REFERENCES Book(BID),

SDate  DATE,

SCount INT,

SMoney SMALLMONEY

);

(2)SELECT BName,BCount,BPrice*BCount AS TOTALCOUNT FROM Book

(3)SELECT SUM(SCount*SMoney) AS TOTALMONEY, SDate FROM BookSell GROUP BY SDate

(4)SELECT BNo,BName,SDate,BCount,SCount*SMoney AS TOTALMONEY FROM BookS,BookSell WHERE Book.BNo=BookSell.BNo

(5)SELECT BName,SCount FROM Book,BookSell WHERE BookStore.BNo=BookSell.BNo AND SCount>100 AND SDate+30<(SELECT MAX(SDate) FROM BookSell)

四、简答题

1.简述SQL支持的三级逻辑结构。

SQL支持数据库的三级模式结构。外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。

2.SQL有什么特点?

SQL具有简单、易学、综合、一体等鲜明的特点,主要有以下几个方面。

(1)SQL是类似于英语的自然语言,语法简单,且只有为数不多的几条命令,简洁易用。

(2)SQL是一种一体化的语言,它包括数据定义、数据查询、数据操纵和数据控制等方面的功能,可以完成数据库活动中的全部工作。

(3)SQL是一种非过程化的语言。

(4)SQL是一种面向集合的语言,每个命令的操作对象是一个或多个关系,结果也是一个关系。

(5)SQL既是自含式语言,又是嵌入式语言。自含式语言可以独立使用交互命令,适用于终端用户、应用程序员和DBA;嵌入式语言使其嵌入在高级语言中使用,供应用程序员开发应用程序。

3.解释本章所涉及的有关基本概念的定义:基本表、视图、索引、系统权限、对象权限、角色,并说明视图、索引、角色的作用。

基本表(Base Table)。一个关系对应一个基本表。

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

索引是一种可以加快检索的数据库结构,它包含从表或视图的一列或多列生成的键,以及映射到指定数据存储位置的指针。

系统权限是指被授权用户是否可以连接到数据库上及数据库中可以进行哪些系统操作。

对象权限是指用户对数据库中具体对象所拥有的权限,对象权限针对某个特定的模式对象执行操作的权利,只能针对模式来设置和管理。

视图通常用来集中、简化和自定义每个用户对数据库的不同认识,可用作安全机制,可用于提供向后兼容接口来模拟曾经存在但其架构已更改的基础表,还可以在向SQL Server复制数据和从其中复制数据时使用视图,以便提高性能并对数据进行分区。

通过创建设计良好的索引,可以显著提高数据库查询和应用程序的性能。除提高检索速度外,索引还可以强制表中的行具有唯一性,从而确保数据的完整性。

角色用于区分不同的数据库用户,通过不同的权限设置,可保证数据

在数据库中,为便于对用户及权限进行管理,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。使用角色能够更加方便和高效地对权限进行管理。

4.在对数据库进行操作的过程中,设置视图机制有什么优点?它与数据表有什么区别?

视图通常用来集中、简化和自定义每个用户对数据库的不同认识,可用作安全机制,可用于提供向后兼容接口来模拟曾经存在但其架构已更改的基础表,还可以在向SQL Server复制数据和从其中复制数据时使用视图,以便提高性能并对数据进行分区。

视图是一个虚拟表,其内容由查询定义,视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。视图中的行和列数据来自定义视图的查询所引用的基本表,并且在引用视图时动态生成。

5.设有如下四个基本表S,C,SC,T,结构如图3-20所示。

 

图3-20  某教学数据库实例

(1)用SQL的DDL语言创建S表,S#为主码,SN不能为空。

(2)创建计算机系学生的视图,该视图的属性列由学号、姓名、课程号和任课教师号组成。

(3)检索计算机系年龄在20岁以上的学生学号。

(4)检索姓王的教师所讲课程的课程号及课程名称。

(5)检索张三同学所学课程的成绩,列出SN、C#和GR。

(6)检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。

(7)检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。

(8)检索选修和张三同学所选课程中任意一门相同的学生姓名、课程名。

(9)S1同学选修了C3,将此信息插入SC表中。

(10)删除S表中没有选修任何课程的学生记录。

(1)

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#)

AS

SELECT S.S#,SN,SC.C#,T# FROM S,SC,T

WHERE S.S#=SC.S# AND SC.C#=T.C# AND DEPT=’计算机’

(3)SELECT S# FROM S WHERE AGE>20 AND DEPT=‘计算机’

(4)SELECT C.C#,CN FROM C,T WHERE C.C#=T.C# AND TN LIKE ‘王%’

(5)SELECT SN,C#,GR FROM S,SC WHERE S.S#=SC.S# AND SN=‘张三’

(6)SELECT SN,T.C#,GR FROM T,SC,S

WHERE T.C#=SC.C# AND S.S#=SC.S# AND (SAL+COMM)>1000

(7)SELECT S.S#,SN,AVG(GR) AS AVGSCORE FROM S,SC

WHERE S.S#=SC.S# AND C#<>’C1’

GROUP BY S.S#,SN HAVING COUNT(*)=2 ORDER BY AVG(GR) DESC

(8)SELECT SN,CN FROM S,SC,C

WHERE S.S#=SC.S# AND C.C#=SC.C# AND C#

IN (SELECT C# FROM S,SC

WHERE S.S#=SC.S# AND SN=‘张三’) AND SN<>’张三’

(9)INSERT INTO SC(S#,C#) VALUES (‘S1’, ‘C3’)

10DELETE FROM S WHERE S# NOT IN (SELECT DISTINCT S# FROM SC)

目录
相关文章
|
1月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
52 5
Mysql(3)—数据库相关概念及工作原理
|
19天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
37 2
|
1月前
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
58 5
|
1月前
|
SQL 关系型数据库 MySQL
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
|
1月前
|
SQL 存储 Java
sql注入原理与实战(二)数据库原理
sql注入原理与实战(二)数据库原理
|
3月前
|
消息中间件 Kafka 数据库
深入理解Kafka的数据一致性原理及其与传统数据库的对比
【8月更文挑战第24天】在分布式系统中,确保数据一致性至关重要。传统数据库利用ACID原则保障事务完整性;相比之下,Kafka作为高性能消息队列,采用副本机制与日志结构确保数据一致性。通过同步所有副本上的数据、维护消息顺序以及支持生产者的幂等性操作,Kafka在不牺牲性能的前提下实现了高可用性和数据可靠性。这些特性使Kafka成为处理大规模数据流的理想工具。
83 6
|
4月前
|
存储 SQL 关系型数据库
(六)MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面纱!
《索引原理篇》它现在终于来了!但对于索引原理及底层实现,相信大家多多少少都有了解过,毕竟这也是面试过程中出现次数较为频繁的一个技术点。在本文中就来一窥`MySQL`索引底层的神秘面纱!
347 5
|
4月前
|
SQL 存储 安全
SQL数据库:核心原理、应用实践与未来展望
在电子商务领域,SQL数据库用于存储商品信息、用户信息、订单信息等。通过SQL数据库,电商平台可以实现商品的快速检索、用户行为的跟踪分析、订单状态的实时更新等功能,提升用户体验和运营效率。
|
3月前
|
存储 NoSQL 关系型数据库
Web中的数据库:原理、应用与代码实现
Web中的数据库:原理、应用与代码实现
109 0
|
4月前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
66 0