mysql数据库武洪萍版第一章习题与答案

合集下载

单元测试题(第1章 MySQL概述)-有答案

单元测试题(第1章 MySQL概述)-有答案

单元测试题一、单选题(每题5分,共75分)1. 下列四项中,不属于数据库系统特点的是()A、数据共享B、数据完整性C、数据冗余度高D、数据独立性高答案:C2. 下面的选项不是关系数据库基本特征的是()A、与列的次序无关B、不同的列应有不同的数据类型C、不同的列应有不同的列名D、与行的次序无关答案:B3. 关系型数据库的核心单元是()A、对象B、表C、行D、列答案:B4. 下面关于数据库设计过程正确的顺序描述是()A、需求收集和分析、逻辑设计、物理设计、概念设计B、概念设计、需求收集和分析、逻辑设计、物理设计C、需求收集和分析、概念设计、逻辑设计、物理设计D、需求收集和分析、概念设计、物理设计、逻辑设计答案:C5. 实体关系图(E-R图)的基本要素有:实体对象、对象属性和()A.属性之间关系B. 对象之间关系C.多对多的关系D. 主键关系答案:B6.关系数据中,表的列又称为()A.记录B.元组C.属性D.关系答案:C7.关系数据中,表的行又称为()A.记录、元祖B.记录、属性C.字段、属性D.字段、元组答案:A8.设计关系数据库,有关概念结构设计阶段的任务描述正确的是()A.制定任务目标B.确定实体数据对象及其属性C.确定实体对象之间的关系D.绘制E-R图答案:D9.一个学生有多个电话号码,每个电话号码仅属于某个特定的学生,则学生和电话号码之间存在什么关系()A.一对一的关系B.一对多的关系C.多对多的关系D.以上都正确答案:B10.下列有关关系数据库设计的描述不正确的是()A.根据需求制定任务目标,确定需要处理的数据对象及其属性。

B.在需求分析基础上,获得实体关系模型,绘制E-R图。

C.依据E-R图设计表格,确定表的列。

D.关系数据库设计不需要考虑优化读写性能。

答案:D11.关系数据库中,保证表之间的关系用()A.主键B.外键C.快捷键D.唯一键答案:B12. MySQL服务器的默认端口号为()A、80B、8080C、3306D、1433答案: C12.关系数据库中,表中的主键的作用是()A.唯一标识表中的记录。

数据库课后答案 第一章(数据库基础知识)

数据库课后答案 第一章(数据库基础知识)
(4)提供了完整的数据控制功能。这些功能包括并发性、完整性、可恢复性、安全性和审计性。并发性是允许多个用户或应用程序同时操纵数据库中的数据,而数据库依然保证为这些用户或应用程序提供正确的数据;完整性是指始终包含正确的数据,例如通过定义完整性的规则使数据值可以限制在指定的范围内;可恢复性是指在数据库遭到破坏之后,系统有能力把数据库恢复到最近某个时刻的正确状态;安全性是指只有指定的用户才能使用数据库中的数据和执行允许的操作;审计性是指系统可以自动记录所有对数据库系统和数据的操作,以便跟踪和审计数据库系统的所有操作。
(5)提高了系统的灵活性。对数据库中数据的操作既可以以记录为单位,也可以以记录中的数据项为单位。例如,在SQL语言中,可以使用SELECT语句指定记录或记录中的数据项。
从数据库技术的发展过程和演变趋势来看,数据库系统本身也在不断发展,从最初的层次数据库系统、网状数据库系统,在向关系型数据库系统、关系对象数据库系统、对象数据库系统等类型发展和演变。
数据库课后答案 第一章(数据库基础知识)
集、传送、处理和使用这些数据,数据库技术要保证数据处理的及时性和准确性。在早期,一个企业每个季度或者每个月进行一次销售统计、财务报表统计,但现在,企业需要逐日进行销售统计、财务分析。
目前,信息已经像资金、设备、物料、人力一样成为企业不可缺少的重要资源。企业管理的目的就是对企业资源的优化配置和充分发挥资源的作用。为了充分发挥信息资源的作用,需要利用先进的技术和方法来存储、检索和使用各种信息。在计算机应用的早期,许多企业仅仅满足系统显示当前活动的信息,因为使用这些信息就可以管理日常业务。但是,随着全球化的发展和市场竞争的激烈,企业不仅需要日常运营信息,而且需要利用这些信息咨询进行分析和制定战略。数据分析的需求越来越强,客观上需要存储容量大、检索方便快捷、使用灵活的数据库技术提供信息资源的分析能力。

mysql习题和答案

mysql习题和答案

mysql习题和答案MySQL习题和答案MySQL是一种开源的关系型数据库管理系统,广泛应用于各种Web应用程序和企业级应用中。

掌握MySQL的基本知识和技能对于数据库开发和管理人员来说至关重要。

本文将介绍一些常见的MySQL习题和答案,帮助读者更好地理解和掌握MySQL的使用。

一、基础知识篇1. 什么是数据库?答:数据库是一个有组织的数据集合,用于存储和管理数据。

2. 什么是关系型数据库?答:关系型数据库是一种基于关系模型的数据库,数据以表格的形式组织,表格由行和列组成。

3. 什么是SQL?答:SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。

4. 什么是MySQL?答:MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种Web应用程序和企业级应用中。

二、查询语句篇1. 如何查询表中的所有数据?答:使用SELECT语句,例如:SELECT * FROM table_name;2. 如何查询表中的特定列?答:使用SELECT语句,并指定需要查询的列,例如:SELECT column1,column2 FROM table_name;3. 如何使用WHERE子句进行条件查询?答:使用SELECT语句,并在WHERE子句中指定条件,例如:SELECT * FROM table_name WHERE condition;4. 如何对查询结果进行排序?答:使用SELECT语句,并在ORDER BY子句中指定排序的列和排序方式,例如:SELECT * FROM table_name ORDER BY column_name ASC(升序)/DESC(降序);三、数据操作篇1. 如何插入新数据?答:使用INSERT INTO语句,例如:INSERT INTO table_name (column1,column2) VALUES (value1, value2);2. 如何更新已有数据?答:使用UPDATE语句,例如:UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;3. 如何删除数据?答:使用DELETE FROM语句,例如:DELETE FROM table_name WHERE condition;四、表操作篇1. 如何创建新表?答:使用CREATE TABLE语句,例如:CREATE TABLE table_name (column1datatype, column2 datatype);2. 如何修改已有表的结构?答:使用ALTER TABLE语句,例如:ALTER TABLE table_name ADDcolumn_name datatype;3. 如何删除已有表?答:使用DROP TABLE语句,例如:DROP TABLE table_name;五、高级技巧篇1. 如何进行表的连接查询?答:使用JOIN语句,例如:SELECT * FROM table1 JOIN table2 ONtable1.column = table2.column;2. 如何进行数据的分组统计?答:使用GROUP BY语句,例如:SELECT column, COUNT(*) FROMtable_name GROUP BY column;3. 如何进行数据的多表排序和限制查询结果数量?答:使用ORDER BY和LIMIT语句,例如:SELECT * FROM table_name ORDER BY column_name LIMIT 10;六、总结通过以上习题和答案的学习,我们可以更好地掌握MySQL的使用。

《MySQL数据库原理、设计与应用》第1章课后习题答案

《MySQL数据库原理、设计与应用》第1章课后习题答案

第一章
一、填空题
1.SQL
2.数据库系统
3.一对一、一对多、多对多
4.my.ini 或f
5.datadir
二、判断题
1.错
2.对
3.对
4.错
5.错
三、选择题
1. C
2.A、B
3.A、B、C
4. D
5. C
四、简答题
1.请简述什么是数据模型。

答:
数据模型是数据库系统的核心和基础,它是对现实世界数据特征的抽象,用来描述数据,可以理解成一种数据结构。

在数据库的发展过程中,出现了3种基本数据模型,分别是层次模型(Hierarchical Model)、网状模型(Network Model)和关系模型(Relational Model)。

2.请简述数据库、表和数据库服务器之间的关系。

答:
一个数据库服务器可以管理多个数据库,通常情况下开发人员会针对每个应用创建一个数据库,为保存应用中实体的数据,会在数据库中创建多个表(用于存储和描述数据的逻辑结构),每个表都记录着实体的相关信息。

1。

数据库第一章测试及答案

数据库第一章测试及答案

第一章概述一、单项选择题1、在数据库管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

在这几个阶段中,数据独立性最高的是阶段.A.数据库系统B.文件系统C.人工管理阶段D.数据项管理2、数据库系统与文件系统的主要区别是.A.数据库系统复杂而文件系统简单B.文件系统不能解决数据冗余和数据独立性问题而数据库系统可以解决C.文件系统只能管理程序文件而数据库系统能够管理各种类型的文件D.文件系统的数据量少,而数据库系统可以管理庞大的数据量3、存储在计算机外部存储介质上的结构化的数据集合,其英文名称是.A.Data Dictionary(简写DD) B.Data Base System(简写DBS) C.data base (简写DB)D.data base mangement(简写DBMS)4、数据库的概念模型独立于。

A.具体的机器和DBMS B.E—R图C.信息世界D.现实世界5、数据库是在计算机系统中按照一定的数据模型组织、存储和应用的①。

支持数据库各种操作的软件系统叫②.由计算机硬件、DBMS、数据库、应用程序及用户等组成的一个整体叫做③。

①A.文件的集合B.数据的集合C.命令的集合D.程序的集合②A.命令系统B.数据库管理系统C.数据库系统D.操作系统③A.文件系统B.数据库系统C.软件系统D.数据库管理系统6、数据库的基本特点是。

A.数据可以共享;数据独立性;数据冗余大,易移植;统一管理和控制B.数据可以共享;数据独立性;数据冗余小,易扩充;统一管理和控制C.数据可以共享;数据互换性;数据冗余小,易扩充;统一管理和控制D.数据非结构化;数据独立性;数据冗余小,易扩充;统一管理和控制7、在数据库中,下列说法是不正确的。

A.数据库避免了一切数据的重复B.若系统是完全可以控制的,则系统可确保更新时的一致性C.数据库中的数据可以共享D.数据库减少了数据冗余8、是存储在计算机内结构化的数据的集合。

mysql数据库基础习题(分章节带答案)

mysql数据库基础习题(分章节带答案)

第一章一、选择题1.数据库系统的核心是________。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员2.E-R图提供了表示信息世界中实体、属性和________的方法。

A.数据B.联系C.表D.模式3.E-R图是数据库设计的工具之一,它一般适用于建立数据库的________。

A.概念模型B.结构模型C.物理模型D.逻辑模型4.将E.R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域5.在关系数据库设计中,设计关系模式属于数据库设计的________。

A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段6.从E—R模型向关系模型转换,一个M:N的联系转换成一个关系模式时,该关系模式的键是________。

A.M端实体的键B.Ⅳ端实体的键C.M端实体键与N端实体键组合D.重新选取其他属性二、填空题1.数据库系统的三级模式结构是指数据库系统是由________、________和________三级构成。

2.数据库系统的运行与应用结构有客户/服务器结构(C/S结构)和________两种。

3.在数据库的三级模式体系结构中,外模式与模式之间的映射实现了数据库的________独立性。

4.用二维表结构表示实体以及实体间联系的数据模型称为________数据模型。

5.数据库设计包括概念设计、________和物理设计。

6.在E-R图中,矩形表示________。

三、简答题1.请简述什么是数据库管理系统,以及它的主要功能有哪些?2.请简述什么是数据库系统?3.请简述什么是模式、外模式和内模式?4.请简述C/S结构与B/S结构的区别。

5.请简述关系规范化过程。

参考答案一、选择题1.A 2.B 3.A 4.B 5.C 6.C二、填空题1.模式外模式内模式2.浏览器/服务器结构(B/S结构) 3.逻辑4。

关系5.逻辑设计6.实体三、简答题1.略。

可参考第1章1.1节内容。

MySQL数据库基础与实践实践与练习答案-第1章

MySQL数据库基础与实践实践与练习答案-第1章

实践与练习答案第1章1.选择题BBACA2.概念题1)数据库(Dstabase DB)是“按照某种数据结构对数据进行组织、存储和管理的容器”,简单的说就是用来存储、管理数据的容器。

数据库系统(Dstabase System,DBS)是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统、应用程序、数据库管理员组成。

数据库管理系统(Dstabase Management System,DBMS)是一个管理、控制数据库容器中各种数据库对象的系统软件。

2)使用关系模型对数据进行组织、存储和管理的数据库称为关系数据库,关系数据库系统是支持关系数据模型的数据库系统。

3)表1-1SQL功能及包含的主要动词4)数据库设计分为如下6个阶段:需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、数据库物理结构设计阶段、数据库实施阶段以及数据库运行于维护阶段。

各阶段内容(略)。

5)E-R图中的实体表示现实世界具有相同属性描述的事物的集合,不是某一个具体事物,而是一类事物的统称。

E-R图中的实体通常使用矩形表示。

E-R图中的属性通常表示实体的某种特征,也可以使用属性表示实体间关系的特征。

一个实体通常包含多个属性,每个属性由属性名唯一标记,画在椭圆内。

3.操作题(1)学生:学好、姓名、年龄、性别、班级名班级:班级名、班主任、班级人数(2)一个学生只能属于一个班级,一个班级可以有很多学生,多以班级和学生之间是1对多的关心,即1:n。

(3)拥有(4)E-R图如下:12 班班班班班班1n 班班班班班班班班班班班班班班班班班班班。

数据库第1_2章参考答案

数据库第1_2章参考答案

第一章数据库系统概述P91.数据管理的主要内容是什么。

[难度↓]【解】数据管理是指数据的收集、整理、组织、存储、查询、维护和传送等各种操作,是数据处理的基本环节,是数据处理必有的共性部分。

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

[难度↓↓]【解】文件系统中的文件是面向应用的,一个文件基本上对应于一个应用程序,文件之间不存在联系,数据冗余大,数据共享性差,数据独立性差;数据库系统中的文件不再面向特定的某个或多个应用,而是面向整个应用系统,文件之间是相互联系着的,减少了数据冗余,实现了数据共享,数据独立性高。

3.数据冗余是指各个数据文件中存在重复的数据,数据库系统与文件系统相比是怎样减少数据冗余的?[难度↓↓]【解】在数据库方式下,用户不是自建文件,而是取自数据库中的某个子集,它并非独立存在,而是靠数据库管理系统从数据库中映像出来,所以叫做逻辑文件。

由于用户使用的是逻辑文件,因此尽管一个数据可能出现在不同的逻辑文件中,但实际上的物理存储只可能出现一次,这就减少了冗余。

4.什么是数据库管理系统?简述DBMS的基本组成?。

[难度↓↓]【解】数据库管理系统(DBMS)是数据库系统的关键组成部分。

任何数据操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在DBMS管理下进行的。

DBMS是用户与数据库的接口,应用程序只有通过DBMS才能和数据库“打交道”。

DBMS的组成:(1)语言编译处理程序;(2)系统运行控制程序;(3)系统建立、维护程序;(4)数据字典。

5.数据库系统与数据库管理系统的主要区别是什么?[难度↓↓]【解】数据库系统(DataBase System,DBS)是数据库应用系统的简称,是具有管理数据库功能的计算机系统。

数据库系统由计算机系统、数据库、DBMS、应用程序和用户组成。

数据库管理系统(DataBase Management System,DBMS)用于负责数据库的存取、维护和管理。

mysql数据库基础习题(分章节带答案)

mysql数据库基础习题(分章节带答案)

第一章一、选择题1.数据库系统的核心是________。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员2.E-R图提供了表示信息世界中实体、属性和________的方法。

A.数据B.联系C.表D.模式3.E-R图是数据库设计的工具之一,它一般适用于建立数据库的________。

A.概念模型B.结构模型C.物理模型D.逻辑模型4.将E.R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域5.在关系数据库设计中,设计关系模式属于数据库设计的________。

A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段6.从E—R模型向关系模型转换,一个M:N的联系转换成一个关系模式时,该关系模式的键是________。

A.M端实体的键B.Ⅳ端实体的键C.M端实体键与N端实体键组合D.重新选取其他属性二、填空题1.数据库系统的三级模式结构是指数据库系统是由________、________和________三级构成。

2.数据库系统的运行与应用结构有客户/服务器结构(C/S结构)和________两种。

3.在数据库的三级模式体系结构中,外模式与模式之间的映射实现了数据库的________独立性。

4.用二维表结构表示实体以及实体间联系的数据模型称为________数据模型。

5.数据库设计包括概念设计、________和物理设计。

6.在E-R图中,矩形表示________。

三、简答题1.请简述什么是数据库管理系统,以及它的主要功能有哪些?2.请简述什么是数据库系统?3.请简述什么是模式、外模式和内模式?4.请简述C/S结构与B/S结构的区别。

5.请简述关系规范化过程。

参考答案一、选择题1.A 2.B 3.A 4.B 5.C 6.C二、填空题1.模式外模式内模式2.浏览器/服务器结构(B/S结构) 3.逻辑4。

关系5.逻辑设计6.实体三、简答题1.略。

可参考第1章1.1节内容。

MySQL数据库实用教程(谢萍 附微课)-课后习题答案

MySQL数据库实用教程(谢萍 附微课)-课后习题答案

第1章一、单项选择题1-5BBCAC6-10ABDBA二、填空题1.逻辑独立性1.1,多3.记录/元组,字段/属性4.205.root第2章一、单项选择题1~5BCACA二、填空题1.逻辑结构设计2.需求分析3.命名冲突,结构冲突4.可由基本属性推导或计算得到的属性5.3NF第3章一、单项选择题1-5DADCD6-10BBACA11-15BDABB二、填空题1.TINYINT2.二进制字符串3.CREATETAB1Estudent(snoCHAR(12),snameVARCHAR(50),addressVARCHAR(100));4.A1TERTAB1EstudentRENAMEcontact;5.CREATETAB1Econtact21IKEcontact;6.DROPTAB1Econtact2;7.外键8.SETNU119.检查10.主键第4章一、单项选择题1-5DCBCB6-10BCAAB二、填空题1.REP1ACE2.数据表定义的字段3.WHERE4.外键5.CASCADE第5章一、单项选择题1-5CBCDA6-10ACDDC二、填空题1、表名.字段名称2、WHERE3、等值非等值4、别名5、GROUPBY第6章一、单项选择题1-5DCBAD二、填空题1、定义数据2、 ---- 对应3、表4、A1TERVIEW5、WHERE第7章一、单项选择题1-5DAACD二、填空题1、排序2、-3、唯一4、CHARVARCHAR5、被删除第8章一、单项选择题1-5DBADA二、填空题IsABXYZ2、RETURN3、FETCH4、BEFOREAFTER5、INoUT6、事件第9章一、单项选择题1-5BBADC6-10CACCA二、填空题1.InnoDB2.原子性3.STARTTRANSACTION或BEGINWORK4.脏读5.可重复读第10章一、单项选择题1-5BAADB6-10ABCAA二、填空题1.请求核实阶段2.GRANT3.CREATE,INSERT4.SHOWBINARY1OGS5.RESETMASTER。

mysql试题及答案

mysql试题及答案

mysql试题及答案MySQL作为一种常用的关系型数据库管理系统,在企业和个人应用中广泛使用。

通过进行MySQL试题的练习和答案的解析,可以帮助读者加深对MySQL的理解和熟练应用。

本文将提供一系列MySQL试题及答案,旨在帮助读者提高MySQL技能。

1. 试题一:MySQL基础1.1 MySQL是什么?它有哪些特点?MySQL是一种开源的关系型数据库管理系统,具有以下特点:- 开源免费:用户可以免费使用和修改MySQL,而且还能获得MySQL 的源代码。

- 跨平台:MySQL支持多种操作系统,如Windows、Linux、MacOS等。

- 高性能:MySQL具有高效的数据存储和检索能力,能够处理大量数据。

- 可扩展性:MySQL支持可扩展性,可以通过添加更多的硬件资源来提高系统性能。

- 安全性:MySQL提供了访问控制和数据加密等安全措施,保护数据的安全性。

1.2 如何在Windows系统上安装MySQL?在Windows系统上安装MySQL,可以按照以下步骤进行:1. 下载MySQL安装包,选择合适的版本和安装包类型。

2. 双击安装包,根据安装向导进行安装。

3. 配置MySQL安装参数,如设置root密码、端口号等。

4. 完成安装后,启动MySQL服务。

1.3 如何连接MySQL数据库?连接MySQL数据库,可以使用MySQL提供的命令行工具或者其他可视化管理工具。

- 命令行连接:打开命令行界面,输入`mysql -u 用户名 -p 密码`,即可连接到MySQL数据库。

- 可视化管理工具连接:根据所使用的工具类型和版本,在连接设置中填写相关信息,如主机名、端口号、用户名、密码等。

2. 试题二:MySQL查询语句2.1 如何查询表中的所有数据?要查询表中的所有数据,可以使用SELECT语句:```sqlSELECT * FROM 表名;```这条语句将返回指定表中的所有数据。

2.2 如何查询表中特定条件的数据?要查询表中特定条件的数据,可以使用WHERE子句来指定条件:```sqlSELECT * FROM 表名 WHERE 条件;```其中,条件可以是等于、大于、小于、不等于等比较运算符,也可以是逻辑运算符(AND、OR、NOT)的组合。

MySQL数据库及应用题库附答案

MySQL数据库及应用题库附答案

MySQL数据库及应用题库附答案【仅供学习参考,切勿通篇使用!】MySQL数据库及应用题库附答案第一章测验1单选计算机进行数据处理经历了从低级到高级的_______________ 个发展阶段A. 2B. 3C. 4D. 5答案:C2单选关系数据模型是以____________ 理论为基础的,用二维表结构来表示实体以及实体之间联系的模型。

A.关系B.表C.元组D.记录答案:A3单选关系中能唯一标识每个元组的最少属性或属性组称之为A.列B.外关键字C.索引D.关键字(主码或主键)答案:D4单选在同一个数据库中某个关系R1中的属性或属性组若在另一个关系R2中作为关键字(主码)使用,则该属性或属性组为R1的_____________ oA.列B.外关键字C.索引D.关键字(主码或主键)答案:B5单选一个数据库中往往包含多个关系,一个数据库中这些关系的集合称之为___________ OA.关系组合B.关系集合C.数据库模式D.关系模式答案:C6单选关系代数的运算分为两大类,第一类是传统的集合运算并、交、差运算,另一类是专门的关系运算,主要是选择、投影和_____________ OA.连接B.自然连接C.笛卡尔积D.查询答案:A7单选数据库、数据库管理和数据库系统之间的关系正确的是A.数据库包括了数据库管理系统和数据库系统B.数据库管理系统包括了数据库和数据库系统C.数据库系统包括数据库和数据库管理系统D.以上都不对答案:C8单选目前,商品化的数据库管理系统以_____________ 型为主。

A.关系B.层次C.网状D.对象9单选从给定关系中找出满足一定条件的元组的运算,称为_____________ 运算。

A.集合B.投影C.连接D.选择答案:D10单选数据模型所描述的内容包括三个部分,分别是数据结构、数据操作和__________ OA.数据定义B.数据约束C.数据连接D.数据选择答案:B第二章1单选设计关系数据库模式时,很容易出现的问题是冗余性,即一个事实在多个元组中重复。

数据库第一章课后习题答案

数据库第一章课后习题答案
【例1.4】数据库绻统由哪几部分组成? 【解】数据库绻统是引入了数据库技术的计算机绻统,除了一般计算机绻统的组成部 分外,还包含了数据库、数据库管理绻统、数据库应用绻统以及与绻统开发、使用相关的 各繻人员。
【例1.5】什么是数据库的子模式,给用户使用子模式有何好处? 【解】数据库的子模式是对数据库中面向某数据库应用绻统(或者说是面向某些数据 库用户)的部分数据的逻辑结构、完整性约束条件、安全性要湂等内容的描述。一个数据 库可以针对不同的用户设置多个子模式。 给用户使用子模式的好处主要包括:(1)子模式通常是逻辑模式的子集,逻辑模式中 的同一个数据对蹡,在不同的子模式中所映帄成的数据对蹡的繻型、长度、保密级别等都 可以不同,从而可满足多个应用的不同需湂;(2)数据库管理绻统保证了不同的应用绻统 只能操作它所对应的子模式中的数据,从而对用户的数据库访问权限进行了控制,是保障 数据库安全性的一个有力措施;(3)子模式作为数据库的三级模式两级映帄结构的组成部 分,支持了数据的逻辑独立性和物理独立性。
答:C
2.数据的收集、整理、组织、存储、查询、维护和传送等操作,统称为__________。
A.数据操作 B.数据处理 C.数据维护 D.数据管理
答:B
3.在人工管理阶段,数据是__________。
A.有结构的
B.无结构的
C.整体无结构,记录有结构 D.整体结构化的
答:B
4.在数据库绻统阶段,数据是__________。
A.有结构的
B.无结构的
C.整体无结构,记录内有结构 D.整体结构化的
答:D
5.在文件绻统阶段,数据__________。
A.无独立性
B.独立性差
C.具有物理独立性 D.具有逻辑独立性

数据库第1-3章课后习题答案

数据库第1-3章课后习题答案

数据库第1-3章课后习题答案第1章数据库系统概论三、简答题3.答:①数据定义语言及其翻译处理程序;②数据操纵语言及其编译(或解释)程序;③数据库运行控制程序;④实用程序。

5.答:①实现数据的集中化控制;②数据的冗余度小,易扩充;③采用一定的数据模型实现数据结构化;④避免了数据的不一致性;⑤实现数据共享;⑥提供数据库保护;⑦数据独立性;⑧数据由DBMS统一管理和控制。

6.答:数据独立性是指数据库中的数据独立于应用程序,即数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。

数据独立性一般分为数据的逻辑独立性和数据的物理独立性。

数据物理独立性是指数据的物理结构(存储结构、存取方式等)的改变,如存储设备的更换、物理存储格式和存取方式的改变等不影响数据库的逻辑结构,因而不会引起应用程序的改变。

8.答:数据库应用系统是基于数据库创建的,能实现用户相关实际需求的应用系统,而数据库管理系统则是运行于操作系统之上的,专用于对数据库进行管理的系统软件。

数据库应用系统对数据库的所有操作都要通过数据库管理系统来实现。

数据库管理系统通常会提供接口和工具以支持数据库应用系统的开发。

第二章三、简答题1.答:(1)关系:一个关系就是一张二维表,每个关系都有一个关系名。

关系是一个属性数目相同的元组的集合。

(2)属性:就是关系的标题栏中各列的名字,描述该列各数据项的含义,即二维表中垂直方向的列称为属性。

(3)元组:除了关系的标题栏外,二维表中水平方向的行称为元组。

(4)分量:元组中的一个属性值。

(5)关系模式是对关系的描述,关系模式是静态的、稳定的。

关系模式可以形式化地表示为:R(U,D,dom,F)。

(6)域是一组具有相同数据类型的值的信息或数据,在关系中用来表示属性的取值范围。

域中的元素可以完全不同,也可以部分或全部相同。

2.答:关系具有如下性质:(1)关系中不允许出现相同的元组。

任意两个元组不能完全相同。

因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。

MySql习题和答案

MySql习题和答案

MySql习题和答案MySQL测试题⼀、表关系请创建如下表,并创建相关约束⼆、操作表1、⾃⾏创建测试数据2、查询“⽣物”课程⽐“物理”课程成绩⾼的所有学⽣的学号。

ps:针对的是⾃⼰的⽣物成绩⽐物理成绩⾼,再把符合条件的学⽣的学号查出来;3、查询平均成绩⼤于60分的同学的学号和平均成绩;4、查询所有同学的学号、姓名、选课数、总成绩;5、查询姓“李”的⽼师的个数;6、查询没学过“叶平”⽼师课的同学的学号、姓名;7、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;8、查询学过“叶平”⽼师所教的所有课的同学的学号、姓名;9、查询课程编号“002”的成绩⽐课程编号“001”课程低的所有同学的学号、姓名;10、查询有课程成绩⼩于60分的同学的学号、姓名;11、查询没有学全所有课的同学的学号、姓名;12、查询⾄少有⼀门课与学号为“001”的同学所学相同的同学的学号和姓名;13、查询⾄少学过学号为“001”同学所选课程中任意⼀门课的其他同学学号和姓名;14、查询和“002”号的同学学习的课程完全相同的其他同学学号和姓名;15、删除学习“叶平”⽼师课的SC表记录;16、向SC表中插⼊⼀些记录,这些记录要求符合以下条件:①没有上过编号“002”课程的同学学号;②插⼊“002”号课程的平均成绩;17、按平均成绩从低到⾼显⽰所有学⽣的“语⽂”、“数学”、“英语”三门的课程成绩,按如下形式显⽰:学⽣ID,语⽂,数学,英语,有效课程数,有效平均分;18、查询各科成绩最⾼和最低的分:以如下形式显⽰:课程ID,最⾼分,最低分;19、按各科平均成绩从低到⾼和及格率的百分数从⾼到低顺序;20、课程平均分从⾼到低显⽰(现实任课⽼师);21、查询各科成绩前三名的记录:(不考虑成绩并列情况)22、查询每门课程被选修的学⽣数;23、查询出只选修了⼀门课程的全部学⽣的学号和姓名;24、查询男⽣、⼥⽣的⼈数;25、查询姓“张”的学⽣名单;26、查询同名同姓学⽣名单,并统计同名⼈数;27、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列;28、查询平均成绩⼤于85的所有学⽣的学号、姓名和平均成绩;29、查询课程名称为“数学”,且分数低于60的学⽣姓名和分数;30、查询课程编号为003且课程成绩在80分以上的学⽣的学号和姓名;31、求选了课程的学⽣⼈数32、查询选修“杨艳”⽼师所授课程的学⽣中,成绩最⾼的学⽣姓名及其成绩;33、查询各个课程及相应的选修⼈数;34、查询不同课程但成绩相同的学⽣的学号、课程号、学⽣成绩;35、查询每门课程成绩最好的前两名;36、检索⾄少选修两门课程的学⽣学号;37、查询全部学⽣都选修的课程的课程号和课程名;38、查询没学过“叶平”⽼师讲授的任⼀门课程的学⽣姓名;39、查询两门以上不及格课程的同学的学号及其平均成绩;40、检索“004”课程分数⼩于60,按分数降序排列的同学学号;41、删除“002”同学的“001”课程的成绩;MySql练习题参考答案/*Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version : 50624Source Host : localhostSource Database : sqlexamTarget Server Type : MySQLTarget Server Version : 50624File Encoding : utf-8Date: 10/21/2016 06:46:46 AM*/SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for `class`-- ----------------------------DROP TABLE IF EXISTS `class`;CREATE TABLE `class` (`cid` int(11) NOT NULL AUTO_INCREMENT,`caption` varchar(32) NOT NULL,PRIMARY KEY (`cid`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `class`-- ----------------------------BEGIN;INSERT INTO `class` VALUES ('1', '三年⼆班'), ('2', '三年三班'), ('3', '⼀年⼆班'), ('4', '⼆年九班');COMMIT;-- ------------------------------ Table structure for `course`-- ----------------------------DROP TABLE IF EXISTS `course`;CREATE TABLE `course` (`cid` int(11) NOT NULL AUTO_INCREMENT,`cname` varchar(32) NOT NULL,`teacher_id` int(11) NOT NULL,PRIMARY KEY (`cid`),KEY `fk_course_teacher` (`teacher_id`),CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `course`-- ----------------------------BEGIN;INSERT INTO `course` VALUES ('1', '⽣物', '1'), ('2', '物理', '2'), ('3', '体育', '3'), ('4', '美术', '2');COMMIT;-- ------------------------------ Table structure for `score`-- ----------------------------DROP TABLE IF EXISTS `score`;CREATE TABLE `score` (`sid` int(11) NOT NULL AUTO_INCREMENT,`student_id` int(11) NOT NULL,`course_id` int(11) NOT NULL,`num` int(11) NOT NULL,PRIMARY KEY (`sid`),KEY `fk_score_student` (`student_id`),KEY `fk_score_course` (`course_id`),CONSTRAINT `fk_score_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`cid`),CONSTRAINT `fk_score_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`)) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `score`-- ----------------------------BEGIN;INSERT INTO `score` VALUES ('1', '1', '1', '10'), ('2', '1', '2', '9'), ('5', '1', '4', '66'), ('6', '2', '1', '8'), ('8', '2', '3', '68'), ('9', '2', '4', '99'), ('10', '3', '1', '77'), ('11', '3', '2', '66'), ('12', '3', '3', '87'), ('13', '3', '4', '99'), ('14', '4', '1', '79'), ('15', '4', '2', '11'), ('16', '4', '3', '67'), ('1 COMMIT;-- ------------------------------ Table structure for `student`-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` (`sid` int(11) NOT NULL AUTO_INCREMENT,`gender` char(1) NOT NULL,`class_id` int(11) NOT NULL,`sname` varchar(32) NOT NULL,PRIMARY KEY (`sid`),KEY `fk_class` (`class_id`),CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`cid`)) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `student`-- ----------------------------BEGIN;INSERT INTO `student` VALUES ('1', '男', '1', '理解'), ('2', '⼥', '1', '钢蛋'), ('3', '男', '1', '张三'), ('4', '男', '1', '张⼀'), ('5', '⼥', '1', '张⼆'), ('6', '男', '1', '张四'), ('7', '⼥', '2', '铁锤'), ('8', '男', '2', '李三'), ('9', '男', '2', '李⼀'), ('10', '⼥', '2', '李⼆'), ('11', '男', '2', '李四'), ( COMMIT;-- ------------------------------ Table structure for `teacher`-- ----------------------------DROP TABLE IF EXISTS `teacher`;CREATE TABLE `teacher` (`tid` int(11) NOT NULL AUTO_INCREMENT,`tname` varchar(32) NOT NULL,PRIMARY KEY (`tid`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `teacher`-- ----------------------------BEGIN;INSERT INTO `teacher` VALUES ('1', '张磊⽼师'), ('2', '李平⽼师'), ('3', '刘海燕⽼师'), ('4', '朱云海⽼师'), ('5', '李杰⽼师');COMMIT;SET FOREIGN_KEY_CHECKS = 1;/*Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version : 50624Source Host : localhostSource Database : sqlexamTarget Server Type : MySQLTarget Server Version : 50624File Encoding : utf-8Date: 10/21/2016 06:46:46 AM*/SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for `class`-- ----------------------------DROP TABLE IF EXISTS `class`;CREATE TABLE `class` (`cid` int(11) NOT NULL AUTO_INCREMENT,`caption` varchar(32) NOT NULL,PRIMARY KEY (`cid`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `class`-- ----------------------------BEGIN;INSERT INTO `class` VALUES ('1', '三年⼆班'), ('2', '三年三班'), ('3', '⼀年⼆班'), ('4', '⼆年九班');COMMIT;-- ------------------------------ Table structure for `course`-- ----------------------------DROP TABLE IF EXISTS `course`;CREATE TABLE `course` (`cid` int(11) NOT NULL AUTO_INCREMENT,`cname` varchar(32) NOT NULL,`teacher_id` int(11) NOT NULL,PRIMARY KEY (`cid`),KEY `fk_course_teacher` (`teacher_id`),CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `course`-- ----------------------------BEGIN;INSERT INTO `course` VALUES ('1', '⽣物', '1'), ('2', '物理', '2'), ('3', '体育', '3'), ('4', '美术', '2');COMMIT;-- ------------------------------ Table structure for `score`-- ----------------------------DROP TABLE IF EXISTS `score`;CREATE TABLE `score` (`sid` int(11) NOT NULL AUTO_INCREMENT,`student_id` int(11) NOT NULL,`course_id` int(11) NOT NULL,`num` int(11) NOT NULL,PRIMARY KEY (`sid`),KEY `fk_score_student` (`student_id`),KEY `fk_score_course` (`course_id`),CONSTRAINT `fk_score_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`cid`),CONSTRAINT `fk_score_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`)) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `score`-- ----------------------------BEGIN;INSERT INTO `score` VALUES ('1', '1', '1', '10'), ('2', '1', '2', '9'), ('5', '1', '4', '66'), ('6', '2', '1', '8'), ('8', '2', '3', '68'), ('9', '2', '4', '99'), ('10', '3', '1', '77'), ('11', '3', '2', '66'), ('12', '3', '3', '87'), ('13', '3', '4', '99'), ('14', '4', '1', '79'), ('15', '4', '2', '11'), ('16', '4', '3', '67'), ('1 COMMIT;-- ------------------------------ Table structure for `student`-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` (`sid` int(11) NOT NULL AUTO_INCREMENT,`gender` char(1) NOT NULL,`class_id` int(11) NOT NULL,`sname` varchar(32) NOT NULL,PRIMARY KEY (`sid`),KEY `fk_class` (`class_id`),CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`cid`)) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `student`-- ----------------------------BEGIN;INSERT INTO `student` VALUES ('1', '男', '1', '理解'), ('2', '⼥', '1', '钢蛋'), ('3', '男', '1', '张三'), ('4', '男', '1', '张⼀'), ('5', '⼥', '1', '张⼆'), ('6', '男', '1', '张四'), ('7', '⼥', '2', '铁锤'), ('8', '男', '2', '李三'), ('9', '男', '2', '李⼀'), ('10', '⼥', '2', '李⼆'), ('11', '男', '2', '李四'), ( COMMIT;-- ------------------------------ Table structure for `teacher`-- ----------------------------DROP TABLE IF EXISTS `teacher`;CREATE TABLE `teacher` (`tid` int(11) NOT NULL AUTO_INCREMENT,`tname` varchar(32) NOT NULL,PRIMARY KEY (`tid`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of `teacher`-- ----------------------------BEGIN;INSERT INTO `teacher` VALUES ('1', '张磊⽼师'), ('2', '李平⽼师'), ('3', '刘海燕⽼师'), ('4', '朱云海⽼师'), ('5', '李杰⽼师');COMMIT;SET FOREIGN_KEY_CHECKS = 1;表结构和数据练习题答案:2、查询“⽣物”课程⽐“物理”课程成绩⾼的所有学⽣的学号;思路:获取所有有⽣物课程的⼈(学号,成绩) - 临时表获取所有有物理课程的⼈(学号,成绩) - 临时表根据【学号】连接两个临时表:学号物理成绩⽣物成绩然后再进⾏筛选select A.student_id,sw,ty from(select student_id,num as sw from score left join course on score.course_id = course.cid where ame = '⽣物') as Aleft join(select student_id,num as ty from score left join course on score.course_id = course.cid where ame = '体育') as Bon A.student_id = B.student_id where sw > if(isnull(ty),0,ty);3、查询平均成绩⼤于60分的同学的学号和平均成绩;思路:根据学⽣分组,使⽤avg获取平均值,通过having对avg进⾏筛选select student_id,avg(num) from score group by student_id having avg(num) > 604、查询所有同学的学号、姓名、选课数、总成绩;select score.student_id,sum(score.num),count(score.student_id),student.snamefromscore left join student on score.student_id = student.sidgroup by score.student_id5、查询姓“李”的⽼师的个数;select count(tid) from teacher where tname like '李%'select count(1) from (select tid from teacher where tname like '李%') as B6、查询没学过“叶平”⽼师课的同学的学号、姓名;思路:先查到“李平⽼师”⽼师教的所有课ID获取选过课的所有学⽣ID学⽣表中筛选select * from student where sid not in (select DISTINCT student_id from score where score.course_id in (select cid from course left join teacher on course.teacher_id = teacher.tid where tname = '李平⽼师'))7、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;思路:先查到既选择001⼜选择002课程的所有同学根据学⽣进⾏分组,如果学⽣数量等于2表⽰,两门均已选择select student_id,sname from(select student_id,course_id from score where course_id = 1 or course_id = 2) as Bleft join student on B.student_id = student.sid group by student_id HAVING count(student_id) > 18、查询学过“叶平”⽼师所教的所有课的同学的学号、姓名;同上,只不过将001和002变成 in (叶平⽼师的所有课)9、查询课程编号“002”的成绩⽐课程编号“001”课程低的所有同学的学号、姓名;同第1题10、查询有课程成绩⼩于60分的同学的学号、姓名;select sid,sname from student where sid in (select distinct student_id from score where num < 60)11、查询没有学全所有课的同学的学号、姓名;思路:在分数表中根据学⽣进⾏分组,获取每⼀个学⽣选课数量如果数量 == 总课程数量,表⽰已经选择了所有课程select student_id,snamefrom score left join student on score.student_id = student.sidgroup by student_id HAVING count(course_id) = (select count(1) from course)12、查询⾄少有⼀门课与学号为“001”的同学所学相同的同学的学号和姓名;思路:获取 001 同学选择的所有课程获取课程在其中的所有⼈以及所有课程根据学⽣筛选,获取所有学⽣信息再与学⽣表连接,获取姓名select student_id,sname, count(course_id)from score left join student on score.student_id = student.sidwhere student_id != 1 and course_id in (select course_id from score where student_id = 1) group by student_id13、查询⾄少学过学号为“001”同学所有课的其他同学学号和姓名;先找到和001的学过的所有⼈然后个数= 001所有学科==》其他⼈可能选择的更多select student_id,sname, count(course_id)from score left join student on score.student_id = student.sidwhere student_id != 1 and course_id in (select course_id from score where student_id = 1) group by student_id having count(course_id) = (select count(course_id) from score where student_id = 1) 14、查询和“002”号的同学学习的课程完全相同的其他同学学号和姓名;个数相同002学过的也学过select student_id,sname from score left join student on score.student_id = student.sid where student_id in (select student_id from score where student_id != 1 group by student_id HAVING count(course_id) = (select count(1) from score where student_id = 1)) and course_id in (select course_id from score where student_id = 1) group by student_id HAVING count(course_id) = (select count(1) from score where student_id = 1)15、删除学习“叶平”⽼师课的score表记录;delete from score where course_id in (select cid from course left join teacher on course.teacher_id = teacher.tid where = '叶平')16、向SC表中插⼊⼀些记录,这些记录要求符合以下条件:①没有上过编号“002”课程的同学学号;②插⼊“002”号课程的平均成绩;思路:由于insert ⽀持inset into tb1(xx,xx) select x1,x2 from tb2;所有,获取所有没上过002课的所有⼈,获取002的平均成绩insert into score(student_id, course_id, num) select sid,2,(select avg(num) from score where course_id = 2)from student where sid not in (select student_id from score where course_id = 2)17、按平均成绩从低到⾼显⽰所有学⽣的“语⽂”、“数学”、“英语”三门的课程成绩,按如下形式显⽰:学⽣ID,语⽂,数学,英语,有效课程数,有效平均分;select sc.student_id,(select num from score left join course on score.course_id = course.cid where ame = "⽣物" and score.student_id=sc.student_id) as sy,(select num from score left join course on score.course_id = course.cid where ame = "物理" and score.student_id=sc.student_id) as wl,(select num from score left join course on score.course_id = course.cid where ame = "体育" and score.student_id=sc.student_id) as ty,count(sc.course_id),avg(sc.num)from score as scgroup by student_id desc18、查询各科成绩最⾼和最低的分:以如下形式显⽰:课程ID,最⾼分,最低分;select course_id, max(num) as max_num, min(num) as min_num from score group by course_id;19、按各科平均成绩从低到⾼和及格率的百分数从⾼到低顺序;思路:case when .. thenselect course_id, avg(num) as avgnum,sum(case when score.num > 60 then 1 else 0 END)/count(1)*100 as percent from score group by course_id order by avgnum asc,percent desc;20、课程平均分从⾼到低显⽰(现实任课⽼师);select avg(if(isnull(score.num),0,score.num)),teacher.tname from courseleft join score on course.cid = score.course_idleft join teacher on course.teacher_id = teacher.tidgroup by score.course_id21、查询各科成绩前三名的记录:(不考虑成绩并列情况)select score.sid,score.course_id,score.num,T.first_num,T.second_num from score left join(selectsid,(select num from score as s2 where s2.course_id = s1.course_id order by num desc limit 0,1) as first_num,(select num from score as s2 where s2.course_id = s1.course_id order by num desc limit 3,1) as second_numfromscore as s1) as Ton score.sid =T.sidwhere score.num <= T.first_num and score.num >= T.second_num22、查询每门课程被选修的学⽣数;select course_id, count(1) from score group by course_id;23、查询出只选修了⼀门课程的全部学⽣的学号和姓名;select student.sid, student.sname, count(1) from scoreleft join student on score.student_id = student.sidgroup by course_id having count(1) = 124、查询男⽣、⼥⽣的⼈数;select * from(select count(1) as man from student where gender='男') as A ,(select count(1) as feman from student where gender='⼥') as B25、查询姓“张”的学⽣名单;select sname from student where sname like '张%';26、查询同名同姓学⽣名单,并统计同名⼈数;select sname,count(1) as count from student group by sname;27、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列;select course_id,avg(if(isnull(num), 0 ,num)) as avg from score group by course_id order by avg asc,course_id desc;28、查询平均成绩⼤于85的所有学⽣的学号、姓名和平均成绩;select student_id,sname, avg(if(isnull(num), 0 ,num)) from score left join student on score.student_id = student.sid group by student_id;29、查询课程名称为“数学”,且分数低于60的学⽣姓名和分数;select student.sname,score.num from scoreleft join course on score.course_id = course.cidleft join student on score.student_id = student.sidwhere score.num < 60 and ame = '⽣物'30、查询课程编号为003且课程成绩在80分以上的学⽣的学号和姓名;select * from score where score.student_id = 3 and score.num > 8031、求选了课程的学⽣⼈数select count(distinct student_id) from scoreselect count(c) from (select count(student_id) as c from score group by student_id) as A32、查询选修“杨艳”⽼师所授课程的学⽣中,成绩最⾼的学⽣姓名及其成绩;select sname,num from scoreleft join student on score.student_id = student.sidwhere score.course_id in (select course.cid from course left join teacher on course.teacher_id = teacher.tid where tname='张磊⽼师') order by num desc limit 1;33、查询各个课程及相应的选修⼈数;select ame,count(1) from scoreleft join course on score.course_id = course.cidgroup by course_id;34、查询不同课程但成绩相同的学⽣的学号、课程号、学⽣成绩;select DISTINCT s1.course_id,s2.course_id,s1.num,s2.num from score as s1, score as s2 where s1.num = s2.num and s1.course_id != s2.course_id;35、查询每门课程成绩最好的前两名;select score.sid,score.course_id,score.num,T.first_num,T.second_num from score left join(selectsid,(select num from score as s2 where s2.course_id = s1.course_id order by num desc limit 0,1) as first_num,(select num from score as s2 where s2.course_id = s1.course_id order by num desc limit 1,1) as second_numfromscore as s1) as Ton score.sid =T.sidwhere score.num <= T.first_num and score.num >= T.second_num36、检索⾄少选修两门课程的学⽣学号;select student_id from score group by student_id having count(student_id) > 137、查询全部学⽣都选修的课程的课程号和课程名;select course_id,count(1) from score group by course_id having count(1) = (select count(1) from student);38、查询没学过“叶平”⽼师讲授的任⼀门课程的学⽣姓名;select student_id,student.sname from scoreleft join student on score.student_id = student.sidwhere score.course_id not in (select cid from course left join teacher on course.teacher_id = teacher.tid where tname = '张磊⽼师')group by student_id39、查询两门以上不及格课程的同学的学号及其平均成绩;select student_id,count(1) from score where num < 60 group by student_id having count(1) > 240、检索“004”课程分数⼩于60,按分数降序排列的同学学号;select student_id from score where num< 60 and course_id = 4 order by num desc;41、删除“002”同学的“001”课程的成绩;delete from score where course_id = 1 and student_id = 2。

mysql数据库练习题答案解析

mysql数据库练习题答案解析

mysql数据库练习题答案解析表结构:Student(S#,Sname,Sage,Ssex) 学⽣表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表建表语句:CREATE TABLE student(s# INT,sname nvarchar(32),sage INT,ssex nvarchar(8)) CREATE TABLE course(c# INT,cname nvarchar(32),t# INT ) CREATE TABLE sc(s# INT,c# INT,score INT ) CREATE TABLE teacher(t# INT,tname nvarchar(16))插⼊测试数据语句:insert into Student select 1,N'刘⼀',18,N'男' union all select 2,N'钱⼆',19,N'⼥' union all select 3,N'张三',17,N'男' union all select 4,N'李四',18,N'⼥' union all select 5,N'王五',17,N'男' union all select 6,N'赵六',19,N'⼥'insert into Teacher select 1,N'叶平' union all select 2,N'贺⾼' union all select 3,N'杨艳' union all select 4,N'周磊'insert into Course select 1,N'语⽂',1 union all select 2,N'数学',2 union all select 3,N'英语',3 union all select 4,N'物理',4insert into SC select 1,1,56 union all select 1,2,78 union all select 1,3,67 union all select 1,4,58 union all select 2,1,79 union all select 2,2,81 union all select 2,3,92 union all select 2,4,68 union all select 3,1,91 union all select 3,2,47 union all sele问题:1、查询“001”课程⽐“002”课程成绩⾼的所有学⽣的学号;select a.S# from (select s#,score from SC where C#='001') a,(select s#,scorefrom SC where C#='002') bwhere a.score>b.score and a.s#=b.s#;2、查询平均成绩⼤于60分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score)from Student left Outer join SC on Student.S#=SC.S#group by Student.S#,Sname4、查询姓“李”的⽼师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”⽼师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”⽼师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tn 8、查询课程编号“002”的成绩⽐课程编号“001”课程低的所有同学的学号、姓名;Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score;9、查询所有课程成绩⼩于60分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select S.S# from Student AS S,SC where S.S#=SC.S# and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);11、查询⾄少有⼀门课与学号为“1001”的同学所学相同的同学的学号和姓名;select distinct S#,Sname from Student,SC where Student.S#=SC.S# and SC.C# in (select C# from SC where S#='1001');12、查询⾄少学过学号为“001”同学所有⼀门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”⽼师教的课的成绩都更改为此课程的平均成绩;update SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002')group by S# having count(*)=(select count(*) from SC where S#='1002');15、删除学习“叶平”⽼师课的SC表记录;Delete SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插⼊⼀些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');17、按平均成绩从⾼到低显⽰所有学⽣的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显⽰:学⽣ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学⽣ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最⾼和最低的分:以如下形式显⽰:课程ID,最⾼分,最低分SELECT L.C# As 课程ID,L.score AS 最⾼分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# and L.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)AND R.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);⾃⼰写的:select c# ,max(score)as 最⾼分 ,min(score) as 最低分 from dbo.sc group by c#19、按各科平均成绩从低到⾼和及格率的百分数从⾼到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC20、查询如下课程平均成绩和及格率的百分数(⽤"1⾏"显⽰): 企业管理(001),马克思(002),OO&UML (003),数据库(004)SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数FROM SC21、查询不同⽼师所教不同课程平均分从⾼到低显⽰SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,AVG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第 3 名到第 6 名的学⽣成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学⽣ID],[学⽣姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3 SC.S# As 学⽣学号,Student.Sname AS 学⽣姓名 ,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001' LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002' LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003' LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004' WHERE student.S#=SC.S# and ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)NOT IN (SELECT DISTINCT TOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1' LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2' LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3' LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4' ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);23、统计列印各科成绩,各分数段⼈数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60] SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85] ,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70] ,SUM(CASE WHEN score BETWEEN 60 AND 70 THE where SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学⽣平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,AVG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩 > T2.平均成绩) as 名次,S# as 学⽣学号,平均成绩FROM (SELECT S#,AVG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩 desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学⽣ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC )ORDER BY t1.C#;26、查询每门课程被选修的学⽣数select c#,count(S#) from sc group by C#;27、查询出只选修了⼀门课程的全部学⽣的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;28、查询男⽣、⼥⽣⼈数Select count(Ssex) as 男⽣⼈数 from Student group by Ssex having Ssex='男';Select count(Ssex) as ⼥⽣⼈数 from Student group by Ssex having Ssex='⼥';29、查询姓“张”的学⽣名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学⽣名单,并统计同名⼈数select Sname,count(*) from Student group by Sname having count(*)>1;31、1981年出⽣的学⽣名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DATEPART(year,Sage)) as agefrom studentwhere CONVERT(char(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩⼤于85的所有学⽣的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname having avg(score)>85;34、查询课程名称为“数据库”,且分数低于60的学⽣姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score <60;35、查询所有学⽣的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何⼀门课程成绩在70分以上的姓名、课程名称和分数;SELECT distinct student.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score>=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从⼤到⼩排列select c# from sc where scor e <60 order by C# ;38、查询课程编号为003且课程成绩在80分以上的学⽣的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003';39、求选了课程的学⽣⼈数select count(*) from sc;40、查询选修“叶平”⽼师所授课程的学⽣中,成绩最⾼的学⽣姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# );41、查询各个课程及相应的选修⼈数select count(*) from sc group by C#;42、查询不同课程成绩相同的学⽣的学号、课程号、学⽣成绩select distinct A.S#,B.score from SC A ,SC B where A.Score=B.Score and A.C# <>B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学⽣ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC )ORDER BY t1.C#;44、统计每门课程的学⽣选修⼈数(超过10⼈的课程才统计)。

mysql数据库武洪萍版第一章习题与答案

mysql数据库武洪萍版第一章习题与答案

第一章习题一.选择题1.现实世界中客观存在并能相互区别的事物称为(A)A)实体B)实体集C)字段D)记录2.下列实体类型的联系中,属于一对一联系的是(C)A)教研室对教师的所属联系B)父亲对孩子的亲生联系C)省对省会的所属联系D)供应商与工程项目的供货联系3.采用二维表格结构表达实体类型及实体间联系的数据模型是(C )A)层次模型B)网状模型C)关系模型D)实体联系模型4.数据库(DB)、DBMS、DBS三者之间的关系(B )A)DB包括DBMS和DBS B)DBS包括DB和DBMSC)DBMS包括DB和DBS D)DBS与DB和DBMS无关5.数据库系统中,用(D )描述全部数据的整体逻辑结构A)外模式B)存储模式C)内模式D)概念模式6.逻辑数据独立性是指(A )A)概念模式改变,外模式和应用程序不变B)概念模式改变,内模式不变C)内模式改变,概念模式不变D)内模式改变,外模式和应用程序不变7.物理数据独立性是指(D )A)概念模式改变,外模式和应用程序不变B)概念模式改变,内模式不变C)内模式改变,概念模式不变D)内模式改变,外模式和应用程序不变8. 设关系R和S的元组个数分别为100和300,关系T是R与S的笛卡尔积,则T的元组个数为(C )A)400 B)10000 C)30000 D)900009. 设关系R和S具有相同的目,且它们相对应的属性的值取自同一个域,则R-(R-S)等于(B)A)R∪S B)R∩S C)R×S D)R÷S10. 在关系代数中,(D )操作称为从两个关系的笛卡尔积中,选取它们属性间满足一定条件的元组。

A)投影 B)选择 C)自然连接D)θ连接11. 关系数据模型的三个要素是(D)A)关系数据结构、关系操作集合和关系规范化理论B)关系数据结构、关系规范化理论和关系的完整性约束C)关系规范化理论、关系操作集合和关系的完整性约束D)关系数据结构、关系操作集合和关系的完整性约束12. 在关系代数的连接操作中,哪一种连接操作需要取消重复列?(A)A)自然连接 B)笛卡尔积 C)等值连接D)θ连接13. 设属性A是关系R的主属性,则属性A不能取空值(NULL)。

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

第一章习题
一.选择题
1.现实世界中客观存在并能相互区别的事物称为(A)
A)实体B)实体集C)字段D)记录
2.下列实体类型的联系中,属于一对一联系的是(C)
A)教研室对教师的所属联系B)父亲对孩子的亲生联系
C)省对省会的所属联系D)供应商与工程项目的供货联系
3.采用二维表格结构表达实体类型及实体间联系的数据模型是(C )A)层次模型B)网状模型C)关系模型D)实体联系模型
4.数据库(DB)、DBMS、DBS三者之间的关系(B )
A)DB包括DBMS与DBS B)DBS包括DB与DBMS
C)DBMS包括DB与DBS D)DBS与DB与DBMS无关
5.数据库系统中,用(D )描述全部数据的整体逻辑结构
A)外模式B)存储模式C)内模式D)概念模式
6.逻辑数据独立性是指(A )
A)概念模式改变,外模式与应用程序不变B)概念模式改变,内模式不变
C)内模式改变,概念模式不变D)内模式改变,外模式与应用程序不变
7.物理数据独立性是指(D )
A)概念模式改变,外模式与应用程序不变B)概念模式改变,内模式
不变
C)内模式改变,概念模式不变D)内模式改变,外模式与应用程序不变
8. 设关系R与S的元组个数分别为100与300,关系T是R与S的笛卡尔积,则T的元组个数为(C )
A)400 B)10000 C)30000 D)90000
9. 设关系R与S具有相同的目,且它们相对应的属性的值取自同一个域,则R-(R-S)等于(B)
A)R∪S B)R∩S C)R×S D)R÷S
10. 在关系代数中,(D )操作称为从两个关系的笛卡尔积中,选取它们属性间满足一定条件的元组。

A)投影B)选择C)自然连接D)θ连接
11. 关系数据模型的三个要素是(D)
A)关系数据结构、关系操作集合与关系规范化理论
B)关系数据结构、关系规范化理论与关系的完整性约束
C)关系规范化理论、关系操作集合与关系的完整性约束
D)关系数据结构、关系操作集合与关系的完整性约束
12. 在关系代数的连接操作中,哪一种连接操作需要取消重复列?(A)
A)自然连接B)笛卡尔积C)等值连接D)θ连接
13. 设属性A是关系R的主属性,则属性A不能取空值(NULL)。

这是(A)。

A)实体完整性规则B)参照完整性规则
C)用户定义完整性规则D)域完整性规则
14.如果在一个关系中,存在多个属性(或属性组)都能用来唯一标识该关系的元组,且其任何子集都不具有这一特性。

这些属性(或属性组)都被称为该关系的(A )
A)候选码B)主码C)外码D)连接码
二.填空题
1.__物理数据库的独立性_____是数据库的整体逻辑结构改变时,尽量不影响用户的逻辑结构以及应用程序。

2.用户与操作系统之间的数据管理软件是__数据库管理系统(DBMS)_______。

3.现实世界的事物反映到人的头脑中经过思维加工成数据,这一过程要经过三个领域,依次是__现实世界_______、____信息世界______与___数据世界_______。

4.能唯一标识实体的属性集,称为___码______。

5.两个不同实体集的实体间有____一对一(1:1)_____、____一对多(1:n)_____与___多对多(n:n)______三种情况联系。

6.表示实体类型与实体间联系的模型,称为____概念数据模型_____.最著名、最为常用的概念模型是_____E-R模型____。

7.数据独立性分成____逻辑数据_____独立性与____物理数据_____独立性两级。

8.DBS中最重要的软件是___DBMS(数据库管理系统)______;最重
要的用户是___DBA(数据库管理员)______。

9.设有关系模式R(A,B,C)与S(E,A,F),若R.A是R的主码,S.A是S的外码,则S.A的值或者等于R中某个元组的主码值,或者取空值(null)。

这是关系的参照完整性规则。

10.在关系代数中,从两个关系的笛卡儿积中选取它们的属性或属性组间满足一定条件的元组的操作称为θ连接。

三.简答题
1.什么是数据模型?数据模型的作用及三要素是什么?
答:数据模型是对现实世界的数据特征进行的抽象,来描述数据库的结构与语义。

数据模型的三要素是:数据结构、数据操作、数据约束条件。

2.什么是数据库的逻辑独立性?什么是数据库的物理独立性?为什么数据库系统具有数据与程序的独立性?
答:逻辑数据独立性:当模式改变时(如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变。

因而应用程序不必修改,保证了数据与程序的逻辑独立性,简称逻辑数据独立性。

物理数据独立性:当数据库的存储结构改变了(如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以保证模式保持不变,因而应用程序也不必改变。

保证了数据与程序的物理独立性,简称物理数据独立性
特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的
外模式,与数据库的模式与存储结构相独立。

不同的应用程序可以共用同一外模式。

数据库的两级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,使得数据库系统具有数据与程序的独立性。

3.数据库系统有哪几部分组成?
答:数据库系统由计算机硬件、数据库、数据库管理系统(及其开发工具)、数据库应用系统、数据库用户构成。

4.DBA的职责是什么?系统程序员、数据库设计员、应用程序员的职责是什么
答:DBA的职责是对使用中的数据库进行整体维护与改进,负责数据库系统的正常运行,是数据库系统的专职管理与维护人员。

系统分析员负责应用系统的需求分析与规范说明,要与用户及DBA结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。

数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。

应用程序开发人员负责设计与编写应用程序的程序模块,并进行测试与安装。

5.数据库管理技术经历了哪几个阶段?
答:从数据管理的角度看,数据库技术到目前共经历了人工管理阶段、文件系统阶段与数据库系统阶段。

人工管理阶段数据管理特点:数据不保存,没有对数据进行管理的软件系统,没有文件的概念,数据不具有独立性。

文件系统阶段数据管理特点:数据可以长期保存,由文件系统管理数据,文件的形式已经多样化,数据具有一定的独立性。

数据库系统阶段数据管理特点:采用复杂的结构化的数据模型,较高的数据独立性,最低的冗余度,数据控制功能
6.常用的数据库管理系统有哪些?
答:目前比较流行的DBMS有Visual FoxPro、Access、SQL Server、My SQL 、Oracle等。

相关文档
最新文档