第 2 章 数据定义功能

32
第 2 第 第第第第第第 第第第 在在在在在在在在在 在在 ,( Table 在在在在在在在在在在 )。 在在在在在在在在 在在在在在在在在在在在在在在在在在在 ,。

Upload: roary-kirk

Post on 31-Dec-2015

68 views

Category:

Documents


2 download

DESCRIPTION

第 2 章 数据定义功能. 创建表 在关系型数据模型中,表( Table )是最基本的数据结构。 在关系型数据库中,数据是以分散的方式存储在多个表当中。. 2.1 关系模型的基本术语和数据结构. 关系( Relation ) :在关系型数据库中,一个关系对应着一个二维表,每个关系有一个关系名,二维表名就是关系名。在 Access 数据库中,一个关系就对应着一个表对象。 属性( Attribute ) :在二维表中,垂直方向的列称为属性,也称为 字段( Field ) 。一个具有 n 个属性的关系称为 n 元关系。 值域( Domain ) :一个属性的取值范围。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 2 章 数据定义功能

第 2章 数据定义功能

创建表在关系型数据模型中,表( Table )是最基本的数据结构。在关系型数据库中,数据是以分散的方式存储在多个表当中。

Page 2: 第 2 章 数据定义功能

2.1 关系模型的基本术语和数据结构

关系( Relation ):在关系型数据库中,一个关系对应着一个二维表,每个关系有一个关系名,二维表名就是关系名。在 Access 数据库中,一个关系就对应着一个表对象。属性( Attribute ):在二维表中,垂直方向的列称为属性,也称为字段( Field )。一个具有 n 个属性的关系称为 n 元关系。值域( Domain ):一个属性的取值范围。记录( Record ):在二维表中,水平方向的行称为记录,也称为元组( Tuple )。分量( Component ):某条记录中的一个属性值称为该记录的一个分量。

Page 3: 第 2 章 数据定义功能

2.1 关系模型的基本术语和数据结构

表 2-1 Product关系

产品 ID 产品名称 供应商 ID 单位数量 单价 库存量 再订购量

1 苹果汁 1 每箱 24瓶 ¥ 18.00

39 10

2 牛奶 1 每箱 24瓶 ¥ 19.00

17 25

3 蕃茄酱 1 每箱 12瓶 ¥ 10.00

13 25

4 盐 2 每箱 12瓶 ¥ 22.00

53 0

5 麻油 2 每箱 12瓶 ¥ 21.35

0 0

6 酱油 3 每箱 12瓶 ¥ 25.00

120 25

7 海鲜粉 3 每箱 30盒 ¥ 30.00

15 10

8 胡椒粉 3 每箱 30盒 ¥ 40.00

6 0

Product 关系

Page 4: 第 2 章 数据定义功能

2.1 关系模型的基本术语和数据结构

主键 / 主码 / 主关键字( Primary Key ):在一个关系上,可以定义主键。主键具有如下性质。( 1 )主键是一个属性集合,可以由一个或多个属性组成。( 2 )唯一性:关系中的任意两条记录在主键上的值都不相同,因此根据主键上的值能够唯一地标识关系中的一条记录。( 3 )最小性:不包含多余的属性。

“ 产品 ID” 属性构成了 Product 关系的主键。

Page 5: 第 2 章 数据定义功能

2.1 关系模型的基本术语和数据结构

表 2-1 Product关系 产品 ID 产品名称 供应商 ID 单位数量 单价 库存量 再订购量1 苹果汁 1 每箱 24瓶 ¥ 18.00 39 10

2 牛奶 1 每箱 24瓶 ¥ 19.00 17 25

3 蕃茄酱 1 每箱 12瓶 ¥ 10.00 13 25

4 盐 2 每箱 12瓶 ¥ 22.00 53 0

5 麻油 2 每箱 12瓶 ¥ 21.35 0 0

6 酱油 3 每箱 12瓶 ¥ 25.00 120 25

7 海鲜粉 3 每箱 30盒 ¥ 30.00 15 10

8 胡椒粉 3 每箱 30盒 ¥ 40.00 6 0

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 条记录的对应分量都相等。

Page 6: 第 2 章 数据定义功能

2.1 关系模型的基本术语和数据结构

此外,关系还具有如下一些性质。( 1 )同一属性列中的分量值有相同的数据类型。例如,“单价”都是带有货币单位的数值,可以进行加减乘除运算;而“产品名称”都是标志性的字符串,无法比较大小,但可以比较是否相同。( 2 )分量是不可再分割的最小数据项。例如,再对产品名称中的“苹果汁”进行分解就没有实际意义了。( 3 )表中的任意两条记录不能完全相同,即这两条记录对应的属性值不能都相同。

Page 7: 第 2 章 数据定义功能

2.1 关系模型的基本术语和数据结构

关系模式( Relation Schema ):关系模式是对关系的描述,它包括关系名、组成该关系的属性名等信息。通常简记为:关系名(属性名 1 ,属性名 2 ,…,属性名 n )。

表 Product 的关系模式: Product (产品 ID ,产品名称,供应商 ID ,单位数量,单价,库存量,再订购量)。

产品 ID 产品名称 供应商 ID 单位数量 单价 库存量 再订购量1 苹果汁 1 每箱 24瓶 ¥ 18.00 39 10

2 牛奶 1 每箱 24瓶 ¥ 19.00 17 25

3 蕃茄酱 1 每箱 12瓶 ¥ 10.00 13 25

4 盐 2 每箱 12瓶 ¥ 22.00 53 0

5 麻油 2 每箱 12瓶 ¥ 21.35 0 0

6 酱油 3 每箱 12瓶 ¥ 25.00 120 25

7 海鲜粉 3 每箱 30盒 ¥ 30.00 15 10

8 胡椒粉 3 每箱 30盒 ¥ 40.00 6 0

Page 8: 第 2 章 数据定义功能

2.2 表的设计 在 Access 数据库中,表是存储数据的基本对象。在 Access 数据库中创建表之前,必须首先确定表的设计方案,即确定表中所包含的字段、每个字段的名称、每个字段所存储数据的含义以及这些数据的处理方法等。

Page 9: 第 2 章 数据定义功能

2.2.1 表的设计

“ ”花名册 表的设计方案

表中所包含的字段(以字段名表示) 字段的含义、用法 主要的处理方法

学号

一般的学号为 8位阿拉伯数字,但也存在像留学生学号的特殊情况,如 04QK110041、 01QG4106。所以,可以将学号看作是由 10个阿拉伯数字(或英文字母)组成的字符串

显示、排序

姓名 由汉字(或英文字母)组成 显示、排序

性别 “ ” “ ”用一个汉字( 男 或 女 )表示性别 显示

出生日期 包含年、月、日 显示

身份证号码 一般是由 18位阿拉伯数字组成的字符串,但第 18位也可能为英文字母 显示

入学成绩 高考成绩 四则算术运算、比较大小

应交学费 以人民币为统一单位(不包括书杂费) 四则算术运算

党员身份 标志学生是否为中共党员

简介 特殊说明的文字,如特长、获奖情况 显示

照片 多媒体形式的图像文件 显示

Page 10: 第 2 章 数据定义功能

2.2.2 Access 数据类型在确定了字段名称及其含义和用法之后,还需要确定各字段采用的数据类型。数据类型取决于该字段将存储什么样的数据以及数据的处理方法。

Access数据库中的主要数据类型

数据类型 可存储的数据 应用举例及说明文本( Text) 文字、数字型字符 学号、姓名、地址、电话号码、零件编号或

邮编备注(Memo) “ ”文字、数字型字符、特殊的 文本 类型 长文本及数字,例如备注、简介和说明数字( Number)

数值(可进行四则算术运算) 数量、成绩

日期 /时间( Date/Time)

日期时间值 出生日期、订货日期

货币( Currency)

“ ”货币值、特殊的 数字 类型 学费、单价

自动编号( Auto Number)

“ ”顺序号或随机数、特殊的 数字 类型 在添加记录时 Access会自动插入的唯一顺序编码(每次递增 1)

是 /否( Yes/no)

逻辑值 “只包含两个值中的一个,例如 是 / ” “否 、 开/ ”关

OLE对象( OLE Object)

图像、图表、声音等多媒体数据 照片、背景音乐

超链接( Hyperlink)

作为超级链接地址的文本 文件路径或网址

Page 11: 第 2 章 数据定义功能

2.2.2 Access 数据类型根据 Access 数据库中可以使用的数据类型,进一步确定“花名册”表中各字段的数据类型。

“ ”花名册 表的进一步设计方案

字段及其名称

字段的数据类型

说明

学号 文本 由 10个数字(或英文字母)组成的字符串姓名 文本性别 文本 “ ” “ ”用一个汉字( 男 或 女 )表示性别出生日期 日期 /时间身份证号码 文本 一般是由 18个数字组成的字符串,但第 18位也可能

为英文字母入学成绩 数字 高考成绩应交学费 货币 以人民币为统一单位(不包括书杂费)党员身份 是 /否 “ ” “ ”是 代表为中共党员(含预备党员), 否 代表目前

不是中共党员简介 备注照片 OLE对象

Page 12: 第 2 章 数据定义功能

2.3 使用设计器创建表 在 Access 中提供了多种创建表的方法,主要包括:

① 使用设计器创建表;

② 使用数据定义语言创建表;

③ 通过导入外部数据创建表;

④ 使用向导创建表;

⑤ 通过输入数据创建表;

“ 使用设计器创建表”的方法最为灵活和有用。

Page 13: 第 2 章 数据定义功能

2.3.1 使用设计器创建表【练习 2-1(P22)】根据如下设计方案,使用设计器创建“花名册”表。

字段及其名称 字段的数据类型 说明

学号 文本 由 10个数字(或英文字母)组成的字符串姓名 文本性别 文本 “ ” “ ”用一个汉字( 男 或 女 )表示性别出生日期 日期 /时间

身份证号码 文本 一般是由 18个数字组成的字符串,但第 18位也可能为英文字母

入学成绩 数字 高考成绩应交学费 货币 以人民币为统一单位(不包括书杂费)党员身份 是 /否 “ ” “ ”是 代表为中共党员(含预备党员), 否 代表目前不是中共

党员简介 备注照片 OLE对象

Page 14: 第 2 章 数据定义功能

2.3.1 使用设计器创建表操作步骤:( 1 )启动 Access 2003 ,并建立一个空数据库 Demo-2 。( 2 )打开新建表的设计视图。( 3 )添加字段(参见设计方案)。( 4 )设置主键。( 5 )保存表的设计结果。

Page 15: 第 2 章 数据定义功能

2.3.2 在数据表视图中编辑数据

在 Access 中,“表”对象有两种常用的视图:设计视图和数据表视图。在设计视图中,可以创建或修改表的结构,比如修改字段名称、重新设置字段的数据类型等;而在数据表视图中,则可以浏览、添加、删除及编辑表中的数据。并且这两种视图之间是可以相互切换的。

Page 16: 第 2 章 数据定义功能

2.3.2 在数据表视图中编辑数据【练习 2-2(P24)】按照下表所示的“花名册”关系,在“花名册”表的数据表视图中输入数据,并在两种视图之间相互切换。

操作步骤:( 1 )打开表对象的数据表视图。( 2 )在数据表视图中输入和浏览数据。( 3 )视图的切换。( 4 )保存输入的数据,关闭数据表视图即可。

学号 姓名 性别 出生日期 身份证号码 入学成绩

应交学费

党员身份 简介

04089104

董瑾 男 1983-12-12

101023198312129234

456 5000

不是 无

04102201

肖剑 女 1980-1-10

431225198001110212

564 4000

是 2004年获得陕西省高中物理竞赛二等奖

Page 17: 第 2 章 数据定义功能

2.3.3 设置字段属性Access数据库中的字段属性

属 性 用 途

字段大小( Field Size) 定义文本、数字或自动编号数据类型字段的长度格式( Format) 定义数据的显示格式和打印格式输入掩码( Input Mask) 定义数据的输入格式(见 4.2.1节)小数位数( Decimal Places) 定义数值的小数位数标题( Caption) 在数据表视图的标题栏中显示的文本;默认为字段名称默认值( Default Value) 定义字段值的默认值有效性规则( Validation Rule) 定义字段的校验规则(见 4.2.2节)有效性文本( Validation Text) 当输入或修改的数据没有通过字段的有效性规则时,所要显示的信息

(见 4.2.2节)必填字段( Required) 确定数据是否必须被输入到字段中允许空字符串( Allow Zero Length)

定义文本、备注和超级链接数据类型字段是否允许输入零长度字符串

索引( Indexed) 定义是否建立单一字段索引新值( New Values) 定义自动编号数据类型字段的数值递增方式输入法模式( IMEMode) 定义焦点移至字段时是否开启输入法Unicode压缩( Unicode Compression)

定义是否允许对文本、备注和超级链接数据类型字段进行 Unicode压缩

Page 18: 第 2 章 数据定义功能

2.3.3 设置字段属性1.字段大小

“ ”数字 类型 “ ”的 字段大小 属性值的说明

对于“文本”数据类型的字段来说,“字段大小”则有着特定的含义:一个汉字、一个字母或一个阿拉伯数字都占一个“字段大小”。

属性值 说明 小数位数 占用空间整型 保存从 -32,768到 32,767的整数 无 2字节长整型 保存从 -2,147,483,648到 2,147,483,647的整数 无 4字节

单精度型 保存从 -3.402823E38到 -1.401298E-45的负值,以及从 1.401298E-45到 3.402823E38的正值 7 4字节

双精度型保存从 -1.79769313486231E308到 -4.94065645841247E-324的负值,从 4.94065645841247E-324到 1.79769313486231E308的正值

15 8字节

小数 保存从 -10^28-1到 10^28-1范围的数字 28 12字节

Page 19: 第 2 章 数据定义功能

2.3.3 设置字段属性2.格式:使用“格式”属性可按统一的格式显示数据。

字段类型 “ ”格式 属性值 显示格式举例

数字

常规数字 3456.789

标准 3,456.79

百分比 123.00%

科学记数 3.456E+03

货币货币 ¥3,456.79

欧元 €3,456.79

日期 /时间

常规日期 1994-6-19 17:28:21

长日期 1994年 6月 19日中日期 94-06-19

短日期 1994-6-19

注意:“格式”属性只影响字段值如何显示,而不影响字段值在表中如何保存。

Page 20: 第 2 章 数据定义功能

2.3.3 设置字段属性3.标题在“表”对象的数据表视图中,标题位于第一条记录的上方,并且每个字段列都有一个标题。

通常情况下,不需要为字段专门指定标题。此时,字段名称将作为数据表视图中的列标题。在有些情况,可以通过为字段设置专门的“标题”属性,以便对数据表视图中的列标题进行专门的说明。

Page 21: 第 2 章 数据定义功能

2.3.3 设置字段属性“ ”花名册 表中部分字段相应的字段属性及其设置

字段名称字段属性

作用属性名称 属性值

学号 字段大小 10 “ ”学号 至多由 10个字符组成姓名 字段大小 8 “ ”姓名 由 8个字符组成性别 字段大小 1 “ ” “ ”表示性别的 男 或 女 只占一个字符的大小出生日期 格式 短日期 “ ”出生日期 的显示格式形如 1980-12-12身份证号码 字段大小 18 “ ”身份证号码 由 18个字符组成入学成绩 字段大小 整型 “ ”入学成绩 为整数应交学费 格式 货币 “ ”应交学费 的显示格式形如¥ 5,000.00

党员身份 标题 是否是中共党员

在数据表视图 “中,将该字段的标题显示为 是否是中共”党员

【练习 2-3(P27)】在“花名册”表中设置相应的字段属性。操作步骤:( 1 )打开表的设计视图。 ( 2 )设置字段属性。( 3 )保存对字段属性的设置。( 4 )观察字段属性的作用。

Page 22: 第 2 章 数据定义功能

2.4 数据定义语言数据定义功能是 RDBMS 的主要功能之一,能够完成对表的定义、创建和修改,包括指定表的名称、表所包含的字段及字段的数据类型等功能。

“ 使用设计器创建表”就是实现数据定义功能的一种方法。

使用数据定义语言( Data Definition Language ,DDL)也可以实现数据定义功能。

在不同的数据库产品中, DDL所遵循的基本格式是一样的。

Page 23: 第 2 章 数据定义功能

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))

字段名称 数据类型 字段大小(字段属性)产品 ID 数字 长整型产品名称 文本 40

单位数量 文本 20

单价 货币

Page 24: 第 2 章 数据定义功能

2.4.1 使用数据定义语言创建表( 2 ) ALTER TABLE 命令。使用该命令可以对已有表的结构进行修改。该命令格式为:ALTER TABLE 表名 [ ADD 字段名 数据类型 | DROP 字段名 ]其中, ADD 表示向表中增加新字段, DROP 表示删除表中的已有字段。

例如,ALTER TABLE 产品 ADD 类别 ID INTEGER该命令向“产品”表中增加一个“类别 ID” 字段,并指定该字段的数据类型为整数型。

又如,ALTER TABLE 产品 DROP 单价该命令从“产品”表中删除已经存在的“单价”字段。

注意,在使用 ALTER TABLE 命令删除表中已有字段的同时,会删除该字段中的数据。

Page 25: 第 2 章 数据定义功能

2.4.1 使用数据定义语言创建表( 3 ) DROP TABLE 命令。使用该命令将删除已有表。该命令格式为:DROP TABLE 表名

例如,DROP TABLE 产品该命令将删除“产品”表。

注意, DROP TABLE 命令将删除表及其中的数据。

另外,在 DDL的命令中,所有标点符号均为英文输入状态下输入的标点符号,其中的英文保留字必须在半角状态下输入。

Page 26: 第 2 章 数据定义功能

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 视图。

Page 27: 第 2 章 数据定义功能

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 命令创建的表及其结构。

Page 28: 第 2 章 数据定义功能

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 命令的运行对数据库的影响。

Page 29: 第 2 章 数据定义功能

2.5 通过导入外部数据创建表

在计算机系统中,数据可能以多种格式和形式存放在外部存储设备中——可能是一个文本文件,可能是Microsoft Excel电子表格文件中的工作表,也可能是某个 Access 数据库中的一个表。一个 Access 数据库,可以将以其他格式和形式存储的数据作为外部数据源,并导入到本数据库中,同时创建相应的表。【练习 2-5(P32)】从 Excel电子表格文件( Demo-2.xls )的“订单”工作表中导入数据。

Page 30: 第 2 章 数据定义功能

2.5 通过导入外部数据创建表

操作步骤: ( 1 )启动 Access ,建立一个空数据库。( 2 )在菜单栏中,选择并执行“文件” |“获取外部数据” |“导入”命令,打开“导入”对话框。( 3 )启动“导入数据表向导”。( 4 )按照“导入数据表向导”窗口的提示逐步进行操作。①在电子表格文件中选中外部数据所在的工作表。②确定字段名。③确定将外部数据保存到新表中。④建立索引字段。⑤确定新建表的主键。⑥确定新建表的表名。( 5 )浏览导入的数据。

Page 31: 第 2 章 数据定义功能

2.5 通过导入外部数据创建表

在上述“导入数据表向导”第④步的窗口中,我们在“订单 ID” 字段上建立了索引( Index)。在一个二维表中,可以基于单个字段或多个字段创建索引,索引有助于在二维表中快速查找和排序记录。在二维表中使用索引来查找数据(或记录),就像在汉语字典中使用索引来查找汉字一样方便和快捷。

Page 32: 第 2 章 数据定义功能

2.6 小结在关系型数据库中,数据存放在二维表当中。在二维表中,行称为记录(或元组),列称为字段(或属性)。在二维表中,主键能够唯一地标志关系中的记录。使用关系模式,可以描述关系及其包含的字段。根据数据的存储形式和处理方法,不同的字段可以使用相应的数据类型。Access 数据库中,在设计视图中设计表是创建表的灵活方法。使用数据定义语言( Data Definition Language , DDL)也可以实现 RDBMS 的数据定义功能。作为一个开放式的 RDBMS ,Microsoft Access 能够支持与其他类型的外部数据源进行数据交换。这些外部数据源可以是文本文件或另一个 Access 数据库中的表,也可以是 Microsoft Excel电子表格文件中的工作表。 Access提供了将这些外部数据导入当前数据库的方法,并同时生成相应的新表。