VFP第3章数据库与表创建及使用_第1页
VFP第3章数据库与表创建及使用_第2页
VFP第3章数据库与表创建及使用_第3页
VFP第3章数据库与表创建及使用_第4页
VFP第3章数据库与表创建及使用_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021-7-11VFP第3章数据库与表创建及使用1 电话:(移动校园网)电话:(移动校园网) 电邮:电邮: 办公地点:系部办公楼办公地点:系部办公楼( (原学生原学生1 1号宿舍楼号宿舍楼)507)507 2021-7-11VFP第3章数据库与表创建及使用2 信息系统的基础是数据库。设计一个完善、高效、 结构优化的数据库,是创建信息系统过程中必不可少的 重要环节。在VFP中,表是数据的容器表是数据的容器,系统使用表以 行和列的形式存储数据,这些行和列就是记录和字段; 数据库是表的容器数据库是表的容器,它联合、组织以及使用表和视图提 供的结构和操作环境。 在VFP中,构建数据库也包含创建表。但

2、要注意的 是,数据库数据库和表表均以文件形式存储在磁盘上,其中数 据库文件扩展名为.dbc、表文件扩展名为.dbf,只是表 可以属于数据库管理。 2021-7-11VFP第3章数据库与表创建及使用3 数据库概述 数据库的创建、打开与使用 表的创建与使用 永久性关系与参照完整性 有关数据库及其对象的常用函数 2021-7-11VFP第3章数据库与表创建及使用4 确定建立数据库的目的,进行数据需求分析。 确定需要的各种表,即将信息分为若干个独立的 主题,每个主题都将是数据库中的一个表。 确定所需字段,也就是将在表中保存的信息。 确定表之间的关系,形象而又直观地反映现实世 界中各实体间的真正关系。

3、改进设计、优化设计。 3.1.1 数据库设计的过程 数据库的概念设计数据库的概念设计 数据库的逻辑设计数据库的逻辑设计 2021-7-11VFP第3章数据库与表创建及使用5 3.1.2 数据库的组成 1. 表表(Table) 属于某一数据库的表称为“数据库表”。与自由 表相比,数据库表具有许多扩展功能和管理特性。 表与数据库之间的相关性是通过表文件与库文件 之间的双向链接(前链和后链)实现的。前链是保存 在数据库文件中的表文件的路径和文件名信息;后链 是存放在表文件中的数据库文件的路径和文件名信息。 前链前链前链前链前链前链前链前链 后链后链表文件表文件后链后链表文件表文件后链后链表文件表文件

4、后链后链表文件表文件 2021-7-11VFP第3章数据库与表创建及使用6 2. 视图视图(View) 视图是从分散在相关表中的数据通过链接条件收集 在一起的“虚表”。视图兼有表和查询的特点。 3. 连接连接(Connection) 连接是保存在数据库中的一个定义,它指定了数据 源的名称。这里所说的数据源是指远程数据源,一个 远程数据源通常是一个远程数据库服务器或文件,并 且已为它在本地安装了ODBC驱动程序和设置了ODBC 数据源名称。 4. 存储过程存储过程(Stored Procedure) 存储过程是在数据库数据上执行特定操作并储存在 数据库文件中的程序代码。在数据库打开时会自动加 载

5、到内存中。 2021-7-11VFP第3章数据库与表创建及使用7 表中字段的标题、注释、默认值、输入掩码和显示 格式,以及字段在表单中使用的默认控件类。 表的主索引关键字 数据库表之间的永久性关系 长表名和表注释 字段级和记录级有效性规则 存储过程 插入、更新和删除事件的触发器 3.1.3 数据字典 数据字典是指存储在数据库中用于描述所管理的 表和对象的数据,即关于数据的数据(元数据元数据)。 数据字典可创建和指定如下内容: 2021-7-11VFP第3章数据库与表创建及使用8 界面操作方式创建数据库 用项目管理器创建 用菜单命令或工具栏创建 命令方式创建数据库 CREATE DATABASE

6、 DatabaseName|? 数据库设计器与“数据库”菜单 在VFP中,每创建一个数据库都将在磁盘上产生 三个文件:数据库文件数据库文件(.dbc)、关联的数据库备注数据库备注 文件文件(.dct)、关联的数据库索引文件数据库索引文件(.dcx)。 3.2.1 数据库的创建 2021-7-11VFP第3章数据库与表创建及使用9 新建的数据库,保存后自动以独占方式打开; 打开数据库中的表,系统会自动打开相应的数据库; 在项目管理器中选择一个数据库并单击“修改”按钮 ; OPEN DATABASE DatabaseName EXCLUSIVE|SHAREDNOUPDATEVALIDATE 打开多

7、个数据库可重复进行数据库打开操作即可,系 统默认最后一个打开的数据库为当前数据库。 根据需要可用SET DATABASE TO命令将另一个被打 开的数据库设为当前数据库或在“常用”工具栏“数 据库”下拉列表中选择一个已打开的数据库作为当前 数据库。 3.2.2 数据库的打开与关闭 打开数据库使用数据库前必须打开数据库 2021-7-11VFP第3章数据库与表创建及使用10 2.检查数据库的有效性 在使用命令打开数据库时若使用了VALIDATE关键字,则 系统会检查数据库的有效性;也可在打开数据库后用 VALIDATE DATABASE命令检查数据库的有效性和更新链接。 VALIDATE DAT

8、ABASE RECOVER TO PRINTER|TO FILE 【注】 RECOVER用于说明更新链接,缺省时仅检查数据库的有效性 TO FILE用于说明检查结果信息的去向,缺省时在VFP主窗口 显示; VALIDATE DATABASE命令只能处理以独占方式打开的当前 数据库。 2021-7-11VFP第3章数据库与表创建及使用11 在项目管理器中选择要关闭的数据库后单击“关 闭”按钮; 使用CLOSE DATABASE命令关闭当前数据库; 使用CLOSE DATABASE ALL关闭所有打开的数 据库; 关闭(退出)Visual FoxPro系统。 3.关闭数据库 【注】在关闭数据库时,

9、从属于该数据库的表同时 被关闭(如果表已被打开); 使用CLOSE DATABASE命令可关闭当前数 据库和表,若没有打开的数据库,则关闭所有工作区 内所有打开的自由表、索引,并将当前工作区设为1。 2021-7-11VFP第3章数据库与表创建及使用12 用Windows操作系统删除;非正常删除 用DELETE FILE命令删除; 非正常删除 在项目管理器中通过“移去”操作进行删除。 正 常删除,这样才能删除数据库中所包含的表的链接信 息,数据库表将自动变成自由表。否则,只能用命令 FREE TABLE 强行解除数据库与表间的链接,将表变 成自由表。 4.删除数据库 删除数据库意味着删除存储在

10、数据库中的一切数 据,包括存储过程、视图、表之间的关系、数据字 典等。 2021-7-11VFP第3章数据库与表创建及使用13 VFP中的表(Table)是指存放在磁盘文件中的一张 二维表,通常用来描述一个实体。 表中的一列称为字段(Field),字段规定了数据的特 征。 表中的一行称为记录(Record),记录是字段值的 集合。 表的记录必须用一个公共结构来存储,这个结构就 是表结构。 表分为数据库表(简称“表”)与自由表两种类型 。 表文件名队要遵守Windows中的约定外,不可使用 AJ中的单个字母作为文件名,且最好不要包含空 格字符。 2021-7-11VFP第3章数据库与表创建及使用

11、14 字段名字段名:用以在表中标识该字段。 字段的数据类型字段的数据类型:表中每个字段都有特定的数据类 型(参见课本表3-1) 字段的宽度字段的宽度:是指该字段所能容纳数据的最大字节 数。有一些数据类型的宽度是固定的。 小数位数小数位数:对于数值型、浮点型和双精度型的字段 ,可以指定其小数的位数。如数据的整数部分不为 0,则整个宽度至少应比小数位数大2,如是纯小数 ,则整个宽度只要比小数位数大1。 空值支持(空值支持(NULLNULL):通过使用空值(NULL),就有 了一个判定某个字段是否具有一个值的办法。 3.3.1 表结构概述 2021-7-11VFP第3章数据库与表创建及使用15 用“

12、表设计器”创建表结构 项目中的表: 项目自由表新建新表保存(表向导另存为保存) 非项目中的表: 新建新建文件保存(向导另存为保存) 3.3.2 创建和修改表结构 用“表设计器”修改表结构 项目表修改或用命令MODIFY STRUCTURE表设计器 2021-7-11VFP第3章数据库与表创建及使用16 字段的标题和注释 标题:浏览表时代表字段的标签,但引用字段时必须使用 其字段名。 注释:字段的说明信息,在项目管理器中选择一个字段时 ,在窗口下部将显示该注释。 字段的显示属性 格式(Format):用于指定输入和显示时的格式(对输入 字段值的整体约束)。表3-2 输入掩码(InputMask)

13、:用于指定字段中输入数据的格式 (对输入字段的每位约束)。 表3-3 3.3.3 字段属性与表属性 1. 字段的扩展属性 2021-7-11VFP第3章数据库与表创建及使用17 默认值 为字段所指定的最初的值。设定默认值时必须是一个与字 段类型相同的表达式。如果字段设置为允许Null,则字段 默认值可设置为“Null”,否则字段的默认值不可设置为 “Null”。如果用户未指定字段的默认值且字段不允许为 空值,则系统按下表所述的方式设置字段的默认值。 字段数据类型默认值 字符型长度与字段宽度相等的空串 数值型、整型、双精度型、 浮点型、货币型 0 逻辑型.F. 备注型、通用型(无) 日期型、日期

14、时间型空的日期 2021-7-11VFP第3章数据库与表创建及使用18 字段的有效性规则和有效性信息 字段有效性规则:用来控制输入到字段中的数据的取值范 围。该规则是一个包含当前字段的逻辑表达式,如果输入 的值不满足规则要求(即逻辑表达式的值为.F.)则拒绝该 字段值并显示一个消息框。 字段有效性信息:也称字段有效性说明,是一个字符型表 达式,通常与字段的有效性规则配合使用,用于指定在不 满足规则要求时所显示的消息框中的说明信息。 字段的默认控件类 作用是指定使用“表单向导”生成表单或从数据环境中将 字段拖放到表单上时,与该字段相应的控件类。 2021-7-11VFP第3章数据库与表创建及使用

15、19 显示打开显示打开 用菜单等界面操作方法或USE命令直接 打开表 隐式打开隐式打开 指在执行某些操作时系统会自动打开 相应的表。如在项目管理器窗口中选择一个表后 单击“修改”或“浏览”按钮时,会自动打开表 ;在执行SELECT-SQL语句进行查询时,也会自动 打开数据源表等。 3.3.4 表的打开与关闭 在VFP中,表使用前必须打开。表的打开可以是 显式打开,也可以是隐式打开。 2021-7-11VFP第3章数据库与表创建及使用20 概念 在打开一张表时,必须为该表指定一个“工作区”。它是 用以标志一张打开的表的区域。 编号132767,前10个也可 用AJ 工作区中表的别名 USE 表文

16、件名 ALIAS 别名 函数ALIAS(工作区号)可得到指定工作区的表别名。 函数SELECT(别名)可测试指定表别名的工作区号。 当前工作区 在“数据工作期”中设置当前工作区 命令:SELECT 工作区号|别名 3.3.4 表的打开与关闭 1. 工作区 2021-7-11VFP第3章数据库与表创建及使用21 【注】 操作非当前工作区中的表的方法:一是把非当前工 作区的表选为当前工作区(用SELECT命令);二是 在命令中强行指定工作区(用IN 工作区号|别名) 如:GO TOP IN js。 SELECT 0 指将未被使用的编号最小的工作区设为 当前工作区 2. 数据工作期窗口 2021-7

17、-11VFP第3章数据库与表创建及使用22 界面方式 文件打开 数据工作期打开 项目管理器修改或浏览 在命令窗口中用命令USE ? 打开“使用”窗口 命令方式 USE 表名 IN 别名|区号AGAINALIAS 表别名 ; NOUPDATE 3. 表的打开 2021-7-11VFP第3章数据库与表创建及使用23 界面方式 在数据工作期中关闭 命令方式 USE IN 别名|工作区 关闭所有的表 CLOSE TABLES ALL CLOSE DATABASE ALL CLOSE ALL 4. 表的打开 2021-7-11VFP第3章数据库与表创建及使用24 设置独占与共享打开表的默认状态 工具选项

18、数据 SET EXCLUSIVE ON默认“共享”打开 SET EXCLUSIVE OFF默认“独占”打开 强行用一种方式打开表 在“打开”窗口中设置 USE 表名 SHARED|EXCLUSIVE 5. 表的独占与共享 【注注】当一个表被多次打开时,只能以第一次打当一个表被多次打开时,只能以第一次打 开方式为准。开方式为准。SET EXCLUSIVE的设置并不能改变的设置并不能改变 已经打开表的状态。已经打开表的状态。 2021-7-11VFP第3章数据库与表创建及使用25 表结构创建后立即输入记录 在浏览窗口中追加记录 菜单命令“表表”“追加新记录追加新记录” 菜单命令“显示显示” “追加

19、方式追加方式” 使用INSERT-SQL命令追加记录 INSERT INTO 表名(字段名1,字段名2,); VALUES(表达式1,表达式2,) 举例:INSERT INTO xs(xh,xm,xb,xzydm); VALUES(050503017,高山,男,050301) 3.3.5 记录的处理 1. 记录的输入 【注注】VALUESVALUES后面括号中的具体记录的值要和后面括号中的具体记录的值要和INSERT INSERT INTOINTO后面的字段名列表保持位置和类型上的一致。后面的字段名列表保持位置和类型上的一致。 2021-7-11VFP第3章数据库与表创建及使用26 使用使用A

20、PPEND与与APPEND FROM命令追加记录命令追加记录 APPEND BLANKIN 工作区号|别名 APPEND FROM 文件名FIELDS 字段列表FOR 条件; DELIMITED|XLS 其中,DELIMITED用于说明追加文件为文本文件;XLS用 于说明追加文件为Excel文件,缺省时追加文件为表文件。 该命令也可通过界面完成:“表表”“追加记录追加记录” 备注型字段与通用型字段的数据输入备注型字段与通用型字段的数据输入 备注型:浏览窗口中,备注型字段上显示memo表示无内容 ;Memo表示有内容。备注型字段内容输入方法是光标定位 到该字段上,按+或双击双击 通用型:浏览窗口

21、中,通用型字段上显示gen表示无内容; Gen表示有内容。通用型字段内容输入方法同上,然后再用 菜单命令“编辑编辑” “插入对象插入对象”插入其内容。 2021-7-11VFP第3章数据库与表创建及使用27 界面菜单命令“显示显示”“浏览浏览”(编辑) 命令 BROWSE FIELDS 字段列表FOR 条件; RREEZE 字段名NOAPPEND; NODELETE NOMODIFYTITLE 表达式 例:CLOSE TABLES ALL USE xs BROWSE FIELDS xh,xm FOR xb=女 ; NOMODIFY TITLE 女学生 2. 浏览窗口 3. 记录的筛选(横向筛选

22、横向筛选) 界面 菜单命令“表表”“属性属性” “数据过滤器数据过滤器” 命令 SET FILTER TO 条件 2021-7-11VFP第3章数据库与表创建及使用28 界面菜单命令“表表”“属性” “字段筛选” 命令 SET FIELD TO 字段列表 SET FIELD TO ALL列出所有字段(取消筛选) 4. 限制对字段的(纵向筛选纵向筛选) 5. 记录定位 (1)记录指针 文件头文件头 (包含(包含等信息)等信息) 第第1 1条记录条记录 第第2 2条记录条记录 第第n n条记录条记录 针针 2021-7-11VFP第3章数据库与表创建及使用29 【注】 RECNO()测试当前记录指

23、针的位置,开始标志用 BOF()测试,结束标志用EOF()测试。 如下表: 表中记录情况表中记录情况BOF()BOF()值值RECNO()RECNO()值值EOF()EOF()值值 无记录无记录.T.T.1 1.T.T. 有记录有记录.F.F.1 1.F.F. 记录指针的初始值总是1,不可能为0或负数,最 大值是表中记录总数+1。 2021-7-11VFP第3章数据库与表创建及使用30 界面操作 表转到记录 在浏览窗口移动光标 “记录号”:绝对定位 “定位”:条件定位 范围选项有ALL、NEXT、 RECORD n、REST 5. 记录定位 (2)记录定位的实现 2021-7-11VFP第3章

24、数据库与表创建及使用31 首记录首记录 当前记录当前记录 末记录末记录 ALL NEXT n REST RECORD nn 2021-7-11VFP第3章数据库与表创建及使用32 n 使用命令 n 绝对定位:GOTO 记录号 | TOP | BOTTOM IN 区号|别名 n 相对定位:SKIP nRecords n 条件定位:LOCATE FOR 条件表达式 范围 (2)记录定位的实现 【注】若从第一条记录向上移动一条记录,记录指针指向开 始标志,BOF()函数值为.T.,RECNO()值仍为1。若再执行SKIP -1命令,系统将显示出错信息“已到文件头”,此时记录指针 仍然指向记录开始标志

25、。 若从最后一条记录向下移动一条记录,记录指针指向结束标 志,EOF()函数值为.T.,RECNO()值为表记录数加1。若再执行 SKIP命令,系统将显示出错信息“已到文件尾”,此时记录指 针仍然指向记录结束标志。 如果表有一个主控索引,SKIP命令将使记录指针移动到索引 顺序决定的记录上。 对于条件定位来说,可使用CONTINUE命令从当前记录继续进 行条件定位到下一条满足条件的记录。 2021-7-11VFP第3章数据库与表创建及使用33 界面方式的记录修改 对于当前工作区中的表,可在浏览窗口中修改记录 批量修改:在浏览表状态下,用菜单“表”“替换字段 ” 6. 记录的修改 2021-7-

26、11VFP第3章数据库与表创建及使用34 使用命令修改记录 UPDATE命令 UPDATE 表名 SET 字段名1=表达式1; ,字段名2=表达式2WHERE 条件 REPLACE命令 REPLACE 字段名1 WITH 表达式1 ADDITIVE; ,字段名2 WITH 表达式2 ADDITIVE范围FOR 条件 6. 记录的修改 2021-7-11VFP第3章数据库与表创建及使用35 2021-7-11VFP第3章数据库与表创建及使用36 标记要删除的记录(逻辑删除) 浏览表时,手动删除 浏览表时,用菜单“表”“删除记录” 打开“删除” 对话框进行删除 DELETE-SQL命令删除: DE

27、LETE FROM 表名 WHERE 条件 DELETE命令删除: DELETE 范围FOR 条件IN 工作区|别名 7. 记录的删除与恢复 2021-7-11VFP第3章数据库与表创建及使用37 恢复带删除标记的记录 RECALL 范围FOR 条件 (两个可选项的使用同(两个可选项的使用同DELETE命令)命令) 彻底删除记录(物理删除) 在表浏览状态,用菜单“表”“彻底删除” 对当前工作区中的表对当前工作区中的表,用命令用命令PACK 用ZAP命令命令物理删除当前工作区中打开表的所有记录而不 论记录是否有删除标记 对带有删除标记的记录的访问 对带有删除标记的记录,在默认情况下有些命令仍然可

28、以 对其进行操作,而有些命令则忽略这些记录。 可用SET DELETED ON|OFF来指定VFP是否处理带有删 除标记的记录,但该设置也不是对所有命令或函数起作用 。DELETE()函数可用于测试记录是否被删除。 2021-7-11VFP第3章数据库与表创建及使用38 该命令只能用于当前工作区中打开的表的数据复制 缺省FIELDS子句则复制表中所有字段,但如果复制 产生的文件不是默认的表文件,则即使备注字段包 含在字段列表中,也不把备注字段复制到新文件中 SDF选项指明产生的新文件类型为文本文件(.TXT) 而XLS选项指明产生文件为电子表格文件(.XLS) 8. 数据的复制 COPY TO

29、COPY TO 文件名 FIELDS FIELDS 字段列表范围; FORFOR 条件SDFSDF|XLSXLS 例: USE xsUSE xs COPY TO xs01 FOR xb=COPY TO xs01 FOR xb=女女 COPY TO xs01 FIELD xh,xm SDFCOPY TO xs01 FIELD xh,xm SDF COPY TO xs01 XLSCOPY TO xs01 XLS 2021-7-11VFP第3章数据库与表创建及使用39 记录的物理顺序 按输入记录时间顺序实际存放的顺序,用记录号来标识不同 的记录,函数RECNO()RECNO()可测试当前记录号。 记

30、录的逻辑顺序 为实现对表记录的快速查询,可根据需要对表文件中的记录 按某个字段(单字段索引)或某些字段(多字段索引)值排 序,这就是逻辑顺序。 3.3.6 索引的创建与使用 1. 索引概述 【注注】索引排序并没有真正更改表记录的物理顺序,索引排序并没有真正更改表记录的物理顺序, 只是建立了一个逻辑顺序与原表物理顺序的记录号之只是建立了一个逻辑顺序与原表物理顺序的记录号之 间的对照表,并把对照表保存到一个索引文件中。间的对照表,并把对照表保存到一个索引文件中。 2021-7-11VFP第3章数据库与表创建及使用40 字符+字符: 数值+字符: 数值+数值: 日期+字符: 其它:逻辑型、物理顺序等

31、 一升序一降序问题: 2. 索引表达式 索引表达式也叫索引关键字,它是建立一个索引 的排序依据,通常是一个字段或由多个字段组成的表 达式。需注意需注意:不能基于备注字段或通用字段建立索不能基于备注字段或通用字段建立索 引引。如索引表达式是基于多个字段的,系统将根据整 个表达式的值进行排序。书写表达式时要注意: 2021-7-11VFP第3章数据库与表创建及使用41 普通索引:索引表达式的值允许重复,即在普通索 引上查找的记录不具有唯一性。一个表可以创建多 个普通索引。 唯一索引:索引表达式的值可以重复,但在索引文 件中重复的值仅存储一次。一个表可以创建多个唯 一索引。 3. 索引类型 在VFP

32、中,表的索引类型总共有4种:主索引主索引、 候选索引候选索引、唯一索引唯一索引、普通索引普通索引。其中,主索引只主索引只 能在数据库表中创建能在数据库表中创建。当数据库表移出数据库变成 自由表时,索引仍然有效,只是主索引将自动变成 候选索引。 2021-7-11VFP第3章数据库与表创建及使用42 候选索引:以表的候选关键字为索引表达式而创 建的索引,所以,对于表中记录来说,指定的索 引表达式的值不可重复。如果在任何已经含有重 复数据的字段中指定候选索引,系统将产生错误 信息;如果表已经建立了候选索引,在追加新记 录或修改记录时,系统会检测索引表达式的值是 否有重复,如有重复则拒绝接收数据的输

33、入或修 改。一个表可以建立多个候选索引。 主索引:对于数据库表来说,可以从候选索引中 选取一个作为主索引。每个数据库表只能创建一 个主索引,且主索引的索引表达式在表的所有记 录中不允许有重复的值,也不允许NULL值。 注:在实际应用中,一个表一般创建一个主索引,注:在实际应用中,一个表一般创建一个主索引, 根据需要可创建多个普通索引。根据需要可创建多个普通索引。 2021-7-11VFP第3章数据库与表创建及使用43 结构复合索引文件 将表的一个或多个索引的索引信息存储在一个索引文件中 ,且索引文件名与表名相同,扩展名为.CDX。结构复合索 引能自动地与表同步打开、更新和关闭。不要建立无用的

34、索引,过多索引将会降低系统性能。 非结构复合索引文件 与结构复合索引文件一样,索引文件扩展名为.CDX,但其 文件名不与表同名,非结构复合索引也不会随表的打开而 自动打开。 独立索引文件 只存储一种索引的索引文件,其扩展名为.IDX,文件名由 用户指定。与非结构复合索引一样,独立索引也不会随表 的打开而自动打开。 4. 索引文件的类型 2021-7-11VFP第3章数据库与表创建及使用44 排序:对索引表达式值的整体升序或降序,默认为升序。 索引名:也叫索引标识(Tag),其长度最多10个。 筛选:指定仅有符合条件的记录参加索引。 5. 使用表设计器创建结构复合索引 2021-7-11VFP第

35、3章数据库与表创建及使用45 使用USE命令打开表时,通过ORDER子句指定主控 索引。如:USE xs ORDER xh 反之,可以将一个数据库表从数据库中移出,使之 成为一个自由表。注意:一个数据库表变成自由表 后,一切扩展属性均自动丢失,索引仍然保留,如 果有主索引将自动变成候选索引。 2021-7-11VFP第3章数据库与表创建及使用48 用CREATE-SQL命令创建表结构 CREATE TABLE 表文件名(字段名1 字段类型; (字 段宽度, 小数位数) NULL | NOT NULL; , 字段名2 ,) 例:学生表结构的创建用命令实现。 Create Table xs(xh

36、C(8),xm C(8),xb C(2),zydh C(6) Create Table js(gh C(5),xm C(8),gzrq D,jbgz N(7,2),jl M) 【注】上面建立的表结构是针对“自由表”而言, 而“数据库表”是属于某一数据库的,所以要在项目 列表中先选择已存在的数据库,然后再点“新建”, 后面方法同上。 “数据表”还可以通过添加已有的“自由表”而 产生。 3.3.8 利用命令创建和修改表结构 2021-7-11VFP第3章数据库与表创建及使用49 用ALTER TABLE-SQL命令更改表的结构 添加字段添加字段 ALTER TABLE xs ADD COLUMN

37、bjmc c(12) 重命名字段重命名字段 ALTER TABLE xs RENAME COLUMN bjmc TO bj 删除字段删除字段 ALTER TABLE xs DROP COLUMN bj 修改字段修改字段 ALTER TABLE xs ALTER COLUMN xh c(6) 3.3.8 利用命令创建和修改表结构 2021-7-11VFP第3章数据库与表创建及使用50 一对一关系一对一关系 设A、B两张表,A表中的一个记录在B表中只有一个记录与 之对应,B表中的一个记录在A表中也只有一个记录与之对应 。在很多情况下,两张表可以简单地合并成一个表。 一对多关系一对多关系 如A表中的

38、任意一个记录在B表中可有多个记录与之对应, 而B表中的每个记录,在A表中仅有一个记录与之对应,则称 两表之间存在一对多关系。A为主表,B为子表。 3.4.1 表之间的永久性关系 1. 表之间关系的类型 2021-7-11VFP第3章数据库与表创建及使用51 多对多关系多对多关系 若A表的一个记录在B表中可对应多个记 录,而B表中的一个记录在A表中也对应多个记录 ,则称为多对多关系。 遇到多对多关系时,必须建立第三张表,把 多对多关系分解成两个一对多关系。第三张表就 称作“纽带表”。把两张表的主关键字都放在这 个纽带表中。 对于纽带表,除了包含两个外部关键字外, 还可以有其他字段。纽带表的主关键

39、字可以由两 个外部关键字组成。 2021-7-11VFP第3章数据库与表创建及使用52 它是库表之间的一种关系,不仅在运行时存在,而且一 直保留,拥有永久关系的表必须的数据库中。 表间的永久关系是通过索引建立的,永久关系的类型决 定了所使用的索引的类型:在一对多中,主表必用主索引关 键字(或侯选索引关键字),子表则用普通索引关键字;一 对一中,两张表都用主索引关键字(或侯选索引关键字)。 2. 表之间的永久关系 在在“查询(视图)设计器查询(视图)设计器”中,自动作为默认联接条件;中,自动作为默认联接条件; n 作为表单和报表的默认临时关系,在作为表单和报表的默认临时关系,在“数据环境设计器数

40、据环境设计器”中显中显 示示 n 用来存储参照完整性信息。用来存储参照完整性信息。 2021-7-11VFP第3章数据库与表创建及使用53 (2 2)永久关系的建立)永久关系的建立 确定两张具有一对多或一对一关系的表 建立主表的主索引或侯选索引 如是一对多,在子表中以外部关键字建立普通索引 ;如是一对一,在子表中以与主表相同的关键字建立 主索引或侯选索引。 建立主表与子表的永久关系,即在数据库设计窗 口中,将主表的主索引或候选索引标识拖放到子表 相应的索引标识上。 (3 3)删除、编辑永久关系)删除、编辑永久关系 在“数据库设计器”中单击关系连线后(这时连 线变粗),按键;编辑关系时,可双击连

41、 线打开“编辑关系”对话框进行编辑修改。 2021-7-11VFP第3章数据库与表创建及使用54 “参照完整性参照完整性”是用来控制数据的一致性,尤 其是控制数据库相关表之间的主关键字和外部关键 字之间数据一致性的规则规则。 1.1.参照完整性的一般要求(一对多或一对一参照完整性的一般要求(一对多或一对一) 子表的每一个记录在对应的父表中有一个父记录。 在父表中修改记录时,如改了主关键字的值,则子 表中相关记录的外部关键字值必须同时改。 在子表中插入记录时,其外部关键字必须是主表主 关键字值中的一个。 在父表中删除记录,与该记录相关的子表中的记录 必须全部删除。 3.4.2 参照完整性 202

42、1-7-11VFP第3章数据库与表创建及使用55 用“参照完整性生成器”完成。参照完整 性规则包括更新规则、删除规则、插入规则。 2. 参照完整性的设置 更新规则更新规则删除规则删除规则插入规则插入规则 (当父表中记录的 关键字被更新时触 发) (当父表中记录被 删除时触发) (当父表中插入或 更新记录时触发) 级联 用新的关键字值更 新子表中所有相关 记录 删除子表中所有相 关记录 限制 若子表中有相关记 录,则禁止更新 若子表中有相关记 录,则禁止删除 若父表中不存在匹 配的关键字,则禁 止插入 忽略 允许更新,不管子 表中的相关记录 允许删除,不管子 表中的相关记录 允许插入 2021-7-11VFP第3章数据库与表创建及使用56 父表:显示一个关系中的父表名 子表:显示一个关系中的子表名 更

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论