《数据库原理及应用第2版习题参考答案.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用第2版习题参考答案.docx(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 数据概述一选择题1下列关于数据库管理系统的说法,错误的是 CA数据库管理系统与操作系统有关,操作系统的类型确定了能够运行的数据库管理系统的类型B数据库管理系统对数据库文件的访问必需经过操作系统实现才能实现C数据库应用程序可以不经过数据库管理系统而干脆读取数据库文件D数据库管理系统对用户隐藏了数据库文件的存放位置与文件名2下列关于用文件管理数据的说法,错误的是 DA用文件管理数据,难以供应应用程序对数据的独立性B当存储数据的文件名发生改变时,必需修改访问数据文件的应用程序C用文件存储数据的方式难以实现数据访问的平安限制D将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加
2、快用户操作数据的效率3下列说法中,不属于数据库管理系统特征的是 CA供应了应用程序与数据的独立性B全部的数据作为一个整体考虑,因此是相互关联的数据的集合C用户访问数据时,须要知道存储数据的文件的物理信息D能够保证数据库数据的牢靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失5在数据库系统中,数据库管理系统与操作系统之间的关系是 DA相互调用B数据库管理系统调用操作系统C操作系统调用数据库管理系统D并发运行6数据库系统的物理独立性是指 DA不会因为数据的改变而影响应用程序B不会因为数据存储结构的改变而影响应用程序C不会因为数据存储策略的改变而影响数据的存储结构D不会因为数据逻辑结构的改变而
3、影响应用程序7数据库管理系统是数据库系统的核心,它负责有效地组织, 存储与管理数据,它位于用户与操作系统之间,属于 AA系统软件B工具软件C应用软件D数据软件8数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是 BA数据库B操作系统C应用程序D数据库管理系统9下列关于客户/服务器结构与文件服务器结构的描述,错误的是 DA客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端B客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件C客户/服务器结构比文件服务器结构的网络开销小D客户/服务器结构可以供应数据共享功能,而用
4、文件服务器结构存储的数据不能共享数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有平安限制机制,能够保证数据的平安, 牢靠,允许并发地运用数据库,能有效, 与时地处理数据,并能保证数据的一样性与完整性。10下列关于数据库技术的描述,错误的是 BA数据库中不但须要保存数据,而且还须要保存数据之间的关联关系B由于数据是存储在磁盘上的,因此用户在访问数据库数据时须要知道数据的存储位置C数据库中数据存储结构的改变不会影响到应用程序D 数据库中的数据具有较小的数据冗余二填空题1数据管理的发展主要经验了_与_两个阶段。文件管理 数据库管理
5、2在利用数据库技术管理数据时,全部的数据都被_统一管理。数据库管理系统3数据库管理系统供应的两个数据独立性是_独立性与_独立性。 物理 逻辑4数据库系统能够保证进入到数据库中的数据都是正确的数据,该特征称为_。数据完整性5在客户/服务器结构中,数据的处理是在_端完成的。 服务器6数据库系统就是基于数据库的计算机应用系统,它主要由_, _与_三部分组成。数据库, 数据库管理系统与应用程序7与用数据库技术管理数据相比,文件管理系统的数据共享性_,数据独立性_。 差 低8在数据库技术中,当表达现实世界的信息内容发生改变时,可以保证不影响应用程序,这个特性称为_。逻辑独立性9当数据库数据由于机器硬件故
6、障而遭到破坏时,数据库管理系统供应了将数据库复原到正确状态,并尽可能使数据不丢失的功能,这是数据库管理系统的_特性保证的。牢靠性10数据库中的数据是相互关联的数据集合,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,且具有平安性与牢靠性,这些特征都是由_保证的。 数据库管理系统第2章 数据模型与数据库系统结构一选择题1数据库三级模式结构的划分,有利于AA. 数据的独立性 B. 管理数据库文件C. 建立数据库 D. 操作系统管理数据库2在数据库的三级模式中,描述数据库中全体数据的逻辑结构与特征的是BA内模式 B.模式 C. 外模式 D. 其他3数据库系统中将数据分为三个模式,从而供应
7、了数据的独立性,下列关于数据逻辑独立性的说法,正确的是CA. 当内模式发生改变时,模式可以不变B. 当内模式发生改变时,应用程序可以不变C. 当模式发生改变时,应用程序可以不变D. 当模式发生改变时,内模式可以不变4为最大限度地保证数据库数据的正确性,关系数据库实现了三个完整性约束,下列用于保证明体完整性的是BA. 外码B.主码C. CHECK约束D. UNIQUE约束5下列关于关系中主属性的描述,错误的是DA. 主码所包含的属性肯定是主属性B. 外码所引用的属性肯定是主属性C. 候选码所包含的属性都是主属性D. 任何一个主属性都可以唯一地标识表中的一行数据6设有关系模式销售(顾客号,商品号,
8、销售时间,销售数量),若允许一个顾客在不同时间对同一个产品购买多次,则此关系模式的主码是DA顾客号B产品号C(顾客号,商品号)D(顾客号, 商品号, 销售时间)7关系数据库用二维表来存储数据。下列关于关系表中记录的说法,正确的是BA依次很重要,不能交换B依次不重要C按输入数据的依次排列D肯定是有序的8下列模式中,用于描述单个用户数据视图的是CA内模式B概念模式C外模式D存储模式9在利用概念层数据模型描述数据时,一般要求模型要满意三个要求。下列描述中,不属于概念层数据模型应满意的要求的是AA能够描述并发数据B能够真实地模拟现实世界C简洁被业务人员理解D能够便利地在计算机上实现10数据模型三要素是
9、指BA数据结构, 数据对象与数据共享B数据结构, 数据操作与数据完整性约束C数据结构, 数据操作与数据的平安限制D数据结构, 数据操作与数据的牢靠性11下列关于实体联系模型中联系的说法,错误的是DA一个联系可以只与一个实体有关B一个联系可以与两个实体有关C一个联系可以与多个实体有关D一个联系也可以不与任何实体有关12数据库系统中的三级模式以与模式间的映像供应了数据的独立性。下列关于两级映像的说法,正确的是CA外模式到模式的映像是由应用程序实现的,模式到内模式的映像是由DBMS实现的B外模式到模式的映像是由DBMS实现的,模式到内模式的映像是由应用程序实现的C外模式到模式的映像以与模式到内模式的
10、映像都是由DBMS实现的D外模式到模式的映像以与模式到内模式的映像都是由应用程序实现的13下列不属于数据完整性约束的是DA实体完整性B参照完整性C域完整性D数据操作完整性14下列关于关系操作的说法,正确的是AA关系操作是非过程化的B在进行关系操作时,用户须要知道数据的存储位置C在进行关系操作时,用户须要知道数据的存储结构D用户可以在关系上干脆进行行定位操作14下列关于概念层数据模型的说法,错误的是CA概念层数据模型应当采纳易于用户理解的表达方式B概念层数据模型应当比较易于转换成组织层数据模型C在进行概念层数据模型设计时,须要考虑详细的DBMS的特点D在进行概念层数据模型设计时,重点考虑的内容是
11、用户的业务逻辑15下列关于外码的说法,正确的是CA外码必需与其所引用的主码同名B外码列不允许有空值C外码与所引用的主码名字可以不同,但语义必需相同D外码的取值必须要与所引用关系中主码的某个值相同16下列关于关系的说法,错误的是DA关系中的每个属性都是不行再分的基本属性B关系中不允许出现值完全相同的元组C关系中不须要考虑元组的先后依次D关系中属性依次的不同,关系所表达的语义也不同二填空题1数据库可以最大限度地保证数据的正确性,这在数据库中被称为_。 数据完整性2实体-联系模型主要包含_, _与_三部分内容。实体 属性 联系3假如实体A与实体B是一对多联系,则实体B中的一个实例最多可对应实体A中的
12、_实例。一个4数据完整性约束包括_完整性, _完整性与_完整性。 实体 参照 用户定义5关系数据模型的组织形式是_。 二维表6数据库系统的_与_之间的映像,供应了数据的物理独立性。7数据的逻辑独立性是指当_改变时可以保持_不变。 内模式 模式8数据模型三要素包括_, _与_。数据结构 数据操作 数据完整性约束9实体联系模型属于_层数据模型,它与详细的DBMS_。概念 无关10关系操作的特点是基于_的操作。 集合11当数据的物理存储位置发生改变时,通过调整_映像,可以保证_不改变,从而保证数据的物理独立性。 模式/内模式 模式12参照完整性约束是通过_保证的。 外码第3章 SQL语言基础与数据定
13、义功能一选择题1下列关于SQL语言特定的叙述,错误的是 BA运用SQL语言访问数据库,用户只需提出做什么,而无需描述如何实现BSQL语言比较困难,因此在运用上比较难CSQL语言可以在数据库管理系统供应的应用程序中执行,也可以在DOS环境下执行D运用SQL语言可以完成任何数据库操作2下列所述功能中,不属于SQL语言功能的是 DA数据库与表的定义功能 B数据查询功能C数据增, 删, 改功能D供应便利的用户操作界面功能3设某职工表中有用于存放年龄(整数)的列,下列类型中最合适年龄列的是 CAint BsmallintCtinyintDbit4SQL Server数据库是由文件组成的。下列关于数据库所
14、包含的文件的说法,正确的是 DA一个数据库可包含多个主数据文件与多个日志文件B一个数据库只能包含一个主数据文件与一个日志文件C一个数据库可包含多个次要数据文件,但只能包含一个日志文件D一个数据库可包含多个次要数据文件与多个日志文件5在SQL Server中创建用户数据库,其主数据文件的大小必需大于 BAmaster数据库的大小Bmodel数据库的大小Cmsdb数据库的大小D3MB6在SQL Server系统数据库中,存放用户数据库公共信息的是 DAmasterBmodelCmsdb数据库的大小Dtempdb7在SQL Server中创建用户数据库实际就是定义数据库所包含的文件以与文件的属性。下
15、列不属于数据库文件属性的是 CA初始大小B物理文件名C文件结构D 最大大小8在SQL Server中创建用户数据库实际就是定义数据库所包含的文件以与文件的属性。下列不属于数据库文件属性的是 CA初始大小B物理文件名C文件结构D 最大大小9下列约束中用于限制列的取值范围的约束是 BAPRIMARY KEYBCHECKCDEFAULTD UNIQUE10下列约束中用于限制列的取值不重的约束是 DAPRIMARY KEYBCHECKCDEFAULTD UNIQUE11下列约束中用于实现实体完整性的约束是 AAPRIMARY KEYBCHECKCDEFAULTD UNIQUE12下列关于DEFAULT
16、约束的说法,错误的是 DA一个DEFAULT约束只能约束表中的一个列B在一个表上可以定义多个DEFAULT约束CDEFAULT只能定义在列级完整性约束处D在列级完整性约束与表级完整性约束处都可以定义DEFAULT约束第 4 章 数据操作语句一 选择题1 当关系R与S进行连接操作时,假如R中的元组不满意连接条件,在连接结果中也会将这些记录保留下来的操作是 AA左外连接 B右外连接C内连接D自连接2 设在某SELECT语句的WHERE子句中,须要对Grade列的空值进行处理。下列关于空值的操作,错误的是CAGrade IS NOT NULL BGrade IS NULLCGrade = NULLD
17、NOT (Grade IS NULL)3 下列聚合函数中,不忽视空值的是DASUM(列名) BMAX(列名)CAVG(列名)DCOUNT(*)4SELECT INTO FROM语句的功能是AA 将查询结果插入到一个新表中B 将查询结果插入到一个已建好的表中C 合并查询的结果D 向已存在的表中添加数据5下列利用SC表的查询语句中,错误的是BA SELECT Sno, COUNT(*) FROM SC GROUP BY SnoB SELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*) 3C SELECT Sno FROM SC GROUP BY Sno HAV
18、ING COUNT(*) 3D SELECT Sno FROM SC GROUP BY Sno 6现要利用Student表查询年龄最小的学生姓名与年龄。下列实现此功能的查询语句中,正确的是DA SELECT Sname, MIN(Sage) FROM StudentB SELECT Sname, Sage FROM Student WHERE Sage = MIN(Sage)C SELECT TOP 1 Sname, Sage FROM Student D SELECT TOP 1 Sname, Sage FROM Student ORDER BY Sage 7设SC表中记录成果的列为:Gra
19、de,类型为int。若在查询成果时,盼望将成果按优, 良, 中, 与格与不与格形式显示,正确的Case函数是CA. Case GradeWhen 90100 THEN 优When 8089 THEN 良When 7079 THEN 中When 6069 THEN 与格Else 不与格EndB. Case When Grade between 90 and 100 THEN Grade = 优When Grade between 80 and 89 THEN Grade = 良When Grade between 70 and 79 THEN Grade = 中When Grade betwee
20、n 60 and 69 THEN Grade = 与格Else Grade = 不与格EndC. Case When Grade between 90 and 100 THEN 优When Grade between 80 and 89 THEN 良When Grade between 70 and 79 THEN 中When Grade between 60 and 69 THEN 与格Else 不与格EndD. Case GradeWhen 90100 THEN Grade = 优When 8089 THEN Grade = 良When 7079 THEN Grade = 中When 60
21、69 THEN Grade = 与格Else Grade = 不与格 End8下述语句的功能是将两个查询结果合并为一个结果。其中正确的是BAselect sno,sname,sage from student where sdept = cs Order by sage Unionselect sno,sname,sage from student where sdept = is Order by sage Bselect sno,sname,sage from student where sdept = cs Unionselect sno,sname,sage from student
22、where sdept = isOrder by sageCselect sno,sname,sage from student where sdept = cs Unionselect sno,sname from student where sdept = isOrder by sageDselect sno,sname,sage from student where sdept = cs Order by sage Unionselect sno,sname,sage from student where sdept = is9下列SQL语句中,用于修改表数据的语句是CAALTER BS
23、ELECTCUPDATEDINSERT10设有Teachers表,该表的定义如下:CREATE TABLE Teachers( Tno CHAR(8) PRIMARY KEY, Tname VARCHAR(10) NOT NULL, Age TINYINT CHECK(Age BETWEEN 25 AND 65) )下列插入语句中,不能正确执行的是DAINSERT INTO Teachers VALUES(T100,张鸿,NULL)BINSERT INTO Teachers(Tno,Tname,Age) VALUES(T100,张鸿,30)CINSERT INTO Teachers(Tno,T
24、name) VALUES(T100,张鸿)DINSERT INTO TeachersVALUES(T100,张鸿)11设数据库中已有表4-1至4-3所示的Student, Course与SC表。现要查询学生选的第2学期开设课程的状况,只需列出学号, 姓名, 所在系与所选的课程号。该查询涉与到的表是DA仅Student表 B仅Student与SC表C仅Student与Course表DStudent, SC与Course表12删除计算机系学生(在student表中)的修课记录(在SC表中)的正确的语句是表是BADELETE FROM SC JOIN Student b ON S.Sno = b.S
25、no WHERE Sdept = 计算机系BDELETE FROM SC FROM SC JOIN Student b ON SC.Sno = b.Sno WHERE Sdept = 计算机系CDELETE FROM Student WHERE Sdept = 计算机系DDELETE FROM SC WHERE Sdept = 计算机系二 填空题1 在相关子查询中,子查询的执行次数是由_确定的。外层表的行数2 对包含基于集合测试子查询的查询语句,是先执行_层查询,在执行_层查询。内,外3 对包含相关子查询的查询语句,是先执行_层查询,在执行_层查询。外,内4 聚合函数COUNT(*)是按_统计
26、数据个数。行5 设Grade列目前有三个值:90, 80与NULL,则AVG(Grade)的值是_,MIN(Grade)的值是_。85,806 设有学生表(学号,姓名,所在系)与选课表(学号,课程号,成果),现要建立统计每个系的选课人数。请补全下列语句: COUNT(DISTINCT 选课表.学号)SELECT 所在系, _ FROM 选课表 JOIN 学生表 ON 选课表.学号 = 学生表.学号 GROUP BY 所在系 7 设有选课表(学号,课程号,成果),现要查询考试成果最高的三个学生的学号, 课程号与成果,包括并列状况。请补全下列语句: TOP 3 WITH TIES, ORDER B
27、Y 成果 DESCSELECT _ 学号,课程号,成果 FROM 选课表 _8 UNION操作用于合并多个查询语句的结果,假如在合并结果时不盼望去掉重复的数据,则在用UNION操作时应运用_关键字。ALL9 进行自连接操作的两个表在物理上为一张表。通过_方法可将物理上的一张表在逻辑上成为两张表。起别名10 FROM A LEFT JOIN B ON 语句表示在连接结果中不限制_表数据必需满意连接条件。A11 对分组后的统计结果再进行筛选运用的子句是_。HAVING12 若SELECT语句中同时包含WHERE子句与GROUP子句,则先执行的是_子句。WHERE三 简答题1. 在聚合函数中,哪个函
28、数在统计时不考虑NULL。答:COUNT(*)2. 在LIKE运算符中“%”的作用是什么?答:匹配0个或多个字符。3. WHERE Age BETWEEN 20 AND 30子句,查找的Age范围是多少?答:Age大于等于20并且小于等于304. WHERE Sdept NOT IN (CS,IS,MA),查找的数据是什么?答:查找CS,IS,MA三个系之外的其他系5. 自连接与一般内连接的主要区分是什么?答:自连接中进行连接操作的表在物理上是一张表,而一般内连接进行连接的表在物理上是两张表。6. 外连接与内连接的主要区分是什么?答:进行外连接的两个表中,可以有一张表不满意连接条件,而进行内连
29、接的两个表必需都满意连接条件。7. 在运用UNION合并多个查询语句的结果时,对各个查询语句的要求是什么?答:各个查询语句的列个数必需相同,对应列的语义相同,类型兼容。8. 相关子查询与嵌套子查询在执行方面的主要区分是什么?答:相关子查询的执行过程是先外后内,而嵌套子查询的执行过程是先内后外。而且相关子查询中必需有与外层查询的关联,而嵌套子查询中,内, 外层查询之间没有关联关系。9. 执行SELECT INOT 表名 FROM 语句时,对表名的要求是什么?答:必需是一个不存在的新表名。10. 对统计结果的筛选应当运用哪个子句完成?答:运用HAVING子句11. 在排序子句中,排序依据列的前后依
30、次是否重要?ORDER BY C1,C2子句对数据的排序依次是什么?答:重要,系统会按列的先后依次进行排序。先按C1列进行排序,在C1列值相同时再按C2列进行排序。12. TOP 子句的作用是什么?答:在查询结果产生后,提取结果的前若干行数据。四上机练习1查询学生选课表中的全部数据。答:select * from SC2查询计算机系的学生的姓名, 年龄。答:select sname,sage from student where sdept = 计算机系3. 查询成果在7080分之间的学生的学号, 课程号与成果。答:select sno,cno,grade from sc on where g
31、rade between 70 and 804 查询计算机系年龄在1820之间且性别为“男”的学生的姓名, 年龄。答:select sname,sage from student where sdept = 计算机系 and sage between 18 and 20 and ssex = 男5 查询“C001”号课程的最高分。答:select max(grade) from sc where cno = C0016. 查询计算机系学生的最大年龄与最小年龄。答:select max(sage) as max_age, min(sage) as min_age from student whe
32、re sdept = 计算机系7. 统计每个系的学生人数。答:select sdept,count(*) from student group by sdept8. 统计每门课程的选课人数与考试最高分。答:select cno, count(*),max(grade) from sc group by cno9. 统计每个学生的选课门数与考试总成果,并按选课门数升序显示结果。答:select sno,count(*), sum(grade) from sc group by sno order by count(*) asc10. 查询总成果超过200分的学生,要求列出学号与总成果。答:sel
33、ect sno,sum(grade) from sc group by sno having sum(grade) 20011. 查询选课门数超过2门的学生的学号, 平均成果与选课门数。答:select sno, avg(grade), count(*) from sc having count(*) 212. 查询选了“C002”课程的学生的姓名与所在系。答:select sname,sdept from student s join sc on s.sno = sc.sno where cno = C00213. 查询成果80分以上的学生的姓名, 课程号与成果,并按成果降序排列结果。答:s
34、elect sname,cno,grade from student s join sc on s.sno = sc.sno where grade 80 order by grade desc14. 查询计算机系男生修了“数据库基础”的学生的姓名, 性别与成果。答:select sname,ssex,grade from student s join sc on s.sno = sc.sno join course c on co = scowhere sdept = 计算机系 and ssex = 男 and cname = 数据库基础15. 查询学生的选课状况,要求列出每位学生的选课状况
35、(包括未选课的学生),并列出学生的学号, 姓名, 课程号与考试成果。答:select s.sno,sname,cno,grade from student s left join sc on s.sno = sc.sno16. 查询哪些课程没有人选,要求列出课程号与课程名。答:select co,cname from course c left join sc on co = scowhere sco is null17查询计算机系没有选课的学生,列出学生姓名。答:select sname from student s left join sc on s.sno = sc.sno Where
36、sdept = 计算机系 and sc.sno is null18. 列出“数据库基础”课程考试成果前三名的学生的学号, 姓名, 所在系与考试成果。答:select top 3 s.sno, sname, sdept, grade from Student s join SC on s.Sno = SC.Sno join Course c on co = SCo where cname = 数据库基础 order by grade desc19查询VB考试成果最低的学生的姓名, 所在系与VB成果。答:select top 1 with ties sname,sdept,grade from s
37、tudent s join sc on s.sno = sc.sno join course c on co = sco where cname = VB order by grade asc 20. 查询有考试成果的全部学生的姓名, 修课名称与考试成果,要求将查询结果放在一张新的永久表中,假设新表名为new_sc。答:select sname, cname, grade into new_sc from student s join sc on s.sno = sc.sno join course c on co = sco where grade is not null21. 分别查询信息
38、管理系与计算机系的学生的姓名, 性别, 修课名称, 修课成果,并要求将这两个查询结果合并成一个结果集,并以系名, 姓名, 性别, 修课名称, 修课成果的依次显示各列。答:select sdept 系名, sname 姓名, ssex 性别, cname 修课名称, grade 修课成果 from student s join sc on s.sno=sc.sno join course c on co=sco where sdept = 信息管理系UNIONselect sdept , sname, ssex, cname, grade from student s join sc on s.
39、sno=sc.sno join course c on co=sco where sdept = 计算机系22查询选了VB的学生学号, 姓名, 所在系与成果,并对所在系进行如下处理: 当所在系为“计算机系”时,显示“CS”; 当所在系为“信息管理系”时,显示“IS”; 当所在系为“通信工程系”时,显示“CO”;对其他系,均显示“OTHER”。答:select s.sno 学号,sname 姓名, case sdept when 计算机系 then CS when 信息系 then IS when 数学系 then CO else OTHER end as 所在系,grade 成果 from s
40、tudent s join sc on s.sno = sc.sno join course c on co = sco where cname = vb23. 用子查询实现如下查询:(1)查询选了“C001”课程的学生姓名与所在系。答:select sname,sdept from student where sno in( select sno from sc where cno = C001)(2)查询通信工程系成果80分以上的学生学号与姓名。答:select sno,sname from student where sno in( select sno from sc where gr
41、ade 80) and sdept = 通信工程系(3)查询计算机系考试成果最高的学生姓名。答:select sname from student s join sc on s.sno = sc.sno where sdept = 计算机系 and grade = (select max(grade) from sc join student s on s.sno = sc.snowhere sdept = 计算机系)(4)查询年龄最大的男生的姓名与年龄。答:select sname,sage from student Where sage = (select max(sage) from student and ssex = 男) and ssex = 男(5)查询“C001”课程的考试成果高于“C001”课程的平均成果的学生的学号与“C001”课程成果。答:select sno,grade from sc where cno = C001 And grade (select avg(grade) from sc where cno = C001) 24
限制150内