VFP 第三章 数据库的创建和使用
第3章 数据库的基本操作(1)
■若在文件名前指定了驱动器标识符,则文件建立在指定的 驱动器上,否则建立在当前驱动器上。 ■不指定文件扩展名时,缺省扩展名为.DBF。 ■若磁盘上存在这个文件或文件重名,系统显示一个警告对 话框,提示是否要改写表。如果需要改写,则选择【是】, 否则选择【否】。 ■不要用A-J单个字母作为表文件名,因为它们是专门用于工 作区别名的。
记录的总字节数=各个字段的宽度+ 1
LIST STRU和DISP STRU命令的区别:
DISP STRU:在每显示一屏信息后暂停,等待用户按任 意一键后继续显示; LIST STRU:显示信息时没有周期性暂停,而是连续 向下显示,直到显示完毕。
二. 显示表中的记录
格式:LIST ︱ DISPLAY
• 逻辑型字段:只允许输入下列字母中的一个: y, Y, t, T, n, N, f, F
• 日期型字段:mm-dd-yy mm取值范围01~12 dd取值范围01~31
• 备注型字段的输入:
Ctrl+PgDn: 弹出字段编辑窗口
Ctrl+W: 保存该字段内容到备注文件中。 输入数据后,该字段栏显示为Memo
指针定位就是将记录指针移到指定的记录上,记录指针指向的记 录称为当前记录。VFP提供了绝对定位和相对定位两类命令。
(1)记录指针的绝对定位
格式: GOTO [RECORD <数值表达式> ]∣TOP∣BOTTOM 功能:将记录指针直接定位到指定的记录上。
钮,所改变的设置仅在本次系统运行期间有效,退出系统 后,所做的修改将丢失。
二. 建立表前的准备
在建立表结构以前,首先应该根据用户的需求,明确所要创建 的表中应该包含哪些字段,每个字段的名称、类型和宽度。
VFP第3章数据库与表的创建及使用PPT课件
命令方式
◦ USE [IN 别名|工作区]
关闭所有的表
◦ CLOSE TABLES ALL ◦ CLOSE DATABASE ALL ◦ CLOSE ALL
【注】在退出Visual FoxPro系统时,所有的表都将 被关闭。
2021/2/10
23
5. 表的独占与共享
设置独占与共享打开表的默认状态 ①工具→选项→数据 ②SET EXCLUSIVE ON→默认“共享”打开 SET EXCLUSIVE OFF→默认“独占”打开
在VFP中,表使用前必须打开。表的打开可以是 显式打开,也可以是隐式打开。
显示打开 用菜单等界面操作方法或USE命令直接 打开表
隐式打开 指在执行某些操作时系统会自动打开 相应的表。如在项目管理器窗口中选择一个表后 单击“修改”或“浏览”按钮时,会自动打开表 ;在执行SELECT-SQL语句进行查询时,也会自 动打开数据源表等。
常删除,这样才能删除数据库中所包含的表的链接信 息,数据库表将自动变成自由表。否则,只能用命令 FREE TABLE 强行解除数据库与表间的链接,将表变 成自由表。
2021/2/10
12
VFP中的表(Table)是指存放在磁盘文件中的一张 二维表,通常用来描述一个实体。
表中的一列称为字段(Field),字段规定了数据的特 征。
新建的数据库,保存后自动以独占方式打开;
打开数据库中的表,系统会自动打开相应的数据库;
在项目管理器中选择一个数据库并单击“修改”按钮 ;
OPEN DATABASE [DatabaseName] [EXCLUSIVE|SHARED][NOUPDATE][VALIDATE]
打开多个数据库可重复进行数据库打开操作即可,系 统默认最后一个打开的数据库为当前数据库。
VFP基础教程-数据库的创建和使用
4.1 VFP数据库1. 数据库的基本组成数据库由一个以上相互关联的数据表组成,可以包含一个或多个表、视图、到远程数据源的连接和存储过程。
视图(view):一个保存在数据库中的、由引用一个或多个表、或其他视图的相关数据组成的虚拟表,可以是本地的、远程的或带参数的。
存储过程(stored procedure):是保存在数据库中的一个过程。
该过程能包含一个用户自定义函数中的任何命令和函数。
创建数据库时系统自动生成3个文件:数据库文件: 扩展名为.DBC数据库备注文件: 扩展名为.DCT数据库索引文件: 扩展名为.DCX2. 数据库的设计过程1)明确建立数据库的目的和使用方式2)设计所需的数据表(包括表结构和表记录)3)建立表之间的关系4)改进设计4.2 数据库的创建1. 数据库的创建过程数据库的创建过程中一般会涉及下面一些常用操作:1)创建新表→用表设计器(设置字段属性和表属性)2)添加表→用数据库设计器按钮或数据库菜单3)创建视图→用视图向导、视图设计器4)建立关系→用鼠标将父表的索引拖到子表的相关索引上5)编辑关系→用数据库菜单或快捷菜单→参照完整性生成器6)移去关系→用快捷菜单或按delete键7)修改表→用表设计器8)删除表或视图→用数据库设计器按钮或数据库菜单2. 数据库的新建、打开、关闭(1)新建数据库:从文件菜单中单击新建→在新建对话框中选择数据库并单击新文件→在创建对话框中给出库文件名和保存位置→在数据库设计器中建立所需的数据库。
或从命令窗口中输入命令:create database 数据库名(2)打开数据库:从文件菜单中单击打开→在打开对话框中给出库文件名和保存位置并确定之。
或从命令窗口中输入命令:open database 数据库名(3)关闭数据库:从命令窗口中输入命令:close database&& 关闭当前数据库或close all&& 关闭所有被打开的数据库注意:1) 关闭了数据库表不等于关闭了数据库,但关闭了数据库则其中的数据表被同时关闭;2) 用鼠标关闭了数据库设计器窗口并不能代表关闭数据库。
vfp数据库与表的创建及使用
2021/8/18
第3章 数据库与表的创建及使用
22
3.2.2 数据库的打开与关闭
方法一:
所有打开的数据库
方法二: SET DATABASE TO sjk
当前数据库
2021/8/18
第3章 数据库与表的创建及使用
23
3.2.2 数据库的打开与关闭
2、检查数据库的有效性
▪ 如果用户移动了数据库文件与数据库关联的表文 件,则这些文件的相对路径会改变,从而可能破 坏用于关联数据库和表的双向链接。链接破坏后, 可通过重建链接来更新相对路径信息,以反映文 件的新位置。
2、字段的数据类型:说明字段是什么类型的数据。
▪ 不同数据类型的表示和运算的方法不一样。
2021/8/18
第3章 数据库与表的创建及使用
30
3.3.1 表结构概述
数据类型
字母 表示
说明
示例
字符型 (Character)
C 字母、汉字符号和数字型文本
XH、XM
货币型 (Currency)
Y 货币单位
▪ 使用“项目管理器” ▪ 使用“文件”菜单中的“新建”命令 ▪ 使用CREATE DATABASE命令
2021/8/18
第3章 数据库与表的创建及使用
19
3.2.2 数据库的打开与关闭
1、打开数据库
▪ 数据库的打开有多种方式
➢新建的数据库,保存后自动以独占方式打开
➢打开数据库中的表,系统会自动打开相应的数据库
➢在项目管理器中选择一个数据库,并单击“修改” 按钮,可打开该数据库,并出现数据库设计器窗口。
只读方式打开 ➢可以使用命令打开
打开方式:独占/共享
OPEN DATABASE [DatabaseName] [EXCLUSIVE|SHARED]
VF第三章:数据库操作
5.
显示记录命令:
LIST \DISPLAY [ [FIELDS] fieldlist] [FOR lExpressionl] [OFF] [ TO PRINTER [PROMPT]] TO FILE filename] 其中参数:
第三章:visual Foxpro数据库及其操作
三、修改数据库
在VFP中一般用数据库设计器修改数据库,数据库设计器可 以用如下的几种方式打开.
1.在项目管理器中打开
2.在打开对话框中打开数据库
3.使用命令打开 MODIFY DATABASE [ databasename |? ]
[NOWAIT] [NOEDIT]
4、项目管理器的使用 A、建立文件 “新建”按钮 B、添加文件 “添加”按钮 C、修改文件 “修改”按钮 D、移去文件 “移去”按钮 E、删除文件 “移去”按钮 F、其他按钮 “浏览”、“打开”、“关闭”、“预览”、“运行”、 “连编”
5、定制项目管理器 A、移动、缩放、折叠、拆分项目管理器 移动:鼠标操作 缩放:鼠标操作 折叠: 、 按钮 拆分: 图钉图标按钮 B、停放“项目管理器”窗口 将项目管理器拖到Visual FoxPro主窗口的顶部 就可以使象其他工具栏一样显示在主窗口的顶部。 注意:创建项目可以使用命令 格式:CREATE PROJECT
3. 使用命令打开数据库
OPEN DATABASE [filename | ?] [EXCLUSIVE |SHARED] [NOUPDATE] [VALIDATE ] 参数说明:EXCLUSIVE以独占方式打开,SHARED以 共享方式打开。NOUPDATE以只读方式打开,VALIDATE检 查数据库中引用的对象是否合法。 4.设置当前数据库:SET DATABASE TO [databasename]
第3章VFP数据库及其操作2
修改数据库
前两种方式打开同时,自动进入修改状态(数据库设计器)。 命令方式打开数据库设计器方法是: Modify database [数据库文件名 | ? ] (缺省则为当前数据库 3 )
将数据库添加到项目中
在项目管理器/数据选项卡/选定数据库/添加
删除数据库
从项目管理器中删除数据库(点击移去按钮,弹出对话框)。 移去:从项目管理器中移出,但不做物理删除(磁盘上保留) 删除:完全删除(磁盘上也不保留) 注:这样删除是不能删除数据库中包含的表、视图等文件。 命令方式删除数据库: Close database (不加参数,关闭当前数据库) Close database all (关闭所有打开的数据库) 注:使用命令方式删除数据库之前,要先关闭它才行! Delete database [数据库文件名 | ? ] (删除数据库) 两个参数举例: Delete database 订货管理 deletetables 同时删除所含表文件 Delete database 订货管理 recycle 不做彻底删除,放入回收站
12
3.3表的基本操作
3.3.1使用浏览器操作表 界面方式:项目管理器/数据库/表/浏览 命令方式:用use命令打开表后,键入browse命令 3.3.6记录指针的定位: 记录指针:VFP数据库的表是由行和列组成的,每一行称 为一条记录。每一条记录根据输入的先后顺序,有一个物理 记录号。VFP为每张表都保存一个记录指针,它指向当前操 作的记录,通过其记录号来标识。 VFP对单行记录操作时,一定是对记录指针指向的当前记 录做操作,不会影响其他记录。所以一定要时刻注意记录指 针的位臵,以便准确的对目标记录进行操作。
使用(打开)数据库
在项目管理器中打开数据库: 从“打开”对话框中打开数据库: 命令方式打开数据库: Open Database [数据库文件名 | ? ] 说明: 只读方式打开:不允许对数据库进行修改。 独占方式打开:不允许其他联网用户同时使用该数据库。
VFP 第三章 数据库的创建和使用
临时关系与永久关系的区别:临时关系是用来临时地控制相关表之间记录的访问;而永久关系主要是用来存储相关表之间的参照完整性。
附带地可以作为默认的临时关系或查询中默认的联接条件。
临时关系在表打开之后使用 SET RELATION 命令创建,随表的关闭而解除;永久关系永久地保存在数据库中而不必在每次使用表时重新创建。
临时关系可以在自由表之间、库表之间或自由表与库表之间建立;而永久关系只能建立在库表之间。
临时关系与永久关系的联系:无论建立临时关系还是永久关系,都必须明确建立关系的两个表之间确实在客观上存在着一种关系(一对多或一对一关系)。
永久关系在许多场合可以用来作为默认的临时关系。
3.10.2 建立表之间的临时关系建立临时关系要明确几个要素:主表、子表、子表的主控索引以及关系表达式。
临时关系:主表的记录——>子表的主控索引建立临时关系的方法: 1、在“数据工作期”窗口中建立 2、使用 SET RELATION 命令建立: SET RELATION TO 关系表达式 INTO 区号|别名
3.10.3 解除表之间的临时关系一. 在“数据工作期”窗口中解除二. 使用命令解除选择主表工作区,使用如下命令解除临时关系: SELECT XS SET RELATION TO 或者 SET RELATION OFF 三. 在关闭主表或子表时,临时关系也即自动解除。
VF数据库及其操作
3.3.6 删除记录 1.逻辑删除 (1)菜单方式:浏览表-表-删除记录. (2)命令方式:DELETE [<范围>][FOR<条件>][WHILE<条件>] (3)鼠标方式:浏览表,单击记录首部空白栏,使其颜色变黑 2.恢复逻辑删除的记录 (1)菜单方式:浏览表-表-恢复记录. (2)命令方式:RECALL[<范围>][FOR<条件>][WHILE<条件>] (3)鼠标方式:浏览表,单击记录首部删除标记栏. 3.物理删除 (1)菜单方式:浏览表-表-彻底删除. (2)命令方式:PACK 4.一次性删除记录:ZAP
3.2 创建数据表 1.数据库表:数据表属于某个数据库. 2.自由表:数据表与数据库无关、单独存在的. 3.2.1 定义表结构 1.字段个数,每个字段的字段名、类型、宽度和小数位数. 2.创建自由表 (1)项目方式:数据-自由表-新建-新建表-表名-保存 (2)菜单方式建表:文件-新建-表-新建表-表名-保存 (3)命令方式:CREATE <表文件名>
3.5 创建数据库 3.5.1 数据库的创建 1.项目方式:数据-数据库-新建-新建文件-文件名-保存. 2.菜单方式:文件-新建-数据库-新建文件-文件名-保存. 3.命令方式:CREATE DATABASE[<数据库文件名>]
3.5.2 数据库的基本操作 1.打开数据库 (1)项目方式:双击数据库/选中据库-修改. (2)菜单方式:文件-打开-数据库文件. (3)命令方式:OPEN DATABASE [<数据库文件名>] 2.关闭数据库 (1)项目方式:选中数据库-关闭. (2)命令方式:CLOSE DATABASE [ALL] 3.删除数据库 (1)项目方式:选中数据库-移去-删除/移去. (2)命令方式:DELETE DATABASE<数据库文件>[DELETETABLES]
VFP第三章表的创建和使用3.4-3.5 索引与常用函数
1. 索引(Index)索引是根据索引关键字(即索引表达式)的值进行逻辑排序的一组指针。
索引提供对数据的快速访问,可以对表的各行强制实现唯一性。
索引文件由索引序号和对应于索引序号的表的记录号(亦称为指针)组成。
2. 索引关键字(Index Key)索引关键字是用来作为建立索引的依据。
它通常是一个字段或字段表达式。
例如,学生表(XS.DBF)中有8个记录,输入时的物理顺序如下:记录号XH XM XB ZYDH XIMING1 950101 李林男102001 信息管理系2 950106 高山男102001 信息管理系3 950105 陆海涛男102001 信息管理系4 950104 柳宝女102001 信息管理系5 950102 李枫女102001 信息管理系6 950103 蓝军男102001 信息管理系7 960201 林一风男109003 计算机科学系8 960203 高平男109003 计算机科学系现以XH字段作为索引关键字,按升序建立索引,索引文件的情况如下:P83Index # Table Record # XH1 1 9501012 5 9501023 6 9501034 4 9501045 3 9501056 2 9501067 7 9602018 8 960203第一列是索引号,第二列是对应于表中的记录号。
当该索引起作用时,浏览学生表时,记录按学号的顺序排列。
索引表达式的构成2-1索引表达式的构成与一般表达式的构成一样,只是索引表达式一般与表的字段有关。
索引表达式可以由单个字段构成,也可以是多个字段的组合。
需要注意的是,不能基于备注型字段和通用型字段建立索引。
索引表达式的构成2-2对于基于多个字段的索引表达式,可以按多个字段的值进行排序。
用多个字段建立索引表达式时,要注意以下几点。
⒈字符型表达式⒉算术表达式⒊不同类型字段构成一个表达式⒈字符型表达式⒈表达式中字段的前后顺序将影响索引的结果。
第3章_数据库与表的创建及使用
库表的约束机制及其激活时机
库表的字段级和记录级以及表的触发器, 为数据的输入和更改实施了约束。
3.3.4 表的打开与关闭
1、工作区
• 工作区的几个概念 – 用以标识一张打开的表的区域。 – 每个工作区都有一个编号,从1~32767(前10个可以用字母A~J表 示); – 每个工作区只能打开一张表,但一张表可以在多个工作区打开,用 AGAIN子句;在工作区打开的表都有一个别名,也可使用表的别名 作为工作区号。 – 系统正使用的工作区为当前工作区,启动VFP后默认当前工作区为1。 – 可以用SELECT命令选择当前工作区。 如:SELECT 4 &&选择4号工作区 SELECT 0 &&选择当前未使用的工作区区号最小的工作区。
3.1.2 数据库的组成
4、存储过程
•在数据库中保存过程和代码的地方。 • 包含用户自定义函数中的任何命令和函数,还有永久关系中参照 完整性代码。
• 对数据库中的数据进行地相似或相同的处理,可以编写成自定义 函数或过程保存在存储过程中,以供其他时候调用。
FUNCTION cj_rule PARAMETERS cj 创建、修改或移去存储过程有以下几种: IF cj>=0 and cj<=100 (1)在“项目管理器”中,选择并展开一个数据库,选 .T. RETURN 定“存储过程”,然后选择“新建”、“修改”或“移去” ELSE RETURN .F. 按钮。 ENDIF (2)在“数据库设计器”中,从“数据库”菜单中选择 ENDFUNC “编辑存储过程”按钮。 在cj字段的验证规则中设 置如下:cj_rule(cj.cj)
(1)“工具”—“选项”
独 占
3.3.4 表的打开与关闭
vf第3章
Visual FoxPro
3.3.6查询定位命令
1、绝对定位命令:GOTO 或GO GOTO 3 把鼠标指针移到第3记录。 GOTO TOP 将鼠标指针移到表头(通常指的是表中第1条记录) GOTO BOTTOM 将鼠标指针移到表尾(通常指的是表中最后一条记录) 2、相对定位命令: SKIP [记录数] 记录数可以是正数,也可以是负数,也可以省略。 正数时表示鼠标指针以当前记录为准,往后移动。负数时 表示鼠标指针以当前记录为准,往前移动。省略时,往后 移动一条。
二 级
浮点型 日期型 日期时间型 双精度型 整型 逻辑型 备注型
Visual FoxPro
通用型
G
4
存放图片、电子表格等
字段有效性规则的设置:
二 级
Visual FoxPro
在上面框中,规则框中输入的必须是逻辑 表达式,如面积>=200,在信息框中输入的必 须是字符表达式,如“面积不能小于200”。 默认值的类型则与字段的类型有关,如面积是 数值型,则这里的280就是数值型。
二 级
在建立VF 数据库时,相应的数据 库名称是扩展名为.DBC 的文件名,与 之相关的还自动建立一个扩展名为.DCT 的数据库备注(memo)文件和一个扩展名 为.DCX的数据库索引文件.
VFP数据库系统Visual FoxPro数据库与表的基本操作
二、利用向导创建表结构
“表向导”是基于典型的表结构创建表。 “表向导”允许从样表中选择满足需要的表。 在一步步经过向导的过程中,可以定制表的 结构和字段。也可以在向导保存表之后修改 表。
3.1.3 修改表结构
利用“表设计器”,可以改变已有表的结构, 如增加或删除字段、设置字段的数据类型及宽 度、查看表的内容以及设置索引。
REST,
代表其余,可对某一范围的记录起作 用,作用范围从当前记录开始,到表 或视图的最后一条记录为止。
FOR、WHILE文本 框用于显示“表达式 生成器”对话框。
WHILE 表达式指定 仅当该逻辑表达式为 “真”时,操作影响 记录。一旦表达式取 值为“假”,操作即 停止而不考虑其余记 录。
3.2.4 修改记录 打开要修改记录的表,进入表“浏览”窗
3.2.2 显示记录
从“文件”菜单中选择“打开”,选定想 要查看的表名“jsqk.dbf”。
从“显示”菜单中选择“浏览”。 显示的 内容是由一系列可以滚动的行和列组成的。
“编辑”方式
3.2.2 显示记录
从“文件”菜单中选择“打开”,选定想 要查看的表名“jsqk.dbf”。
从“显示”菜单中选择“浏览”。
8个字节, 小于等于
20位
数据范围
小于等于254个字符
-922337203685477.5807 to 922337203685477.5807
-.9999999999E+19 to .9999999999E+20
日期型 D
年,月,日
8个字节
日期时 T 年,月,日,时, 8个字节
间型
分,秒
VFP第3章 数据库与表的创建及使用
3.3 表的创建与使用
3.3.1 表.3.3 字段属性与表属性 3.3.4 表的打开与关闭 3.3.5 记录的处理 3.3.6 索引的创建与使用
3.3.7 自由表
3.3.8 利用命令创建和修改表结构
表的概念(一)
VFP中,表分为两种类型:
数据库表 和 自由表 VFP中的表(Table)是指存放在磁盘文件中 的一张二维表。 一张表保存为一个表文件(.DBF)。
举例
指出下面表中的超关键字: 姓名 赵阳 林虎 赵阳 年龄 20岁 21岁 21岁 院系 仪表 仪表 信息管理 班级 984 984 976
候选关键字
如果一个超关键字,去掉其中任何一个字段 后不再能唯一确定记录,则称它为‚候选关键字‛ (candidate key)。 候选关键字既能唯一确定一条记录,它包含的字 段又是最精练的。 一个二维表中总存在超关键字,因而也必存在候 选关键字。
存储过程
存储过程是保存在数据库中的过程代码,它由一 系列函数组成。 利用存储过程可以提高数据库的性能。 存储过程保存在.dbc文件中。
3.1.3 数据字典
数据字典是指存储在数据库中用于描述所管理 的表和对象的数据,即关于数据的数据。这些数 据称为元数据。
每个数据库带有一个数据字典,其数据存储在 数据库文件中。 数据字典扩展了对数据的描述,从而增强了数 据管理和控制功能。 数据库中的表可以享受到数据字典的各种功能。 数据字典使得对数据库的设计和修改更加灵活。
表与数据库之间的双向链接
数据库文件 前链 前链 前链 前链
后 表文件 链
后 表文件 链
后 表文件 链
后 表文件 链
视图
视图是一张‚虚表‛,其数据来源于一张或多张 表。
程序设计基础--VF数据库的基本操作
第三章 VFP数据库的基本操作
数据库旳删除
命令格式: DELE DATABASE [<数据库文件名>]
[DELETETABLES][RECYCLE] 功能:删除不再使用旳数据库
第三章 VFP数据库的基本操作
用设置命令能够使被逻辑删除旳统计继续参加操作,或者 “隐藏”起来,不再参加操作。
9、恢复统计 (RECALL) 10、物理删除统计(PACK) 11、清除表统计(ZAP) 12、删除标识鉴别函数 DELETED()
第三章 VFP数据库的基本操作
12、编辑统计 (1)单个统计修改
EDIT/CHANGE [<范围>][FIELDS<字段名表>] [FOR<条件>][WHILE<条件>])
第三章 VFP数据库的基本操作
VF6.0命令旳一般格式
1. VF6.0旳命令都有固定旳格式,必须按相应旳格式 和语法规则书写和使用,不然系统无法辨认、执行。基本 格式如下: <命令动词>[[<子句1>][<子句2>][<…>]] 其中语法标识符旳意义和使用方法如下:
<>:必选项:表达命令中必须选择该项,但内容能够根 据需要而定;
数据库旳操作
1、打开数据库
OPEN DATA [<数据库文件名>] [EXCL/SHAR] [NOUP] 2、指定目前数据库
SET DATABASE TO [<数据库文件名>] 3、显示目前数据库旳信息 DISP DATABASE
4、关闭数据库 CLOSE DATABASE [ALL] 5、浏览、修改数据库
VF第三章
复制表命令
1、COPY STRUCTURE TO <新文件名>[FIELDS 字段名表]
复制当前打开的表结构到新的表文件中,但不复制任何数据
2、COPY TO <新文件名>[范围][FIELDS<字段名表>][FOR <条件>][WHILE <条件>]
将打开表的全部或部分结构及数据复制到新表中
[BOTTOM]:表尾。不使用索引时时记录号最大的记录, 使用索引时是索引项排在最后的索引项对应的记录。 说明: <数值表达式>的值必须大于0, 且不大于当前表文件的记录个数。 2、与当前记录有关,它是把记录指针从当前位置作相 对移动。 格式:SKIP [<数值表达式>] 功能:将记录指针向前或向后作相对若干条记录的移动。 参数描述: <数值表达式>:指定记录指针作相对移动的记录数据。
说明: WITH后面的表达式的类型必须与WITH前面的字段类 型一致 。
返回
删除记录命令
在VFP中删除记录是分为两步来进行的,第一步是将要 删除的记录做上删除标记,第二步才是将记录真正从表 中彻底删除。 1、逻辑删除(为记录做上删除标记) 功能:对当前表文件中指定的记录做删除标记。
格式:DELETE [<范围>] [FOR <条件>] [WHILE <条件>]
LIST STRUCTURE和DISPLAY STRUCTURE命令的区 别 DISPLAY STRUCTURE在每显示一屏信息后暂停,等 待用户按任意一键后继续显示; LIST STRUCTURE显示信息时没有周期性暂停,而是 连续向下显示,直到显示完毕。 显示Student表的结构
USE Student LIST STRUCTURE
第三章 数据库与表的创建及使用
3.3.3 字段属性与表属性
(3)字段的标题(Caption):在浏览窗口中,列表头显示的内
容。 (4)字段的注释(Comment):用来明确地表达列的含义。
(5)字段有效性规则:用来控制输入到字段中的数据的取值范
围。该规则是一个逻辑表达式,且当前字段包含在该表达式中 。在字段值改变时发生作用,它将所输入的值用所定义的逻辑
3
3.1.1 数据库的设计过程
1. 分析数据需求
数据需求分析的目标是对现实世界中要处理的对象进 行详细调查,并在了解整个系统概况、确定新系统功能 的过程中,收集支持系统目标的信息。
2. 确定需要的表
表是存储数据的容器,也是数据库的主要管理对象。 一个应用系统中,往往需要管理各方面的数据。例:
教师表 课程表 学生表 系代码表
11
3.1.3 数据字典
数据字典用来存储元数据的,可以创建和指定的内容: 表的主索引关键字 数据库表的永久性关系 长表名和表注释 字段级和记录级有效性规则
存储过程
插入、更新和删除事件的触发器
12
3.2 数据库的创建、打开与使用
本节重点: 数据库的创建方法? 数据库的打开和关闭方法? 数据库的删除方法?
5. 空值支持(NULL)
决定字段是否支持空值。
6. 备注型和通用型
只要表中有这一个这两种类型中的字段,在创建表结构时系统会 自动生成和管理一个相应的备注文件,用于存储备注及通用字段内 容。备注文件的文件名与表文件名相同,其扩展名为.fpt。 21
3.3.2 表结构的创建和修改
1. 表结构的创建 表结构的创建有两种方法: (1)利用“表设计器” 在项目管理器中,选择“自由表”,单击“新建”按钮,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程表
学生表
教师 任课表
学习 成绩表
专业表
数据库中概念的结构图
自由表 记录 库表
数据 世界
记录 „ „ 记录
字段
„„
字段
数 据 库
„ „
库表
现实 世界 相关联的实 体集的组合
实体集
实体
属性
3.2 设计数据库的过程
确定数据库的目的 确定需要的表 确定所需字段
确定表之间的关系
改进设计
3.2.4 确定表之间的关系
二、库表之间的永久关系
1、概念
永久关系是永久保存在数据库中的库表之间的 一种关系。永久关系靠索引建立。
2、永久关系的作用
在“查询设计器”和“视图设计器”中,自 动作为默认联接条件。 作为表单和报表的默认的临时关系,在“数 据环境设计器”中显示。 用来存储参照完整性信息。
二、库表之间的永久关系
数据字典可以创建和指定以下内容:
主关键字和候选索引关键字; 表单中使用的默认控件类; 数据库表之间的永久性关系; 字段的输入掩码和显示格式; 长表名和表中的长字段名; 字段级和记录级有效性规则; 表中字段的标题和注释; 存储过程; 表中字段的默认值; 插入、更新和删除事件的触发器。
何时检查字段级规则 – 字段值改变时。 – 进行字段级检查的情况有:
3.6 库表的表属性
长表名 记录的有效性规则 表的触发器 标题 注释
长表名的命名
命名规则 – 第一字符必须是字母、下划线或汉字
表长度规定 – 自由表----------最长10个字符 – 数据库表-------最长128个字符
3.5 库表字段的扩展属性
字段的显示格式 输入掩码 默认值 标题 注释 字段的验证规则
设置字段级规则
规则的作用: – 用来控制用户输入到字段中的信息类型,或 检查其他字段值的字段数据。 – 实现数据库数据的完整性和固有的商业规则。 – 用“有效性说明”作为出错信息。 何时实施约束
Trigger是建立在表上的表达式,当表中的任 何记录被指定的操作命令修改时发生。
“触发器”的设置 – 表设计器------―表属性”
• INSERT触发器 • UPDATA触发器 • DELETE触发器
3.6.4 库表的约束机制及其激活时机
实施机制
NULL 有效性 字段级规则 记录级规则 侯选/主索引 VALID 子句 触发器
3、永久关系的建立
确定两个具有一对多或一对一关系的表; 建立主表的主索引或候选索引; 如果是一对多关系,则在子表中以主表的外 关键字建立普通索引;如果是一对一关系, 则在子表中以与主表相同的关键字建立主索 引或候选索引。 从主表的主索引或候选索引到子表相关的索 引建立永久关系。
4、删除表间的永久关系
使用函数DBUSED(数据库名) 如果已打开,则函数返回值为.T.;否则函数返回值 为.F.
3.8 使用多个数据库
使用数据库中的表 关闭数据库
1、在项目管理器中关闭 2、用CLOSE DATABASES 命令关闭
(1)CLOSE DATABASES 关闭当前数据库和表。若没有当前数据库,则关闭 所有工作区内所有打开的自由表、索引和格式文 件,并选择工作区 1。 (2)CLOSE DATABASES ALL 关闭:所有打开的数据库和其中的表。 所有打开的自由表。 所有工作区内所有索引和格式文件。
选择主表工作区,使用如下命令解除临时关系:
SELECT XS SET RELATION TO 或者 SET RELATION OFF 三. 在关闭主表或子表时,临时关系也即 自动解除
3.3 创建数据库
3.3.1 创建方法
界面方式 命令方式 CREATE DATABASE [数据库名|?]
3.3.2数据库的组成
库表
库表之间的永久关系 视图(View) 存储过程
一、库表
数据库与数据库表之间的双向链接包括前链和
ห้องสมุดไป่ตู้
后链 库表的创建 库表的添加 库表的移去 方法一:界面方式 方法二:命令CREATE TABLE,ADD TABLE , REMOVE TABLE 删除后链:FREE TABLE 表文件名
数据不一致将造成子表产生孤立记录 即子表的某些记录的外部关键字的值在主表中 没有对应的值。
3.7.2 设置相关表的参照完整性
相关表之间的参照完整性规则是建立在
永久关系基础上的。 参照完整性规则被设置在主表或子表的 触发器中。 规则的代码保存在数据库的存储过程中。 使用“参照完整性”生成器来建立。
cType——指定cName的类型,是否为当前数
据库,或者当前数据库中的一个字段、表 或视图。下表列出了 cType 的允许值:
Ctype DATABASE FIELD TABLE VIEW 说明 cName cName cName cName 是当前数据库。 是当前数据库中的一个字段。 是当前数据库中的一个表。 是当前数据库中的一个视图。
约束,有效地实现了数据的完整性和一 致性。方便和简化了用户的数据维护。
3.8 使用多个数据库
打开多个数据库(与打开多个表的情况不一样)
设置当前数据库 1. 在常用工具栏中设置 2. 使用命令SET DATABASE TO 库文件名 测试当前数据库的文件名
使用函数DBC()
测试指定的数据库是否打开
临时关系: 主表的记录——>子表的主控索引 建立临时关系的方法: 1、在“数据工作期”窗口中建立 2、使用 SET RELATION 命令建立: SET RELATION TO 关系表达式 INTO 区号|别名
3.10.3 解除表之间的临时关系
一. 在“数据工作期”窗口中解除
二. 使用命令解除
临时关系与永久关系的联系:
无论建立临时关系还是永久关系,都必须
明确建立关系的两个表之间确实在客观上 存在着一种关系(一对多或一对一关系)。 永久关系在许多场合可以用来作为默认的 临时关系。
3.10.2 建立表之间的临时关系
建立临时关系要明确几个要素: 主表、子表、子表的主控索引以及关系表达式。
3.9.1 DBGETPROP()函数
CProperty—指定属性名称,DBGETPROP( ) 函数返回该属性的信息。(参见教材P.71 表3-15)
3.9.2 DBSETPROP()函数
作用:设置当前数据库或者当前数据库中字 段、表或视图的属性。 语法: DBSETPROP(cName, cType,cProperty, eValue) 参数: eValue—指定 cProperty 的设定值, eValue 的数据类型必须和属性的数据类型相同。。
1:m
2、多对多关系
如果甲表中的任意一个记录在乙表中都有几个
记录与之对应,而乙表中的每个记录在甲表中 也有多个记录与之对应,则称甲乙两个表之间 存在多对多关系。
N:m
3、一对一关系
甲表的一个记录在乙表中只能对应一个记
录,而乙表中的一个记录在甲表中也只能 有一个记录与之对应。
1:1
教师表 一对多 任课表
临时关系与永久关系的区别:
临时关系是用来临时地控制相关表之间记录的
访问;而永久关系主要是用来存储相关表之间 的参照完整性。附带地可以作为默认的临时关 系或查询中默认的联接条件。 临时关系在表打开之后使用 SET RELATION 命 令创建,随表的关闭而解除;永久关系永久地 保存在数据库中而不必在每次使用表时重新创 建。 临时关系可以在自由表之间、库表之间或自由 表与库表之间建立;而永久关系只能建立在库 表之间。
课程表 一对多 一对多 成绩表 一对多
学生表 一对多 专业表
二、关系的存在方式
1、永久关系(persistent relationship)
永久关系是永久保存在数据库中的库表之间的 一种关系。
2、临时关系(temporary relationship)
临时关系是在打开的表之间用SET RELATION命 令建立的临时性关联。
第三章
数据库的创建和使用
3.1 VFP数据库
3.1.1 数据库的概念
定义: 数据库是一个包容器,用来组织和联 系表,它提供了存储数据的一种结构。 文件类型:DBC/DCT/DCX 内容: –表 – 表之间的永久关系 – 视图(本地、远程) – 存储过程
一个教学数据库管理系统的例子
教师表
3.9 查看或修改数据库的属性
3.9.1 DBGETPROP()函数
作用:返回当前数据库或者当前数据库中字 段、表或视图的属性。 语法: DBGETPROP(cName, cType, cProperty) 参数: cName——指定数据库、字段、表或视图的 名称。
3.9.1 DBGETPROP()函数
3.10 表之间的临时关系
3.10.1 临时关系
临时关系(temporary relationship)
是在打开的表之间用SET RELATION命令 建立的临时性关联。 建立了临时关系后,就会使得一个表 (子表)的记录指针自动随另一个表 (父表)的记录指针移动而移动。这样, 便允许当在关系中“一”方(或父表) 选择一个记录时,会自动去访问关系中 “多”方(或子表)的相关记录。
3.7.2 设置相关表的参照完整性
更新规则 删除规则 插入规则 当父表中的关键字 当父表中记录被删 当在子表中插入 值被修改时 除时 或更新记录时 级 联 限 制 忽 略 用新的关键字值 删除子表中所有相 更新子表中的所有 关记录 相关记录 若父表中不存在 若子表中有相关记 若子表中有相关记 匹配的关键字 录则禁止更新 录则禁止删除 值,则禁止插入 允许更新,不管子 允许删除,不管子 允许插入 表中的相关记录 表中的相关记录