数据库原理例题及解答

合集下载

数据库原理习题及答案

数据库原理习题及答案

1.从程序和数据之间的关系分析文件系统和数据库系统之间的区别和联系。

区别:文件系统:用文件将数据长期保存在外存上,程序和数据有一定的联系,用操作系统中的存取方法对数据进行管理,实现以文件为单位的数据共享。

数据库系统:用数据库统一存储数据,程序和数据分离,用DBMS统一管理和控制数据,实现以记录和字段为单位的数据共享。

联系:均为数据组织的管理技术;均由数据管理软件管理数据,程序与数据之间用存取方法进行转换;数据库系统是在文件系统的基础上发展而来的。

2.什么是数据库?数据库是长期存储在计算机内、有组织的、可共享的数据集合。

数据库是按某种数据模型进行组织的、存放在外存储器上,且可被多个用户同时使用。

因此,数据库具有较小的冗余度,较高的数据独立性和易扩展性。

3.什么是数据冗余?数据库系统与文件系统相比怎样减少冗余?在文件管理系统中,数据被组织在一个个独立的数据文件中,每个文件都有完整的体系结构,对数据的操作是按文件名访问的。

数据文件之间没有联系,数据文件是面向应用程序的。

每个应用都拥有并使用自己的数据文件,各数据文件中难免有许多数据相互重复,数据的冗余度比较大。

数据库系统以数据库方式管理大量共享的数据。

数据库系统由许多单独文件组成,文件内部具有完整的结构,但它更注重文件之间的联系。

数据库系统中的数据具有共享性。

数据库系统是面向整个系统的数据共享而建立的,各个应用的数据集中存储,共同使用,数据库文件之间联系密切,因而尽可能地避免了数据的重复存储,减少和控制了数据的冗余。

4.使用数据库系统有什么好处?查询迅速、准确,而且可以节约大量纸面文件;数据结构化,并由DBMS统一管理;数据冗余度小;具有较高的数据独立性;数据的共享性好;DBMS还提供了数据的控制功能。

5.什么是数据库的数据独立性?数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。

逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。

数据库原理题目和答案

数据库原理题目和答案

P36:8.分别举出实体型之间具有一对一,一对多,多对多联系的例子。

9.学校有若干个系,每个系有若干班级和教研窒,每个教研窒有若干教员,其中有的教授和副教授每人各带若干研究生。

每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。

用E-R图画出该学校的概念模型。

11.教师与课程之间的联系是多对多联系,试用层次模型表示之。

14.试比较层次模型,网状模型和关系模型的优点与缺点。

层次模型的优点主要有:( l )模型简单,对具有一对多层次关系的部门描述非常自然、直观,容易理解,这是层次数据库的突出优点;( 2 )用层次模型的应用系统性能好,特别是对于那些实体间联系是固定的且预先定义好的应用,采用层次模型来实现,其性能优于关系模型;( 3 )层次数据模型提供了良好的完整性支持。

层次模型的缺点主要有:( l )现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型不能自然地表示这类联系,只能通过引入冗余数据或引入虚拟结点来解决;( 2 )对插入和删除操作的限制比较多;( 3 )查询子女结点必须通过双亲结点。

网状数据模型的优点主要有:( l )能够更为直接地描述现实世界,如一个结点可以有多个双亲;( 2 )具有良好的性能,存取效率较高。

网状数据模型的缺点主要有:( l )结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;( 2 )其DDL 、DML 语言复杂,用户不容易使用。

由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径。

因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。

17.数据库管理系统有哪些主要功能?l 数据库定义功能;2 数据存取功能;3 数据库运行管理;4 数据库的建立和维护功能。

18.数据库管理系统有哪几部分组成?1 数据定义语言及其翻译处理程序2 数据操纵语言及其编译(或解释)程序3 数据库运行控制程序4 实用程序P642.解释下列概念,并说明它们之间的联系与区别:1码,候选码,外部码2笛卡尔,关系,元组,属性,域3关系模式,关系模型,关系数据库答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

数据库系统原理练习题库(附参考答案)

数据库系统原理练习题库(附参考答案)

数据库系统原理练习题库(附参考答案)一、单选题(共100题,每题1分,共100分)1.属于数据库结构设计阶段的是A、程序设计B、功能设计C、事务设计D、逻辑结构设计正确答案:D2.人工管理阶段,计算机主要应用于A、数据集成B、科学计算C、过程控制D、故障恢复正确答案:B3.下列关于数据控制语言的说法中,正确的是A、REVOKE语句用于授予权限B、GRANT语句用于收回权限C、数据控制语言主要用于数据执行流程管理D、数据控制语言包括的主要SQL语句是GRANT和REVOKE正确答案:D4.下列属于关联分析算法的是A、AprioriB、GMMC、RedisD、HBase正确答案:A5.同一数据被反复存储的情况是A、删除异常B、插入异常C、更新异常D、数据冗余正确答案:D6.产生数据不一致的主要原因是并发操作破坏了事务的A、持续性B、一致性C、原子性D、隔离性正确答案:D7.DBMS提供【】来严格地定义模式。

A、模式描述语言B、子模式描述语言C、内模式描述语言D、程序设计语言正确答案:A8.关系数据库以【】作为数据的逻辑模型。

A、二维表B、关系C、关系模型D、数据库正确答案:C9.关于调用存储过程的说法,错误的是A、可以从交互式界面调用B、可以使用CALL语句来调用存储过程C、可以由嵌入式SQL调用D、不是所有的SQL接口都能调用存储过程正确答案:D10.可唯一标识实体的属性集称为A、键B、实体型C、域D、属性正确答案:A11.目的是为可实际运行的应用程序设计提供依据与指导,并作为设计评价的基础的是A、设计评价B、编制应用程序设计说明C、模型转换D、子模式设计正确答案:B12.在使用游标的过程中,需要注意的事项不包括A、游标不能单独在查询操作中使用B、在一个BEGIN···END语句块中每一个游标的名字并不是唯一的C、游标是被SELECT语句检索出来的结果集D、在存储过程或存储函数中可以定义多个游标正确答案:B13.对关系的描述不正确的是A、关系中的元组次序可交换B、关系可以嵌套定义C、关系是一张二维表D、关系是一个集合正确答案:B14.下列关于MySQL的说法中,正确的是A、在MySQL中,一个关系对应多个基本表B、在MySQL中,一个或多个基本表对应一个存储文件C、在MySQL中,一个表只能有一个索引D、在MySQL中,索引不能存放在存储文件中正确答案:B15.关系数据库是以【】的形式组织数据。

数据库原理教程习题答案解析(全)

数据库原理教程习题答案解析(全)

0000000000第1章数据库系统概述习题参考答案税务局使用数据库存储纳税人(个人或公司)信息、纳税人缴纳税款信息等。

典型的数据处理包括纳税、退税处理、统计各类纳税人纳税情况等。

银行使用数据库存储客户基本信息、客户存贷款信息等。

典型的数据处理包括处理客户存取款等。

超市使用数据库存储商品的基本信息、会员客户基本信息、客户每次购物的详细清单。

典型的数据处理包括收银台记录客户每次购物的清单并计算应交货款。

1.2 DBMS是数据库管理系统的简称,是一种重要的程序设计系统。

它由一个相互关联的数据集合和一组访问这些数据的程序组成。

数据库是持久储存在计算机中、有组织的、可共享的大量数据的集合。

数据库中的数据按一定的数据模型组织、描述和存储,可以被各种用户共享,具有较小的冗余度、较高的数据独立性,并且易于扩展。

数据库系统由数据库、DBMS(及其开发工具)、应用系统和数据库管理员组成。

数据模型是一种形式机制,用于数据建模,描述数据、数据之间的联系、数据的语义、数据上的操作和数据的完整性约束条件。

数据库模式是数据库中使用数据模型对数据建模所产生设计结果。

对于关系数据库而言,数据库模式由一组关系模式构成。

数据字典是DBMS维护的一系列内部表,用来存放元数据。

所谓元数据是关于数据的数据。

1.3 DBMS提供如下功能:(1)数据定义:提供数据定义语言DDL,用于定义数据库中的数据对象和它们的结构。

(2)数据操纵:提供数据操纵语言DML,用于操纵数据,实现对数据库的基本操作(查询、插入、删除和修改)。

(3)事务管理和运行管理:统一管理数据、控制对数据的并发访问,保证数据的安全性、完整性,确保故障时数据库中数据不被破坏,并且能够恢复到一致状态。

(4)数据存储和查询处理:确定数据的物理组织和存取方式,提供数据的持久存储和有效访问;确定查询处理方法,优化查询处理过程。

(5)数据库的建立和维护:提供实用程序,完成数据库数据批量装载、数据库转储、介质故障恢复、数据库的重组和性能监测等。

数据库原理试题及答案

数据库原理试题及答案

数据库原理试题及答案一、选择题1. 数据库的主要特点是什么?A. 数据独立性B. 冗余性C. 数据共享性D. 数据保密性答案:A. 数据独立性2. 关系数据库中,主键的作用是什么?A. 用于建立实体之间的联系B. 用于唯一标识关系表中的每一条记录C. 用于排序和索引D. 用于限制实体的属性取值范围答案:B. 用于唯一标识关系表中的每一条记录3. 下面哪个不是SQL的基本操作?A. SELECTB. UPDATEC. DELETED. INSERT答案:C. DELETE4. 数据库ACID特性中的一致性指的是什么?A. 事务执行前后数据的一致性B. 并发操作下的数据一致性C. 数据库内部元数据的一致性D. 数据备份和恢复的一致性答案:A. 事务执行前后数据的一致性5. 数据库索引的作用是什么?A. 提高数据查询的效率B. 加快数据的插入和更新操作C. 保证数据的一致性D. 限制数据的访问权限答案:A. 提高数据查询的效率二、填空题1. 数据库中,用于描述数据之间的关系的形式称为________。

答案:表2. 数据库中,用于存储数据的基本单位称为________。

答案:字段3. 数据库中,用于组织和管理数据的软件系统称为________。

答案:数据库管理系统(DBMS)4. 关系数据库中,用于连接不同表之间的数据的字段称为________。

答案:外键5. 关系数据库中,用于限制字段取值范围的规则称为________。

答案:约束三、简答题1. 请简要描述数据库的三级模式结构。

答:数据库的三级模式结构包括外模式(视图层)、概念模式(逻辑层)和内模式(物理层)。

外模式是用户对数据库的部分数据的逻辑表达方式,用户可以通过外模式对所需数据进行查询和操作。

概念模式是数据库的全局逻辑结构,它定义了数据库中各个实体及其之间的关系,并给出了对数据进行操作的完整规则。

内模式是数据库在物理存储上的表示,它描述了数据在磁盘上的存储方式和组织结构。

数据库原理与应用试题及答案精选全文完整版

数据库原理与应用试题及答案精选全文完整版

可编辑修改精选全文完整版一、单选题(共20分,每题1分)1.DB、DBMS和DBS三者之间的关系是(B)A. DB包括DBMS和DBSB. DBS包括DB和DBMSC. DBMS包括DB和DBS C. DBS与DB和DBMS无关2.在数据库系统中,读脏数据是指一个事务读了另一个事务(C)A. 未更新的数据B. 未撤销的数据C. 未提交的数据D. 未刷新的数据3.加锁协议中规定“先申请先服务”的原则,可以避免数据库系统出现(A)A. 活锁B. 死锁C. 读-写冲突D. 写-写冲突4.语句DELETE FROM SC表明(A)A. 删除SC中的全部记录B. 删除基本表SCC. 删除基本表SC中的列数据D. 删除基本表SC中的部分行5.数据库设计阶段分为(D)A. 物理设计阶段、逻辑设计阶段、编程和调试阶段B. 模型设计阶段、程序设计阶段和运行阶段C. 方案设计阶段、总体设计阶段、个别设计阶段和编程阶段D. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段6.关系笛卡尔积运算记号R×S表示(D)A. R为关系名,S为属性名B. R和S均为属性名C. R为属性名,S为关系名D. R和S均为关系名7.在DB应用中,一般一条SQL语句可产生或处理一组记录,而DB主语言语句一般一次只能处理一条记录,其协调可通过哪种技术实现(B)A. 指针B. 游标C. 数组D. 栈8.下列说法中不正确的是(C)A. 任何一个包含两个属性的关系模式一定满足3NFB. 任何一个包含两个属性的关系模式一定满足BCNFC. 任何一个包含三个属性的关系模式一定满足3NFD. 任何一个关系模式都一定有码9.在下列基本表中数值5表示(C)CREATE TABLE student(Snum CHAR(5)NOT NULL UNIQUE,Sname CHAR(2));A. 表中有5条记录B. 表中有5列C. 表中字符串Snum 的长度D. 表格的大小10.在视图上不能完成的操作是(C)A. 更新视图B. 查询C. 在视图上定义新的基本表D. 在视图上定义新视图11.在DBS中,DBMS和OS之间的关系是(B)A. 相互调用B. DBMS调用OSC. OS调用DBMSD. 并发运行12.关系中行列次序的变换性质是(D)A. 行可以交换,列不可交换B. 行不可交换,列可交换C. 行、列均不可交换D. 行、列均可以交换13.单个用户使用的数据视图的描述称为(A)A. 外模式B. 概念模式C. 内模式D. 存储模式14.数据库系统安排多个事务并发执行的过程称为(C)A. 步骤B. 进程C. 调度D. 优先级15.SQL语言有两种使用方式,分别称为交互式和(C)A. 提示式SQLB. 多用户SQLC. 嵌入式SQLD. 解释式SQL16.以下不属于服务器端脚本语言的是(D)。

数据库系统原理练习题+答案

数据库系统原理练习题+答案

数据库系统原理练习题+答案一、单选题(共100题,每题1分,共100分)1、下列不属于数据定义语言包括的SQL语句的是A、DELETEB、ALTERC、CREATED、DROP正确答案:A2、下列关于MySQL的说法中,错误的是A、MySQL是一个RDBMSB、MySQL具有客户/服务器体系结构C、MySQL 由美国MySQL AB公司开发D、许多中、小型网站为了降低网站总体拥有成本而选择MySQL作为网站数据库正确答案:C3、下列关于存储函数与存储过程的说法中,错误的是A、存储过程可以拥有输出参数B、可以直接对存储函数进行调用,且不需要使用CALL语句C、存储过程中必须包含一条RETURN语句D、对存储过程的调用,需要使用CALL语句正确答案:C4、数据库设计的重要目标包括A、研究构造数据库B、良好的数据库性能C、数据库行为设计D、数据库结构设计正确答案:B5、在图存储数据库中,【】保存与结点相关的信息。

A、结点B、属性C、边D、联系正确答案:B6、主要反映应用部门原始业务处理的工作流程的是A、数据流程图B、数据操作特征表C、操作过程说明书D、任务分类表正确答案:A7、MySQL的用户账号及相关信息都存储在一个名为【】的MySQL数据库中。

A、rootB、mysqlC、adminD、user正确答案:B8、数据库管理系统是计算机的A、数据库系统B、数据库C、应用软件D、系统软件正确答案:D9、在图存储数据库中,【】用来连接结点。

A、属性B、边C、结点D、联系正确答案:B10、将数据库系统与现实世界进行密切地、有机地、协调一致地结合的过程是A、数据库设计的内容B、数据库设计方法C、数据库生命周期D、数据库设计正确答案:D11、控制数据在一定的范围内有效或要求数据之间满足一定的关系,保证输入到数据库中的数据满足相应的约束条件,以确保数据有效、正确是指A、故障恢复B、并发控制C、数据安全性D、数据完整性正确答案:D12、属于数据库结构设计阶段的是A、程序设计B、逻辑结构设计C、功能设计D、事务设计正确答案:B13、属于数据库实现与操作阶段的是A、概念设计B、数据库的修改与调整C、逻辑设计D、物理设计正确答案:B14、使用存储过程的好处不包括A、高性能B、存储过程可作为一种安全机制来确保数据库的安全性C、良好的封装性D、可增加网络流量正确答案:D15、使用存储过程的好处不包括A、可增强SQL语言的功能和灵活性B、移植性好C、存储过程可作为一种安全机制来确保数据的完整性D、良好的封装性正确答案:B16、下列不属于数据库系统三级模式结构的是A、内模式B、模式C、外模式D、数据模式正确答案:D17、在多表连接查询的连接类型中,最常用的是A、左连接B、内连接C、右连接D、交叉连接正确答案:B18、数据库的核心是A、概念模式B、内部模式C、外部模式D、存储模式正确答案:A19、表中的行,也称作A、分量B、属性C、超码D、记录正确答案:D20、同一数据被反复存储的情况是A、插入异常B、数据冗余C、更新异常D、删除异常正确答案:B21、SQL提供了【】进行数据查询,该功能强大、使用灵活。

数据库原理习题含答案

数据库原理习题含答案

第一章绪论Ⅰ、学习要点1、准确掌握数据、数据库、数据库系统、数据库管理系统等基本术语、概念;2、数据独立性的概念、分类及实现途径;3、数据模型的概念、分类、要素及作用;4、数据库三级模式体系结构的含义及作用;5、关系数据模型的三要素容。

Ⅱ、习题一、选择题:1、使用二维表格结构表达数据和数据间联系的数据模型是()A、层次模型B、网状模型C、关系模型D、实体—联系模型2、DB、DBS、DBMS间的关系是()A、DB包括DBMS和DBSB、DBMS包括DB和DBSC、DBS包括DB和DBMSD、DBS与DB和DBMS无关3、在数据库中存储的是()A、数据B、数据模型C、数据及数据之间的联系D、信息4、数据库系统中,用()描述全部数据的整体逻辑结构。

A、外模式B、模式C、模式D、数据模式5、数据库中,导致数据不一致的根本原因是()A、数据量太大B、数据安全性不高C、数据冗余D、数据完整性约束不强6、划分层次型、网状型和关系型数据库的原则是()A、记录的长度B、文件的大小C、联系的复杂程度D、数据及联系的表示式7、数据库三级模式体系结构的划分,主要有利于保持数据库的()A、数据安全性B、数据独立性C、结构规化D、操作可行性8、数据库系统中,用()描述用户局部数据的逻辑结构,它是用户和数据库系统间的接口。

A、外模式B、模式C、模式D、数据模式9、数据库系统中,用()描述全部数据的物理存储视图。

A、外模式B、模式C、模式D、数据模式10、数据库系统中用于定义和描述数据库逻辑结构的语言是()A、DMLB、DDLC、DCLD、SQL11、数据库系统支持的数据共享指的是()A、同一应用的多个程序共享同一数据集合B、多个用户、同一语言程序共享同一数据集合C、多个用户共享同一数据文件D、多种语言、多个用户、多个应用相互覆盖地使用同一数据集合12、数据库系统中,当模式发生变化时,采用()来保证数据的物理独立性。

A、修改模式定义B、修改模式\模式映像C、修改应用程序D、修改外模式定义二、填空题1、指出下列缩写的含义:(1)DML (2)DBMS (3)DDL (4)DD (5)DBS(6)DD (7)DBA2、数据管理技术经历了()、()、()三个阶段。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验目的:1、了解SQL语言的特点和基本概念。

2、能够针对某种具体的DBMS(本实验采用Access2003),熟练地运用单表查询、连接查询、嵌套查询、集合查询等各种SQL查询语句对数据库中的表进行操作。

3、对相同的查询要求,能够采用多种查询方法实现,并能分析各种方法的优劣,从中选择合适的方法。

二、实验过程:1、Print the names of professors who work in departments that have fewer than 50 PhD students.解:(1)分析:本题是查询在博士生人数少于50个人的系工作的教师名字。

查询教授名字可以通过prof 表,而所查询的教授名字是有限制条件的,他所工作的系名要属于特定的集合(所有系名的一个子集),显然这个子集可以通过查询dept表获得,所以带有谓词in的嵌套子查询可以实现题目要求。

(2)语句实现:SELECT Prof.字段1FROM ProfWHERE Prof.字段2 IN (SELECT Dept.字段1 FROM Dept WHERE Dept.字段2 < 50);****************************************************;(3)查询结果:2、Print the name(s) of student(s) with the lowest gpa解:(1)分析:本题是查询成绩点最低的学生的名字。

最低的成绩点可以在student表中通过函数min(gpa)获得,而所查询学生的名字的限制为成绩点等于min(gpa), 因此可用如下嵌套子查询实现。

(2)语句实现:SELECT Student.字段2FROM Student(3)查询结果:3、For each Computer Sciences class, print the cno, sectno, and the average gpa of the student enrolled in the class.解:(1)分析:本题是查询计算机科学系的所有班的课程号、分班号、班上学生的平均绩点。

计算机科学系的所有班可以通过section表获得, 而通过enroll表可以由section表中的dname, cno,sectno获得班上所有学生的sid,而通过sid可以在student表中查得学生成绩点,最后由cno,sectno进行分组,并用函数avg(gpa),获得每组的平均成绩。

所以可用三个表的连接查询,并适当分组实现查询要求。

(2)语句实现:SELECT Section.字段2,Section.字段3,avg(Student.字段6) AS avStudent字段6FROM [Section],Enroll,StudentWHERE ((Section.字段1='Computer Sciences')and(Section.字段2=Enroll.字段4)and(Enroll.ID=Student.ID))GROUP BY Section.字段2,Section.字段3;****************************************************;(3)查询结果:4、Print the course names, course numbers and section numbers of all classes with less than six students enrolled inthem.解:(1)分析:本题是查询所有班级人数少于6的课程名,课程号,分班号。

通过section表可以查询出所有的班,其中的课程名可由查询所得的dname, cno在course表中确定,因为与班级人数有关,还需将section表和enroll表做连接,并按o, section.dname, section.sectno分组以获取所有班的人数。

所以可用连接查询、嵌套查询,并适当分组来实现查询要求。

(2)语句实现:SELECT (SELECT Course.字段2 from Coursewhere Course.字段1=Section.字段2 and Course.字段3=Section.字段1)AS Course字段2,Section.字段2,Section.字段3FROM [Section],EnrollWHERE (Section.字段2=Enroll.字段4AND section.字段1=enroll.字段3 AND section.字段3=enroll.字段5)GROUP BY Section.字段2,Section.字段3,Section.字段1HA VING count(*)<6;****************************************************;(3)查询结果:5、Print the name(s) and sid(s) of student(s) enrolled in the most classes.解:(1)分析:本题是查询加入班级数最多的学生名字、学号。

可采用临时表的方法解决。

建立一个临时表包括字段学生名字、学号和所选课程的数目(num)。

再对这个临时表进行查询(名字、学号),限制条件是所选课程数目等于max(num)。

(2)语句实现:SELECT Temp.sid, Temp.snameFROM (SELECT enroll.sid,student.sname,count(enroll.sid) AS numFROM enroll,studentWHERE enroll.sid=student.sidGROUP BY enroll.sid,student.sname) AS TempWHERE Temp.num = (SELECT max(num) From (SELECT sid,(SELECT sname FROM Student where sid=Enroll.sid)AS sname,count(*)As num FROM Enroll group by Enroll.sid));****************************************************(3)查询结果:6、Print the names of departments that have one or more majors who are under 18 years old.解:(1)分析:本题是查询所含学生至少有一个年龄小于18岁的系的名称。

在major表中可以得到每个学生所属专业情况,该系存在学生年龄小于18岁的学生(通过student表)则该系满足要求。

因此可用带有exists的嵌套子查询实现要求。

(2)语句实现:SELECT dnameFROM majorWHERE exists(SELECT*FROM Student where Student.age<18 and Student.sid=major.sid);****************************************************;(3)查询结果:7、Print the names and majors of students who are taking one of the College Geometry courses.解:(1)分析:本题查询所有选了College Geometry courses的学生的姓名和所在系名。

此题对课程名需要用通配符进行模糊查询。

学生的限制条件是存在一门College Geometry course为他所选。

因此还需用到带有exists的嵌套子查询。

(2)语句实现:SELECT (SELECT sname FROM Student where sid=Major.sid) AS sname, dnameFROM majorWHERE exists(SELECT*from Course,Enroll where Enroll.dname='Mathematics'and o in (461,462) and Enroll.sid=Major.sid);****************************************************;(3)查询结果:8、For those departments that have no majors taking a College Geometry course, print the department name and thenumber of PhD students in the department.解:(1)分析:本题是查询所含学生都没有选College Geometry course的系的名称和该系的博士生人数。

本题思路和方法与上题基本一致。

(2)语句实现:SELECT dname, numphdsFROM DeptWHERE not exists(SELECT*from Course,Enroll where Enroll.dname='Mathematics'and o in (461,462) and Enroll.sid=Major.sid);****************************************************;(3)查询结果:9、Print the names of students who are taking both a Computer Sciences course and a Mathematics course.解:(1)分析:本题是查询既选了计算机科学系课程又选了数学系课程的学生姓名是求两个集合交的问题。

因为一般的DBMS没有实现交操作,可以先根据一个条件获取一个集合然后根据第二个条件筛选,即第一个集合要选取也在第二个条件产生的集合元素中。

因此可以用带有in的嵌套子查询完成要求。

(2)语句实现:SELECT Student.snameFROM Student,EnrollWHERE Student.sid=Enroll.sid and Enroll.dname='Mathematics' and student.sname in(SELECT Student.sname FROM Student,EnrollWHERE Student.sid=Enroll.sid and Enroll.dname='Computer Sciences');****************************************************;(3)查询结果:10、Print the age difference between the oldest and youngest Computer Sciences major(s).解:(1)分析:本题是查询计算机科学性年龄最大的学生和年龄最小的学生之间的年龄差。

相关文档
最新文档