一、数据库基本知识

数据库中的数据有什么特点

1、数据是按某种结构组织的

2、数据有整体性、共享性和较高的独立性

数据管理技术经历了哪三个阶段

1、手工管理

2、文件管理

3、数据库管理

数据库管理系统的主要功能有哪些

数据库管理系统的主要功能包括数据定义、数据操作、数据维护、数据控制和事务管理。


用文件系统管理数据有什么缺陷?

用文件系统管理数据会有三个缺陷:1)由于文件之间缺乏联系,会造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储,所以数据冗余度大。2)由于数据冗余,在进行更新操作时,稍不谨慎,就可能是同样的数据在不同的文件中不一样,从而产生少数局部不一致缺陷。3)由于文件之间相互独立,缺乏联系,会造成数据联系弱的缺陷
(数据的逻辑独立差、数据间缺乏独立性、数据冗余仍然存在)

什么是数据独立性

修改模式的定义而不影响位于其上层的模式的能力叫做数据独立性。

选择题

要保证数据库的逻辑数据独立性,需要修改的是(A)

A.模式与外模式之间的映射
B.模式与内模式之间的映射
C.模式
D.三级模式

数据库系统的数据独立性体现在(B)
A.不会因为数据的变化而影响到应用程序
B.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序
C.不会因为存储策略的变化而影响存储结构
D.不会因为某些存储结构的变化而影响其他的存储结构

要保证数据库的数据独立性,需要修改的是(C)。

A.模式与外模式[1]
B.模式与内模式[2]
C.三级模式之间的两层映射
D.三层模式

下述(D)不是DBA数据库管理员的职责。

A.完整性约束[1]说明
B.定义数据库模式
C.数据库安全[2]
D.数据库管理系统设计

下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是(D)。I.人工管理阶段II.文件系统[1]阶段III.数据库系统阶段

A.I和IIB.只有IIC.II和IIID.只有I

数据库(DB)、数据库系统(DBS)和数据库管理系统
(DBMS)三者之间的关系是(A)。
A.DBS包括DB和DBMS
B.DBMS包括DB和DBS
C.DB包括DBS和DBMS
D.DBS就是DB,也就是DBMS

在数据管理技术的发展过程中,经历了人工管理阶段、文件系统[11阶段和数据 库系统阶段,在这几个阶段中,数据独立性最高的是(A)阶段。
A.数据库系统
B.文件系统
C.人工管理
D.数据项[2]管理

数据库的三级模式之间存在的映象关系正确的是(B)。

A.外模式[1]/内模式[2]
B.外模式/模式
C.外模式/外模式
D.模式/模式

存储在计算机外部存储介质上的结构化的数据集合,其英文名称是(C)。
A. Dictionary(简写DD)
B. Data Base System(简写DBS)
C. Data Base(简写DB)
Data Base Management System(简写为DBMS)

对于数据库系统,负责定义数据库内容,决定存储结构和存取策略及安全授权等工作的是(C)
A.应用程序开发人员
B.终端用户
C.数据库管理员
D.数据库管理系统的软件设计人员

数据库中,数据的物理独立性是指C
A.数据库与数据管理系统的相互独立
B.用户程序与DBMS的相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
D.应用程序与数据库中数据的逻辑结构相互独立

数据库技术中采用分级方法将数据库的结构划分成多个层次,是为了提高B
A.数据独立性
B.逻辑独立性
C.管理规范性
D.数据的共享

一般情况下,一个数据库系统的外模式[1](D)

A.只能有一个
B.最多只能有一个
C.至少两个
D.可以有多个

在数据库中,产生数据不一致的根本原因是D

A.数据存储量太大
B.没有严格保护数据
C.未对数据进行完整性的控制
D.数据冗余[1]

数据的管理方法主要有D

A.批处理[1]和文件系统[2].文件系统和分布式系统C.分布式系统和批处D.数据库系统和文件系统

数据库三级模式中,模式和内模式[1]A
A.只能有一个
B.最多只有一个
C.至少两个
D.可以有多个

在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、(B)和存储级3个层
次。
A. 管理员级
B.外部级
C.概念级
D.内部级

应用数据库[11]的主要目的是为了。C

A.解决保密问题
B.解决数据完整性[2]问题
C.共享数据问题
D.解决数据量大的问题

数据库系统的最大特点是。A
A.数据的三级抽象和二级独立性
B.数据共享性
C.数据的结构化
D.数据独立性

数据库三级模式中,真正存在的是D

A.外模式[1]
B.子模式
C.模式
D. 内模式[2]

以下关于文件系统[11管理数据的描述,错误的是A

A.文件系统阶段已经出现了大容量的磁盘
B.文件系统阶段数据以文件的形式保存在磁盘中C.文件系统阶段数据和程序间有了较高的逻辑独立性D.文件系统阶段数据存取以记录为单位
 

以下关于数据独立性的说法中,错误的是()D

A数据和程序间的独立性越高,依赖程度就越低B数据的独立性分为逻辑独立性和物理独立性C数据库系统三级模式的划分有利于提高数据的独立D通过修改模式/内模式[1]映像可以保证数据的逻辑独立性

以下关于数据库管理系统的描述中,正确的是()B
A,数据库管理系统都是基于关系模型的
B,数据库管理系统负责对数据库进行统一管理和控制
C,数据库管理系统是操作系统的一部分
D,数据库管理系统和数据库系统是同一概念的不同表达

二、数据模型

概念模型有哪些特点?

答:①、语义表达能力丰富。②、面向用户、易于理解③、易于更改和扩充④、易于向各种数据模型转换

实体(集)之间的联系有哪几种,举一例说明?

1)两个实体集之间的联系1)一对一联系(1:1)(如:班长一班级)2)一对多联系(1:n)(如:学校一教师)3)多对多联系(m:n)(如:学生一课程)
 

数据模型有哪几种?它们各自有哪些优、缺点?

层次模型(查询效率高;关系固定不够灵活)

网状模型(关系灵活;操作复杂)

关系模型(较好的数据独立性;对复杂的数据结构支持不够)

概念模型向关系模型转换的基本方法是什么

每一个实体必须转换为一个关系;

选择题

关系数据模型[1]是目前最重要的一种数据模型,它的三个要素分别是(B)。
A. 实体完整性[2〕、参照完整性[3]、用户自定义完整性
B.数据结构、关系操作、完整性约束[4]
C.数据增加、数据修改、数据查询
D. 外模式[5]、模式、内模式[6]

存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,简化程序员和数据库开发建立工作的模型是B
A.网状模型
B.关系模型
C.层次模型
D.以上都有

概念模型是现实世界的第一层抽象,这一类最著名的
模型是()。D
A.层次模型
B.关系模型
C.网状模型
D.实体﹣联系模型[1]

数据库的概念模型独立于A
A. 具体的机器和DBMS
B.E-R图
C.信息世界
D.现实世界

在数据库技术中,面向对象数据模型是一种B
A. 概念模型
B.结构模型
C.物理模型
D.形象模型

通过指针链接来表示和实现实体之间联系的模型是D
A.关系模型
B.层次模型
C.网状模型
D. 层次和网状模型

在数据库设计[1]中用关系模型来表示实体和实体之间的联系,关系模型的结构是B
A.层次结构
B.二维表结构
C.网状结构
D.封装结构

在数据库的非关系模型中,基本层次联系是()。B

A、两个记录型以及它们之间的多对多联系B、两个记录型以及它们之间的一对多联系C、两个记录型之间的多对多的联系D、两个记录之间的一对多的联系

一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程问D

A.1:1联系B.1:m 联系C.m:1联系D.m:n联系

数据库技术的奠基人之一E.F.Codd从1970年起发表过多篇论文,主要论述的是()C
A.层次数据模型[1]
B.网状数据模型[2]
C. 关系数据模型[3]
D. 面向对象数据模型[4]

层次模型、网状模型和关系模型的划分原则是(D

A.记录长度
B.文件的大小
C.联系的复杂程度
D.数据之间的联系

关系数据模型[1]()。D
A.只能表示实体间的1:1联系B.只能表示实体间的1:N联系C.只能表示实体间的M:N联系
D.可以表示实体间的上述3种联系

数据模型用来表示实体间的联系,但不同的数据库管理系统支持不同的数据模型。在常用的数据模型中,不包括B

A. 网状模型
B.链状模型
C.层次模型
D.关系模型

E-R图是数据库设计[1]的工具之一,它适用于建立数据库的A
A. 概念模型
B. 逻辑模型
C.结构模型
D.物理模型

从E-R模型关系向关系模型转换时,一个M: N联系转换为关系模式[1时,该关系模式的码是(C)。
A.M端实体的码
B.N端实体的码
C.M端实体码与N端实体码组合
D.重新选取其他属性

要求表中的列在组成主键的属性上不能为空值[1],这是(B)

A、参照完整性[2]规则B、实体完整性[3]规则C、用户定义完整性规则D、域完整性规则

下列选[11项中,说法有误的是(C)。
A. 在两表的关系中,主键用来在一个表中引用来自于另一个表中的特定记录
B.一个表的主键可以由多个关键字共同组成,且主键的列不能包含空值[2]
C.主键可以不唯一
D.一般用主键定义表中所有行能唯一标识

以下关于概念模型的说法中错误的是(D)。
A.概念模型是对现实世界的第一层抽象
B.概念模型独立于计算机软硬件环境
C.概念模型的设计需要考虑在计算机内的执行效率
D.概念模型应易于扩充和修改

以下关于E-R模型的描述中错误的是(AB)
A在E-R模型中长方形表示实体集
B在E-R模型中只有实体集有属性
C两个实体集之间可以有多于一种的联系D一个实体集内部的实体之间也可以产生联系

以下关于 E-R 向关系模型转换的规则中错误的是: B

a.每个实体集转换成一个关系模式[1]。B. 1:n 类型的联系可以与n端实体集的关系合并。 C.实体集的码就是关系的码。D.每个联系转换成一个关系模式。
 

数据库的层次模型应满足的条件是(C)。
A.允许一个以上的结点[1]无双亲,也允许一个结点有多个双亲
B.必须有两个以上的结点
C.有且仅有一个结点无双亲,其余结点都只有一个双亲D.每个结点有且仅有一个双亲

设某工厂数据库中有四个实体集。一是"仓库"实体集,属性有仓库号、仓库面积等;二是"零件"实体集,属性有零件号、零件名、规格、单价等;三是"供应商"实体集,属性有供应商号、供应商名、地址等;四是"保管员"实体集,属性有职工号、姓名等。设仓库与零件之间有"存放"联系,每个仓库可存放多种零件,每种零件可存放于若干仓库中,每个仓库存放每种零件要记录库存量;供应商与零件之间有"供应"联系,一个供应商可供应多种零件,每种零件也可由多个供应商提供,每个供应商每提供一种零件要记录供应量;仓库与保管员之间有"工作"联系,一个仓库可以有多名保管员,但一名保管员只能在一个仓库工作。(1)试为该工厂的数据库设计[1]一个 ER 模型,要求标注联系类型,可省略实体属性。(2)根据转换规则,将ER 模型转换[2]成关系模型,要求标明每个关系模式[3]的主键和外键。
 

根据提供的信息,我可以为你提供一个关于该工厂数据库设计的ER模型和关系模型的示例。

1. ER模型:
仓库(仓库号)
零件(零件号)
供应商(供应商号)
保管员(职工号)
存放(仓库号,零件号,库存量)
供应(供应商号,零件号)
工作(仓库号,职工号)

联系类型:
存放:多对多关系
供应:多对多关系
工作:多对多关系

2. 关系模型:
仓库(仓库号,仓库面积)
主键:仓库号

零件(零件号,零件名,规格,单价)
主键:零件号

供应商(供应商号,供应商名,地址)
主键:供应商号

保管员(职工号,姓名)
主键:职工号

存放(仓库号,零件号,库存量)
主键:(仓库号,零件号)
外键:仓库号引用仓库(仓库号),零件号引用零件(零件号)

供应(供应商号,零件号)
主键:(供应商号,零件号)
外键:供应商号引用供应商(供应商号),零件号引用零件(零件号)

工作(仓库号,职工号)
主键:(仓库号,职工号)
外键:仓库号引用仓库(仓库号),职工号引用保管员(职工号)



三、关系模型及关系代数

关系模型的参照完整性[1]约束是指()

限制一个关系引用与之联系关系中不存在的元组[2]数据

常用的关系数据语言有哪几种?

DDL、DML、、DCL、TCL

等值连接[11和自然连接[2]的区别是什么

1、自然连接一定是等值连接,但等值连接不一定是自然连接。
2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。

3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。

选择题

下面的选项不是关系数据库基本特征的是(A)。
A不同的列应有不同的数据类型[1]
B不同的列应有不同的列名
C与行的次序无关
D与列的次序无关

在关系数据库设计中用(C)来表示实体及实体之间的联系。
A.树结构
B.封装结构
C.二维表结构
D.图结构

假设有关系R和S,关系代数[1]表达式R-(R-S)表示的是A
0.
A.RnS
B.RUS
C.R-S
D.RxS

关系代数[1]中的连接操作是由(C)操作组合而成。

A.选择和投影
B.选择和笛卡儿积
C.投影、选择、笛卡儿积
D.投影和笛卡儿积

关系模型中,一个码是(C)。
A. 可以由多个任意属性组成
B.至多由一个属性组成
C. 由一个或多个属性组成,其值能够惟一标识关系中一个元组[1]
D.以上都不是

关系代数运算是以(C)为基础的运算。
A.关系运算
B. 谓词演算
C.集合运算
D.代数运算

从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是(C)操作。
A. 投影
B.连接
C.选择
D.复制

一般情况下,当对关系R和S进行自然连接[1]时,要求R和S含有一个或者多个共有的C
o
A.记录
B.行
C.属性
D.元组[2]

一个关系只有一个(D)
A.候选码
B.外码
C.超码
D.主码

当两个关系没有公共属性时,其自然连接[1]操作的结果表现为(B)
A.结果为空关系
B.笛卡儿积
C.等值连接[2]操作
D.无意义的操作

有两个关系R和S,分别包含15个和10个元组[11,那么在RUS、R-S、RNS中不可能出现的元组数目情况是B
A. 15,5, 10
B.18, 7, 7
C.21, 11, 4
D.25, 15, 0

取出关系中的某些列,并消去重复的元组[1]的关系代数[2]运算称为(b)

A.取列运算B.投影运算C.连接运算D.选择运算

参加差运算的两个关系(B)。
A、属性个数可以不同
B、属性个数必须相同
C、一个关系包含另一个关系的属性
D、属性名必须相同

若D1={a1,a2,a3},D2={1,2,3},则D1xD2集合共有元组(C)个。
A.6
B.8
C.9
D.12

设有属性A,B,C,D,以下表示中不是关系的是C

A. R(A)
B. R(A, B,C,D)
C.R(AxBxCxD)
D. R(A, B)

对关系模型叙述错误的是(D)。
A. 建立在严格的数学理论、集合论和谓词演算[1]公式的基础之上
B.微机DBMS绝大部分采取关系数据模型[2]
C.用二维表表示关系模型是其一大特点
D.不具有连接操作的DBMS也可以是关系数据库系统
 

关系数据库中的码是指(D)
A.能唯一决定关系的字段
B.不可改动的专用保留字
C.关键的很重要的字段
D.能唯一标识元组[11的属性或属性集合

现有如下关系:患者(患者编号,患者姓名,性别,出生日期,所在单位)医疗(患者编号,医生编号,医生 姓名,诊断日期,诊断结果)其中,医疗关系中的外码是(A)
A.患者编号
B.患者姓名
C.患者编号和患者姓名
D.医生编号和患者编号

关系数据模型[11的三个要素是D
A.关系数据结构、关系操作集合和关系规范化理论B.关系数据结构、关系规范化理论和关系完整性约束[2]C.关系规范化理论、关系操作集合和关系完整性约束D.关系数据结构、关系操作集合和关系完整性约束

下列叙述中,哪一条是不正确的A
A.一个二维表就是一个关系,二维表的名就是关系的名B.关系中的列称为属性,属性的个数称为关系的元或度C.关系中的行称为元组[11,对关系的描述称为关系模式[2]D.属性的取值范围称为值域,元组中的一个属性值称为分量

设关系R的度为20,关系S的度为30。如果关系T是R与S 的广义笛卡儿积,即T=RxS,则关系T的度为D
A.10
B.20
C.30
D.50

下列哪一种关系运算不要求: "R和S具有相同的元数,且它们对应属性的数据类型[1]也相同"?D

A)R US
B)RnS
C)R-S
D)RxS

设关系R和S具有相同的度,且相应的属性取自同一个域。下列哪一个关系代数[11的运算的结果集合为t|tERAtOS B
A.RUS
B.R-S
C.RxS
D.RnS

一个关系数据库文件中的各条记录(B)。
A.前后顺序不能任意颠倒,一定要按照输人的顺序排列;
B.前后顺序可以任意颠倒,不影响库中的数据关系;C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同;
D.前后顺序不能任意颠倒,一定要按照候选码字段值的顺序排列。

在关系代数[1]运算中,5种基本运算为(C)。

A.并、差、选择、投影、自然连接[2]
B.并、差、交、选择、投影C.并、差、笛卡儿积、投影、选择D.并、差、交、选择、笛卡儿积

设有关系R(A,B,C)和关系S(B,C,D),那么与RMS等价的关系代数[1]表达式是[C]
A.π1,2,3,4(o2=1A3=2(RxS))
B.π1, 2,3, 6(o2=1A3=2(RxS))C.π1,2,3,6(o2=4A3=5(RxS))D.π1,2,3,4(o2=4A3=5(RxS))

集合R与S的连接可以用关系代数[1]的5种基本运算表示为_A.
A.R-(R-S)
B.oF(RxS)
C.RxS
D.R+S

关系模型有三类完整性约束[1]:实体完整性[2]、参照完整性[3]和用户定义的完整性。哪(些)类完整性是关系模型必须满足并由DBMS自动支持的B
A.实体完整性
B.实体完整性和参照完整性
C.参照完整性和用户定义的完整性
D.实体完整性、参照完整性和用户定义的完整性

设有借书信息表,结构为借书信息(借书证号,借书人,住址,联系电话,图书号,书名,借书日期设每个借书人一本书只能借一次,则该表的主键是C

A)借书证号,图书号B)借书证号C)借书证号,借书人

设关系R和S的结构相同,分别有m和n个元组,那么R-S操作的结果个数为(C)。
Am-n
B m
C小于等于m
D 小于等于(m-n

某教务管理系统有部分基本表如下:专业(专业号,专业名称,专业负责人),为专业号设置主键约束,为专业名称设置唯一约束;教师(教师编号,教师姓名, 性别,民族,专业),为教师编号设置主键约束,为性别设置检查约束:性别取值为"男"或"女",为专业设置外键约束;现向教师表和专业表填充数据如下所示:
MySQL数据库期末知识点总结(复习版)-LMLPHP

1)根据关系模型中数据完整性要求判断,能否向教师表添加一条新的教师记录('09088','张
立','男','汉族')?说明原因。2)根据关系模型中数据完整性要求判断,能否向专业表添加一条新的专业记录('JK','计算机科学与技术','于蒙')?说明原因。3)根据关系模型中数据完整性要求判断,能否将教师表中的教师所在专业号从"CS"更新为"JK"?请说明原因。4)根据关系模型中数据完整性要求判断,能否删除专业表中的专业号为"CS"的记录?请说明原因。

答:(1)不能,因为一个关系主键取值必须唯一。表中已有主键值"09088",所以违背了实体完整性(2)不可以,因为专业表中为专业名称设置唯一约束;插入的新记录违背了这一完整性约束(3)不可以,参照完整性要求外键取值必须是另一个关系主键的有效值或空值,教师表中的专业为外键,参照专业表中的专业号,"JK"不是专业表中的主键值,所以不可以更改。(4)不能,因为教师表中有专业为"CS"的记录,若删除,则违背了实体完整性。

MySQL数据库期末知识点总结(复习版)-LMLPHP

MySQL数据库期末知识点总结(复习版)-LMLPHP

设有三个关系:学生(学号,姓名,性别,出生日期,所在系,备注)课程(课程号,课程名,先修课程号,开课学期,学分)选课(学号,课程号,成绩)试用关系代数表达式表示下列查询语句。(1)列出所有学生的学号和年龄;(2)检索第3学期开课的课程信息;(3)检索计算机系男学生的学号与姓名;(4)检索选修了C 2课程且成绩在80分以上的学生选课记录;(5)检索李明选修的课程的课程号和成绩;(6)检索选修了高等数学的学生的学号和姓名。

以下是关系代数表达式表示的查询语句:

(1) 列出所有学生的学号和年龄:
π 学号, 年龄 (学生)

(2) 检索第3学期开课的课程信息:
σ 开课学期 = '第3学期' (课程)

(3) 检索计算机系男学生的学号与姓名:
π 学号, 姓名 (σ 所在系 = '计算机系' and 性别 = '男') (学生)
(4) 检索选修了C2课程且成绩在80分以上的学生选课记录:
π 学号, 课程号, 成绩 (σ 课程号 = 'C2' and 成绩 >= 80) (选课)

(5) 检索李明选修的课程的课程号和成绩:
π 课程号, 成绩 (σ 学号 = '李明') (选课)

(6) 检索选修了高等数学的学生的学号和姓名:
π 学号, 姓名 (σ 课程名 = '高等数学') (学生 ⨝ 选课 ⨝ 课程)



四、MySQL数据库及SQL简介

SQL的特点有哪些?

答:SQL集数据查询、数据操作、数据定义、数据控制功能于一体,主要特点包括:
①综合统一
② 高度非过程化
③面向集合的操作方式
④以同一种语法构造提供多种使用方式
⑤ 语言简洁,易学易用

SQL语言有如下哪几个功能

数据查询数据定义数据操纵数据控制

CHAR 类型和 VARCHAR类型有何区别?

答: char 的长度是固定的,最长2000个字符,当输入的字符小于你定义的字符数目时,它会自动补空值,所以它占用空间较大但是效率高;varchar的长度是可变的,用它可以节省存储空间,但是效率没有 char高

选择题

SQL语言有两种方式,其中一种是将SQL语句嵌入到某一高级语言[1]中,此高级语言称为B
A.查询语言[2]
B.宿主语言[3]
C. 自含语言
D. 会话语言

数据库管理系统中用于定义和描述数据库逻辑结构的语言称为(A)
A.数据定义语言
B. 数据库子语言[1]
C.数据库操纵语言
D. 数据结构语言

SQL语言集数据查询、数据操纵、数据定义和数据控制
功能于一体,其中CREATE、DROP、ALTER语句是实现哪种功能的C
A.数据查询
B.数据操纵
C.数据定义
D.数据控制

下列选项中,不是SQL组成部分的是D

A.DCLB.DDLC.DMLD.DTL
 

下列选项中,不是MySQL支持的整数类型的是(A)。

A.LONGINT
B.TINYINT
C.MEDIUMINT
D.BIGINT

下列选项中,占用字节最小的是(B)。
A SMALLINT
B TINYINT 
C FLOAT
D DOUBLE

下列选项中,不是SQL中近似数值数据类型的是(C)。

A.FLOAT
B. DOUBLE
C.INTEGER

当时间类型为TIME时,日期格式为(C)。

AYYYY
B YYYY-MM-DD
C HH:MM:SS
D YYYY-MM-DD HH:MM:SS

以下说法正确的是:?(C)
A MySQL服务的安装路径可以修改B MySQL数据文件的存放位置可以修改C MySQLI的访问端口绝对不能修改D MySQL数据库的访问端口可以修改

MySQI安装完毕后为什么要配置环境变量(B)

A.为了关闭MySQI服务
B.为了在任何地方使用MySQI命令
C.为了启动MySQI服务
D.为了安装连接软件

下列说法正确的是(A)
A. 一张数据表一旦建立完成,是不能修改的
B. 在MySQL中,用户在单机上操作的数据就存放在单机中C. 在MySQL中,可以建立多个数据库,但也可以通过限定,使用户只能建立一个数据库
D.要建立一张数据表,必须先建数据表的结构

MySQL数据定义功能

SQL 语言的 GRANT 和 REVOKE 语句主要是用来维护数据库的(C)。

A、完整性B、可靠性C、安全性D、一致性

在数据库的安全性控制中,授权的数据对象的(A),授权子系统就越灵活。

A.范围越小
B.约束越细致
C.范围越大
D.约束范围大

UNIQUE唯一索引的作用是(A)。
A.保证各行在该索引上的值都不得重复
B.保证各行在该索引上的值不得为NULL
C.保证参加唯一索引的各列,不得再参加其他的索引D.保证唯一索引不能被删除

下列SQL中,(D)不是数据定义语句。
A, CREATE TABLE
B,CREATE VIEW
C, DROP VIEW
D, GRANT

某'学生课程'数据库有四张表:学生(学号,姓名,年龄,性别,所在系)课程(课程号,课程名,开课学期,任课教师)选修(学号,课程号,成绩)教师(工号,教师名,职称,基本工资)其中:

(1)'学生'表的主键是'学号','姓名'不能为空。(2)'课程'表的主键是'课程号';'任课教师'是指该课程任课教师的工号,它是'课程'表的外键,参照'教师'表的主键'工号';一门课只能有一位任课教师,但一位教师可以讲授多门课程。(3)'选修'表的主键为(学号,课程号);'学号'是外键,参照'学生'表的主键'学号';'课程号'是外键,参照课程表的主键'课程号'。(4)'教师'表的主键是'工号';'职称'的默认值为'讲师','教师名'设置为唯一约束。用SQL完成以下操作。

(1)定义四张表,注意,主键表要先于外键表定义。(2)为'教师'表添加一个字段'部门',数据类型为VARCHAR(10)。(3)将'学生'表中数据类型为VARCHAR(8)的'姓名'字段的字段名改为'学生姓名'。(4)将'教师'表中'教师名'字段的数据类型从VARCHAR(10改为VARCHAR(12)。(5)删除'教师'表中的'部门'字段。(6)删除'课程'表中的'任课教师'的外键约束。(7)在'教师'表中按'职称'建立普通索引,按教师名降序建立唯一索引。(8)删除'选修'表。

以下是对某'学生课程'数据库的操作:

1. 定义四张表:
```sql
CREATE TABLE 学生 (
    学号 VARCHAR(3) NOT NULL,
    学生姓名 VARCHAR(4) NOT NULL,
    年龄 INT,
    性别 VARCHAR(2) NOT NULL,
    所在系 VARCHAR(10),    PRIMARY KEY (学号)
);

CREATE TABLE 课程 (
    课程号 VARCHAR(5) NOT NULL,
    课程名 VARCHAR(10) NOT NULL,
    开课学期 VARCHAR(10),
    任课教师 VARCHAR(10),
    PRIMARY KEY (课程号),
    FOREIGN KEY (任课教师) REFERENCES 教师(工号)
);

CREATE TABLE 选修 (
    学号 VARCHAR(3),
    课程号 VARCHAR(5),
    成绩 INT,
    PRIMARY KEY (学号, 课程号),
    FOREIGN KEY (学号) REFERENCES 学生(学号),
    FOREIGN KEY (课程号) REFERENCES 课程(课程号)
);

CREATE TABLE 教师 (
    工号 VARCHAR(5) NOT NULL,
    教师名 VARCHAR(12) UNIQUE,
    职称 VARCHAR(10) DEFAULT '讲师',
    基本工资 DECIMAL(10, 2),
    PRIMARY KEY (工号)
);
```

2. 为'教师'表添加一个字段'部门',数据类型为VARCHAR(10):
```sql
ALTER TABLE 教师 ADD 部门 VARCHAR(10);
```

3. 将'学生'表中数据类型为VARCHAR(8)的'姓名'字段的字段名改为'学生姓名':
```sql
ALTER TABLE 学生 CHANGE 姓名 学生姓名 VARCHAR(8);
```

4. 将'教师'表中'教师名'字段的数据类型从VARCHAR(10)改为VARCHAR(12):
```sql
ALTER TABLE 教师 MODIFY 教师名 VARCHAR(12);
```

5. 删除'教师'表中的'部门'字段:
```sql
ALTER TABLE 教师 DROP COLUMN 部门;
```

6. 删除'课程'表中的'任课教师'的外键约束:
```sql
ALTER TABLE 课程 DROP FOREIGN KEY 任课教师;
```

7. 在'教师'表中按'职称'建立普通索引,按教师名降序建立唯一索引:
```sql
CREATE INDEX 职称索引 ON 教师(职称);
CREATE UNIQUE INDEX 教师名索引 ON 教师(教师名 DESC);
```

8. 删除'选修'表:
```sql
DROP TABLE 选修;
```


MySQL数据操纵功能

在SQL语言中,子查询是D
A.返回单表中数据子集的查询语言[1]
B.选取多表中字段子集的查询语句
C.选取单表中字段子集的查询语句
D.嵌入到另一个查询语句之中的查询语句

在SQL语言的SELECT语句中,实现投影操作的是哪个子句A
A.SELECT
B.FROM
C.WEHERE
D.GROUP BY

SQL语言具有数据定义、数据查询、数据操纵和数据控制功能,语句SELECT、INSERT、UPDATE和DELETE可以实现下列哪类功能C
A.数据定义
B.数据查询
C.数据操纵
D.数据控制

按照姓名降序排列()B
A.ORDERBYDESCNAME B.ORDERBYNAMEDESC C.ORDERBYNAMEASC D.ORDERBYASCNAME

下列说法中,错误的是()D
A.使用TRUNCATE语句删除表中数据后,再次向表中添加记录时,自增的字段默认值重置为1B.使用DELETE语句删除表中数据后,再次向表中添加记录时,自增的字段值为删除时该字段的最大值加1
C.DELETE语句后可以跟WHERE子句,指定条件实现删除部分数据
D.TRUNCATE语句后可以跟WHERE子句,指定条件实现删除部分数据

下列查询方式中,查询结果包含左表或右表或两个表中的所有数据的是()。C
A. 内连接
B.多表连接
C.外连接[1]
D.自然连接[2]

某学生课程"数据库有四张表
学生(学号,姓名,年龄,性别、所在系)
课程(课程号,课程名,开课学期,任课教师)选修(学号,课程号,成绩)
教师(工号,教师名,职称,基本工资)其中:"任课教师"是指该课程任课教师的工号,它是"课程"关系的外键,参照"教师"关系的主键"工号":一门课只能有一位任课教师,但一位教师可以讲授多门课程。
用SQL语包完成下列操作
(1)查询年龄19岁的'刘'姓学生的基本信息。(2)查询第'3'学期开课的课程的课程号。(3)查询职称是'教授'或'副教授'的教师的工号和基本工资,结果按'基本工资'降序排列。(4)查询'课程'表中任课教师有哪几位,输出他们的工号。(5)查询讲授'高等数学'这门课的教师的工号,姓名和职称。(用多表连接查询)(6)查询计算机系学生的学号,选修的课程号和成绩。(用多表连接查询)(7)查询既讲授'c 02'课程又讲授'c 03'课程的教师的工号。(用自身连接查询)(8)查询'李勇'选修的所有课程及成绩,显示结果为姓名,课程名,成绩,结果按'成绩'降序,'课程名'升序排列。(9)查询'李勇'选修的所有课程的课程名称。(用嵌套查询实现)(10)查询和'刘晨'在同一个系学习的其他学生的信息。'用嵌套查询实现'(11)查询选修了'c04'课程的学生中,成绩最高的学生的学号。(12)查询这样的课程信息,该课只有男生选修,没有女生选修,要求输出课程号。(用EXISTS操作符)(13)查询每个系的学生数,显示结果为系名,人数。(14)查询选修的课程数超过(含)3门的学生的学号。(15)查询平均成绩在80分以上(含)的学生的姓名。(16)将女学生选修的'c 03'课程成绩提高10%。(17)删除还没有成绩的选课信息。(成绩为空)

以下是对于某学生课程数据库的SQL操作示例:

1. 查询年龄19岁的'刘'姓学生的基本信息。
```sql
SELECT * FROM 学生 WHERE 姓名 LIKE '刘%' AND 年龄 = 19;
```

2. 查询第'3'学期开课的课程的课程号。
```sql
SELECT 课程号 FROM 课程 WHERE 开课学期 = '3';
```

3. 查询职称是'教授'或'副教授'的教师的工号和基本工资,结果按'基本工资'降序排列。
```sql
SELECT 工号, 基本工资 FROM 教师 WHERE 职称 IN ('教授', '副教授') ORDER BY 基本工资 DESC;
```

4. 查询'课程'表中任课教师有哪几位,输出他们的工号。
```sql
SELECT DISTINCT 任课教师 FROM 课程;
```

5. 查询讲授'高等数学'这门课的教师的工号,姓名和职称。(用多表连接查询)
```sql
SELECT 教师.工号, 教师.教师名, 教师.职称 FROM 教师 JOIN 课程 ON 教师.工号 = 课程.任课教师 WHERE 课程.课程名 = '高等数学';
```

6. 查询计算机系学生的学号,选修的课程号和成绩。(用多表连接查询)
```sql
SELECT 学生.学号, 选修.课程号, 选修.成绩 FROM 学生 JOIN 选修 ON 学生.学号 = 选修.学号 WHERE 学生.所在系 = '计算机系';
```

7. 查询既讲授'c 02'课程又讲授'c 03'课程的教师的工号。(用自身连接查询)
```sql
SELECT t1.工号 FROM 教师 t1 JOIN 教师 t2 ON t1.工号 = t2.工号 WHERE t1.课程号 = 'c 02' AND t2.课程号 = 'c 03';
```

8. 查询'李勇'选修的所有课程及成绩,显示结果为姓名,课程名,成绩,结果按'成绩'降序,'课程名'升序排列。
```sql
SELECT 学生.姓名, 课程.课程名, 选修.成绩 FROM 学生 JOIN 选修 ON 学生.学号 = 选修.学号 JOIN 课程 ON 选修.课程号 = 课程.课程号 WHERE 学生.姓名 = '李勇' ORDER BY 选修.成绩 DESC, 课程.课程名 ASC;
```

9. 查询'李勇'选修的所有课程的课程名称。(用嵌套查询实现)
```sql
SELECT 课程名 FROM 课程 WHERE 课程号 IN (SELECT 课程号 FROM 选修 WHERE 学号 = (SELECT 学号 FROM 学生 WHERE 姓名 = '李勇'));
```

10. 查询和'刘晨'在同一个系学习的其他学生的信息。'用嵌套查询实现'
```sql
SELECT * FROM 学生 WHERE 所在系 = (SELECT 所在系 FROM 学生 WHERE 姓名 = '刘晨') AND 姓名 != '刘晨';
```

11. 查询选修了'c04'课程的学生中,成绩最高的学生的学号。
```sql
SELECT 学号 FROM 选修 WHERE 课程号 = 'c04' ORDER BY 成绩 DESC LIMIT 1;
```

12. 查询这样的课程信息,该课只有男生选修,没有女生选修,要求输出课程号。(用EXISTS操作符)
```sql
SELECT 课程号 FROM 课程 WHERE EXISTS (SELECT * FROM 选修 WHERE 课程.课程号 = 选修.课程号 AND 学号 IN (SELECT 学号 FROM 学生 WHERE 性别 = '男') AND 学号 NOT IN (SELECT 学号 FROM 学生 WHERE 性别 = '女'));
```

13. 查询每个系的学生数,显示结果为系名,人数。
```sql
SELECT 所在系, COUNT(*) AS 人数 FROM 学生 GROUP BY 所在系;
```

14. 查询选修的课程数超过(含)3门的学生的学号。
```sql
SELECT 学号 FROM 选修 GROUP BY 学号 HAVING COUNT(*) >= 3;
```

15. 查询平均成绩在80分以上(含)的学生的姓名。
```sql
SELECT 姓名 FROM 学生 WHERE 学号 IN (SELECT 学号 FROM 选修 GROUP BY 学号 HAVING AVG(成绩) >= 80);
```

16. 将女学生选修的'c 03'课程成绩提高10%。
```sql
UPDATE 选修 SET 成绩 = 成绩 * 1.1 WHERE 学号 IN (SELECT 学号 FROM 学生 WHERE 性别 = '女') AND 课程号 = 'c 03';
```

17. 删除还没有成绩的选课信息。(成绩为空)
```sql
DELETE FROM 选修 WHERE 成绩 IS NULL;
```



这只是临时复习版,想学习更多可以看我主页以前关于MySQL的文章
01-07 07:11