320 likes | 452 Views
第 2 章 数据定义功能. 创建表 在关系型数据模型中,表( Table )是最基本的数据结构。 在关系型数据库中,数据是以分散的方式存储在多个表当中。. 2.1 关系模型的基本术语和数据结构. 关系( Relation ) :在关系型数据库中,一个关系对应着一个二维表,每个关系有一个关系名,二维表名就是关系名。在 Access 数据库中,一个关系就对应着一个表对象。 属性( Attribute ) :在二维表中,垂直方向的列称为属性,也称为 字段( Field ) 。一个具有 n 个属性的关系称为 n 元关系。 值域( Domain ) :一个属性的取值范围。
E N D
第2章 数据定义功能 创建表 • 在关系型数据模型中,表(Table)是最基本的数据结构。 • 在关系型数据库中,数据是以分散的方式存储在多个表当中。
2.1 关系模型的基本术语和数据结构 • 关系(Relation):在关系型数据库中,一个关系对应着一个二维表,每个关系有一个关系名,二维表名就是关系名。在Access数据库中,一个关系就对应着一个表对象。 • 属性(Attribute):在二维表中,垂直方向的列称为属性,也称为字段(Field)。一个具有n个属性的关系称为n元关系。 • 值域(Domain):一个属性的取值范围。 • 记录(Record):在二维表中,水平方向的行称为记录,也称为元组(Tuple)。 • 分量(Component):某条记录中的一个属性值称为该记录的一个分量。
2.1 关系模型的基本术语和数据结构 Product关系 表 2-1 Product关系
2.1 关系模型的基本术语和数据结构 • 主键/主码/主关键字(Primary Key):在一个关系上,可以定义主键。主键具有如下性质。 • (1)主键是一个属性集合,可以由一个或多个属性组成。 • (2)唯一性:关系中的任意两条记录在主键上的值都不相同,因此根据主键上的值能够唯一地标识关系中的一条记录。 • (3)最小性:不包含多余的属性。 • “产品ID”属性构成了Product关系的主键。
2.1 关系模型的基本术语和数据结构 Product关系 表 2-1 Product关系 • 设有s=(1,苹果汁,1,每箱24瓶,18.00,39,10)和t=(9,胡椒粉,3,每箱30盒,40.00,6,0)。 • s的各个分量与Product关系中第1条记录的对应分量都相等,因此称s是Product关系中的一条记录(记做s ∈ Product),且该记录的第一个分量记做s.产品ID,其值是1; • 而t不是Product关系中的记录(记做t ∉ Product),因为Product关系中不存在产品ID为9的产品记录,即使t的其他分量与表中第8条记录的对应分量都相等。
2.1 关系模型的基本术语和数据结构 此外,关系还具有如下一些性质。 (1)同一属性列中的分量值有相同的数据类型。例如,“单价”都是带有货币单位的数值,可以进行加减乘除运算;而“产品名称”都是标志性的字符串,无法比较大小,但可以比较是否相同。 (2)分量是不可再分割的最小数据项。例如,再对产品名称中的“苹果汁”进行分解就没有实际意义了。 (3)表中的任意两条记录不能完全相同,即这两条记录对应的属性值不能都相同。
2.1 关系模型的基本术语和数据结构 关系模式(Relation Schema):关系模式是对关系的描述,它包括关系名、组成该关系的属性名等信息。通常简记为:关系名(属性名1,属性名2,…,属性名n)。 表Product 的关系模式:Product(产品ID,产品名称,供应商ID,单位数量,单价,库存量,再订购量)。
2.2 表的设计 • 在Access数据库中,表是存储数据的基本对象。 • 在Access数据库中创建表之前,必须首先确定表的设计方案,即确定表中所包含的字段、每个字段的名称、每个字段所存储数据的含义以及这些数据的处理方法等。
2.2.1 表的设计 “花名册”表的设计方案
2.2.2 Access数据类型 • 在确定了字段名称及其含义和用法之后,还需要确定各字段采用的数据类型。数据类型取决于该字段将存储什么样的数据以及数据的处理方法。 Access数据库中的主要数据类型
2.2.2 Access数据类型 • 根据Access数据库中可以使用的数据类型,进一步确定“花名册”表中各字段的数据类型。 “花名册”表的进一步设计方案
2.3 使用设计器创建表 • 在Access中提供了多种创建表的方法,主要包括: • 使用设计器创建表; • 使用数据定义语言创建表; • 通过导入外部数据创建表; • 使用向导创建表; • 通过输入数据创建表; • “使用设计器创建表”的方法最为灵活和有用。
2.3.1 使用设计器创建表 【练习2-1(P22)】根据如下设计方案,使用设计器创建“花名册”表。
2.3.1 使用设计器创建表 操作步骤: (1)启动Access 2003,并建立一个空数据库Demo-2。 (2)打开新建表的设计视图。 (3)添加字段(参见设计方案)。 (4)设置主键。 (5)保存表的设计结果。
2.3.2 在数据表视图中编辑数据 • 在Access中,“表”对象有两种常用的视图:设计视图和数据表视图。 • 在设计视图中,可以创建或修改表的结构,比如修改字段名称、重新设置字段的数据类型等;而在数据表视图中,则可以浏览、添加、删除及编辑表中的数据。并且这两种视图之间是可以相互切换的。
2.3.2 在数据表视图中编辑数据 • 【练习2-2(P24)】按照下表所示的“花名册”关系,在“花名册”表的数据表视图中输入数据,并在两种视图之间相互切换。 • 操作步骤: (1)打开表对象的数据表视图。 (2)在数据表视图中输入和浏览数据。 • (3)视图的切换。 • (4)保存输入的数据,关闭数据表视图即可。
2.3.3 设置字段属性 Access数据库中的字段属性
2.3.3 设置字段属性 1.字段大小 “数字”类型的“字段大小”属性值的说明 • 对于“文本”数据类型的字段来说,“字段大小”则有着特定的含义:一个汉字、一个字母或一个阿拉伯数字都占一个“字段大小”。
2.3.3 设置字段属性 2.格式:使用“格式”属性可按统一的格式显示数据。 注意:“格式”属性只影响字段值如何显示,而不影响字段值在表中如何保存。
2.3.3 设置字段属性 • 3.标题 • 在“表”对象的数据表视图中,标题位于第一条记录的上方,并且每个字段列都有一个标题。 • 通常情况下,不需要为字段专门指定标题。此时,字段名称将作为数据表视图中的列标题。 • 在有些情况,可以通过为字段设置专门的“标题”属性,以便对数据表视图中的列标题进行专门的说明。
2.3.3 设置字段属性 “花名册”表中部分字段相应的字段属性及其设置 【练习2-3(P27)】在“花名册”表中设置相应的字段属性。 操作步骤: (1)打开表的设计视图。 (2)设置字段属性。 (3)保存对字段属性的设置。(4)观察字段属性的作用。
2.4 数据定义语言 • 数据定义功能是RDBMS的主要功能之一,能够完成对表的定义、创建和修改,包括指定表的名称、表所包含的字段及字段的数据类型等功能。 • “使用设计器创建表”就是实现数据定义功能的一种方法。 • 使用数据定义语言(Data Definition Language,DDL)也可以实现数据定义功能。 • 在不同的数据库产品中,DDL所遵循的基本格式是一样的。
2.4.1 使用数据定义语言创建表 • 在DDL中,主要包括以下3条命令: • (1)CREATE TABLE命令。使用该命令可以创建表。该命令格式为: • CREATE TABLE 表名 ( 字段名1 数据类型(长度) [, 字段名2 数据类型(长度)…]) • 例如,利用CREATE TABLE命令,创建字段结构如下表所示的“产品”表,其中“产品ID”为主键。 • 对应的CREATE TABLE命令为: • CREATE TABLE 产品 (产品ID INTEGER, 产品名称 TEXT(40), 单位数量 TEXT(20), 单价 CURRENCY, PRIMARY KEY (产品ID))
2.4.1 使用数据定义语言创建表 (2)ALTER TABLE命令。使用该命令可以对已有表的结构进行修改。该命令格式为: • ALTER TABLE 表名 [ ADD 字段名 数据类型 | DROP 字段名 ] 其中,ADD表示向表中增加新字段,DROP表示删除表中的已有字段。 • 例如, ALTER TABLE 产品 ADD 类别ID INTEGER 该命令向“产品”表中增加一个“类别ID”字段,并指定该字段的数据类型为整数型。 • 又如, ALTER TABLE 产品 DROP 单价 该命令从“产品”表中删除已经存在的“单价”字段。 注意,在使用ALTER TABLE命令删除表中已有字段的同时,会删除该字段中的数据。
2.4.1 使用数据定义语言创建表 (3)DROP TABLE命令。使用该命令将删除已有表。该命令格式为: • DROP TABLE 表名 • 例如, DROP TABLE 产品 该命令将删除“产品”表。 • 注意,DROP TABLE命令将删除表及其中的数据。 • 另外,在DDL的命令中,所有标点符号均为英文输入状态下输入的标点符号,其中的英文保留字必须在半角状态下输入。
2.4.2 在查询的SQL视图中运行数据定义语言 • 通过运行数据定义语言中的命令,可以在数据库中创建表、修改已有表的结构或删除已有表。 【练习2-4(P30)】在查询的SQL视图中依次逐条运行以下4条命令,并在运行每条命令的前后观察数据库中表的变化情况。 • CREATE TABLE 产品 (产品ID INTEGER, 产品名称 TEXT(40), 单位数量 TEXT(8), 单价 CURRENCY, PRIMARY KEY (产品ID)) • ALTER TABLE 产品 ADD类别ID INTEGER • ALTER TABLE 产品 DROP 单价 • DROP TABLE 产品 • 操作步骤: • (1)启动Access,并建立一个空数据库。 • (2)打开新建查询的SQL视图。
2.4.2 在查询的SQL视图中运行数据定义语言 • (3)在查询的SQL视图中输入如下CREATE TABLE命令: • CREATE TABLE 产品 (产品ID INTEGER, 产品名称 TEXT(40), 单位数量 TEXT(8), 单价 CURRENCY, PRIMARY KEY (产品ID)); • 注意,在输入CREATE TABLE命令中的标点符号时,必须切换到英文输入状态。 • (4)在查询的SQL视图中运行CREATE TABLE命令。 • (5)观察CREATE TABLE命令创建的表及其结构。
2.4.2 在查询的SQL视图中运行数据定义语言 • (6)在查询的SQL视图中输入并运行ALTER TABLE命令。 • ALTER TABLE 产品 ADD类别ID INTEGER; • (7)观察ALTER TABLE命令对已有表的结构进行的修改。 • (8)在查询的SQL视图中输入并运行第二条ALTER TABLE命令。 • ALTER TABLE 产品 DROP 单价; • (9)观察第二条ALTER TABLE命令对已有表的结构进行的修改。 • (10)在查询的SQL视图中输入并运行DROP TABLE命令。 • DROP TABLE 产品; • (11)观察DROP TABLE命令的运行对数据库的影响。
2.5 通过导入外部数据创建表 • 在计算机系统中,数据可能以多种格式和形式存放在外部存储设备中——可能是一个文本文件,可能是Microsoft Excel电子表格文件中的工作表,也可能是某个Access数据库中的一个表。 • 一个Access数据库,可以将以其他格式和形式存储的数据作为外部数据源,并导入到本数据库中,同时创建相应的表。 【练习2-5(P32)】从Excel电子表格文件(Demo-2.xls)的“订单”工作表中导入数据。
2.5 通过导入外部数据创建表 操作步骤: (1)启动Access,建立一个空数据库。 (2)在菜单栏中,选择并执行“文件”|“获取外部数据”|“导入”命令,打开“导入”对话框。 (3)启动“导入数据表向导”。 (4)按照“导入数据表向导”窗口的提示逐步进行操作。 ①在电子表格文件中选中外部数据所在的工作表。 ②确定字段名。 ③确定将外部数据保存到新表中。 ④建立索引字段。 ⑤确定新建表的主键。 ⑥确定新建表的表名。 (5)浏览导入的数据。
2.5 通过导入外部数据创建表 • 在上述“导入数据表向导”第④步的窗口中,我们在“订单ID”字段上建立了索引(Index)。 • 在一个二维表中,可以基于单个字段或多个字段创建索引,索引有助于在二维表中快速查找和排序记录。 • 在二维表中使用索引来查找数据(或记录),就像在汉语字典中使用索引来查找汉字一样方便和快捷。
2.6 小结 • 在关系型数据库中,数据存放在二维表当中。 • 在二维表中,行称为记录(或元组),列称为字段(或属性)。 • 在二维表中,主键能够唯一地标志关系中的记录。 • 使用关系模式,可以描述关系及其包含的字段。 • 根据数据的存储形式和处理方法,不同的字段可以使用相应的数据类型。 • Access数据库中,在设计视图中设计表是创建表的灵活方法。 • 使用数据定义语言(Data Definition Language,DDL)也可以实现RDBMS的数据定义功能。 • 作为一个开放式的RDBMS,Microsoft Access能够支持与其他类型的外部数据源进行数据交换。这些外部数据源可以是文本文件或另一个Access数据库中的表,也可以是Microsoft Excel电子表格文件中的工作表。Access提供了将这些外部数据导入当前数据库的方法,并同时生成相应的新表。