《数据库课后习题参考答案.doc》由会员分享,可在线阅读,更多相关《数据库课后习题参考答案.doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流数据库课后习题参考答案.精品文档.第1章 数据概述一选择题1下列关于数据库管理系统的说法,错误的是 CA数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型B数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现C数据库应用程序可以不经过数据库管理系统而直接读取数据库文件D数据库管理系统对用户隐藏了数据库文件的存放位置和文件名2下列关于用文件管理数据的说法,错误的是 DA用文件管理数据,难以提供应用程序对数据的独立性B当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序C用文件存储数据的方式难以实现数
2、据访问的安全控制D将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率3下列说法中,不属于数据库管理系统特征的是 CA提供了应用程序和数据的独立性B所有的数据作为一个整体考虑,因此是相互关联的数据的集合C用户访问数据时,需要知道存储数据的文件的物理信息D能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失5在数据库系统中,数据库管理系统和操作系统之间的关系是 DA相互调用B数据库管理系统调用操作系统C操作系统调用数据库管理系统D并发运行6数据库系统的物理独立性是指 DA不会因为数据的变化而影响应用程序B不会因为数据存储结构的变化而影响
3、应用程序C不会因为数据存储策略的变化而影响数据的存储结构D不会因为数据逻辑结构的变化而影响应用程序7数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于 AA系统软件B工具软件C应用软件D数据软件8数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是 BA数据库B操作系统C应用程序D数据库管理系统9下列关于客户/服务器结构和文件服务器结构的描述,错误的是 DA客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端B客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件C客户
4、/服务器结构比文件服务器结构的网络开销小D客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。10下列关于数据库技术的描述,错误的是 BA数据库中不但需要保存数据,而且还需要保存数据之间的关联关系B由于数据是存储在磁盘上的,因此用户在访问数据库数据时需要知道数据的存储位置C数据库中数据存储结构的变化不会影响到应用程序D 数据库中的数据具有较小
5、的数据冗余二填空题1数据管理的发展主要经历了_和_两个阶段。文件管理 数据库管理2在利用数据库技术管理数据时,所有的数据都被_统一管理。数据库管理系统3数据库管理系统提供的两个数据独立性是_独立性和_独立性。 物理 逻辑4数据库系统能够保证进入到数据库中的数据都是正确的数据,该特征称为_。数据完整性5在客户/服务器结构中,数据的处理是在_端完成的。 服务器6数据库系统就是基于数据库的计算机应用系统,它主要由_、_和_三部分组成。数据库、数据库管理系统和应用程序7与用数据库技术管理数据相比,文件管理系统的数据共享性_,数据独立性_。 差 低8在数据库技术中,当表达现实世界的信息内容发生变化时,可
6、以保证不影响应用程序,这个特性称为_。逻辑独立性9当数据库数据由于机器硬件故障而遭到破坏时,数据库管理系统提供了将数据库恢复到正确状态,并尽可能使数据不丢失的功能,这是数据库管理系统的_特性保证的。可靠性10数据库中的数据是相互关联的数据集合,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,且具有安全性和可靠性,这些特征都是由_保证的。 数据库管理系统第2章 数据模型与数据库系统结构一选择题1数据库三级模式结构的划分,有利于AA. 数据的独立性 B. 管理数据库文件C. 建立数据库 D. 操作系统管理数据库2在数据库的三级模式中,描述数据库中全体数据的逻辑结构和特征的是BA内模式
7、B.模式 C. 外模式 D. 其他3数据库系统中将数据分为三个模式,从而提供了数据的独立性,下列关于数据逻辑独立性的说法,正确的是CA. 当内模式发生变化时,模式可以不变B. 当内模式发生变化时,应用程序可以不变C. 当模式发生变化时,应用程序可以不变D. 当模式发生变化时,内模式可以不变4为最大限度地保证数据库数据的正确性,关系数据库实现了三个完整性约束,下列用于保证实体完整性的是BA. 外码B.主码C. CHECK约束D. UNIQUE约束5下列关于关系中主属性的描述,错误的是DA. 主码所包含的属性一定是主属性B. 外码所引用的属性一定是主属性C. 候选码所包含的属性都是主属性D. 任何
8、一个主属性都可以唯一地标识表中的一行数据6设有关系模式销售(顾客号,商品号,销售时间,销售数量),若允许一个顾客在不同时间对同一个产品购买多次,则此关系模式的主码是DA顾客号B产品号C(顾客号,商品号)D(顾客号、商品号、销售时间)7关系数据库用二维表来存储数据。下列关于关系表中记录的说法,正确的是BA顺序很重要,不能交换B顺序不重要C按输入数据的顺序排列D一定是有序的8下列模式中,用于描述单个用户数据视图的是CA内模式B概念模式C外模式D存储模式9在利用概念层数据模型描述数据时,一般要求模型要满足三个要求。下列描述中,不属于概念层数据模型应满足的要求的是AA能够描述并发数据B能够真实地模拟现
9、实世界C容易被业务人员理解D能够方便地在计算机上实现10数据模型三要素是指BA数据结构、数据对象和数据共享B数据结构、数据操作和数据完整性约束C数据结构、数据操作和数据的安全控制D数据结构、数据操作和数据的可靠性11下列关于实体联系模型中联系的说法,错误的是DA一个联系可以只与一个实体有关B一个联系可以与两个实体有关C一个联系可以与多个实体有关D一个联系也可以不与任何实体有关12数据库系统中的三级模式以及模式间的映像提供了数据的独立性。下列关于两级映像的说法,正确的是CA外模式到模式的映像是由应用程序实现的,模式到内模式的映像是由DBMS实现的B外模式到模式的映像是由DBMS实现的,模式到内模
10、式的映像是由应用程序实现的C外模式到模式的映像以及模式到内模式的映像都是由DBMS实现的D外模式到模式的映像以及模式到内模式的映像都是由应用程序实现的13下列不属于数据完整性约束的是DA实体完整性B参照完整性C域完整性D数据操作完整性14下列关于关系操作的说法,正确的是AA关系操作是非过程化的B在进行关系操作时,用户需要知道数据的存储位置C在进行关系操作时,用户需要知道数据的存储结构D用户可以在关系上直接进行行定位操作14下列关于概念层数据模型的说法,错误的是CA概念层数据模型应该采用易于用户理解的表达方式B概念层数据模型应该比较易于转换成组织层数据模型C在进行概念层数据模型设计时,需要考虑具
11、体的DBMS的特点D在进行概念层数据模型设计时,重点考虑的内容是用户的业务逻辑15下列关于外码的说法,正确的是CA外码必须与其所引用的主码同名B外码列不允许有空值C外码和所引用的主码名字可以不同,但语义必须相同D外码的取值必须要与所引用关系中主码的某个值相同16下列关于关系的说法,错误的是DA关系中的每个属性都是不可再分的基本属性B关系中不允许出现值完全相同的元组C关系中不需要考虑元组的先后顺序D关系中属性顺序的不同,关系所表达的语义也不同二填空题1数据库可以最大限度地保证数据的正确性,这在数据库中被称为_。 数据完整性2实体-联系模型主要包含_、_和_三部分内容。实体 属性 联系3如果实体A
12、与实体B是一对多联系,则实体B中的一个实例最多可对应实体A中的_实例。一个4数据完整性约束包括_完整性、_完整性和_完整性。 实体 参照 用户定义5关系数据模型的组织形式是_。 二维表6数据库系统的_和_之间的映像,提供了数据的物理独立性。7数据的逻辑独立性是指当_变化时可以保持_不变。 内模式 模式8数据模型三要素包括_、_和_。数据结构 数据操作 数据完整性约束9实体联系模型属于_层数据模型,它与具体的DBMS_。概念 无关10关系操作的特点是基于_的操作。 集合11当数据的物理存储位置发生变化时,通过调整_映像,可以保证_不变化,从而保证数据的物理独立性。 模式/内模式 模式12参照完整
13、性约束是通过_保证的。 外码第3章 SQL语言基础及数据定义功能一选择题1下列关于SQL语言特定的叙述,错误的是 BA使用SQL语言访问数据库,用户只需提出做什么,而无需描述如何实现BSQL语言比较复杂,因此在使用上比较难CSQL语言可以在数据库管理系统提供的应用程序中执行,也可以在DOS环境下执行D使用SQL语言可以完成任何数据库操作2下列所述功能中,不属于SQL语言功能的是 DA数据库和表的定义功能 B数据查询功能C数据增、删、改功能D提供方便的用户操作界面功能3设某职工表中有用于存放年龄(整数)的列,下列类型中最合适年龄列的是 CAint BsmallintCtinyintDbit4SQ
14、L Server数据库是由文件组成的。下列关于数据库所包含的文件的说法,正确的是 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 KEYBCHECKCD
16、EFAULTD UNIQUE12下列关于DEFAULT约束的说法,错误的是 DA一个DEFAULT约束只能约束表中的一个列B在一个表上可以定义多个DEFAULT约束CDEFAULT只能定义在列级完整性约束处D在列级完整性约束和表级完整性约束处都可以定义DEFAULT约束第 4 章 数据操作语句一 选择题1 当关系R和S进行连接操作时,如果R中的元组不满足连接条件,在连接结果中也会将这些记录保留下来的操作是 AA左外连接 B右外连接C内连接D自连接2 设在某SELECT语句的WHERE子句中,需要对Grade列的空值进行处理。下列关于空值的操作,错误的是CAGrade IS NOT NULL B
17、Grade IS NULLCGrade = NULLDNOT (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 S
18、no FROM SC GROUP BY Sno HAVING 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 ORDE
19、R BY Sage 7设SC表中记录成绩的列为:Grade,类型为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 Gr
20、ade = 中When Grade between 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 70
21、79 THEN Grade = 中When 6069 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,
22、sname,sage from student 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语
23、句中,用于修改表数据的语句是CAALTER BSELECTCUPDATEDINSERT10设有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)CIN
24、SERT INTO Teachers(Tno,Tname) 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 Stud
25、ent b ON S.Sno = b.Sno 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 对包含相关子查询的查询语句,是先执行_层查询,在执行_层查询。外,
26、内4 聚合函数COUNT(*)是按_统计数据个数。行5 设Grade列目前有三个值:90、80和NULL,则AVG(Grade)的值是_,MIN(Grade)的值是_。85,806 设有学生表(学号,姓名,所在系)和选课表(学号,课程号,成绩),现要建立统计每个系的选课人数。请补全下列语句: COUNT(DISTINCT 选课表.学号)SELECT 所在系, _ FROM 选课表 JOIN 学生表 ON 选课表.学号 = 学生表.学号 GROUP BY 所在系 7 设有选课表(学号,课程号,成绩),现要查询考试成绩最高的三个学生的学号、课程号和成绩,包括并列情况。请补全下列语句: TOP 3
27、WITH TIES, ORDER BY 成绩 DESCSELECT _ 学号,课程号,成绩 FROM 选课表 _8 UNION操作用于合并多个查询语句的结果,如果在合并结果时不希望去掉重复的数据,则在用UNION操作时应使用_关键字。ALL9 进行自连接操作的两个表在物理上为一张表。通过_方法可将物理上的一张表在逻辑上成为两张表。起别名10 FROM A LEFT JOIN B ON 语句表示在连接结果中不限制_表数据必须满足连接条件。A11 对分组后的统计结果再进行筛选使用的子句是_。HAVING12 若SELECT语句中同时包含WHERE子句和GROUP子句,则先执行的是_子句。WHERE
28、三 简答题1. 在聚合函数中,哪个函数在统计时不考虑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 fro
31、m sc on where grade 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 fr
32、om student where 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分的学生,要求
33、列出学号和总成绩。答:select 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分以上的学生的姓名、课程号和成绩,并按
34、成绩降序排列结果。答:select 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 o = owhere 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 o,cname from course c left join sc on o = owhere o 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 c.Cno = SC.Cno where cname = 数据库基础 order by grade desc19查询VB考试成绩最低的学生的姓名、所在系和VB成绩。答:select top 1 with ties sname,sdept,grade fro
37、m student s join sc on s.sno = sc.sno join course c on o = o 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 o = o 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 o=o where sdept = 信息管理系UNIONselect sdept , sname, ssex, cname, grade from student s join sc on s.sno=sc.sno joi
39、n course c on o=o 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 student s join sc on
40、 s.sno = sc.sno join course c on o = o 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 grade 80) and sdept = 通信
41、工程系(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 wh
限制150内