VFP第三章表的创建和使用3.4-3.5 索引与常用函数

合集下载

VFP基础教程第三章VFP表的索引

VFP基础教程第三章VFP表的索引

3.5 表的索引
1. 基本概念
记录的顺序:
物理顺序:即表中记录的存储顺序。

⽤记录号表⽰。

逻辑顺序:表打开后被使⽤时记录的处理顺序。

索引:
指按表⽂件中某个关键字段或表达式建⽴记录的逻辑顺序。

它是由⼀系列记录号组成的⼀个列表,提供对数据的快速访问。

索引不改变表中记录的物理顺序。

表⽂件中的记录被修改或删除时,索引⽂件可⾃动更新。

索引关键字(索引表达式):⽤来建⽴索引的⼀个字段或字段表达式。

注意:1)⽤多个字段建⽴索引表达式时,表达式的计算结果将影响索引的结果;
2)不同类型字段构成⼀个表达式时,必须转换数据类型。

索引标识(索引名):
即索引关键字的名称。

必须以下划线、字母或汉字开头,且不可超过10个字。

索引类型:主索引、候选索引、普通索引、索引。

主索引:
组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。

主索引只适⽤于数据库表的结构复合索引中。

⾃由表中不可以建⽴主索引;数据库中的每个表可以且只能建⽴⼀个主索引。

候选索引:
在指定的关键字段或表达式中不允许有重复值的索引。

在数据库表和⾃由表中均可为每个表建⽴多个候选索引。

普通索引:
也可以决定记录的处理顺序,但是允许字段中出现重复值。

在⼀个表中可以加⼊多个普通索引。

索引:
参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第⼀个。

VFP第3章数据库与表的创建及使用PPT课件

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表的创建和使用

vfp表的创建和使用
江苏省普通高校计算机等级考试教程
Visual FoxPro
讲授 钟 丹
第 三 章
表的创建和使用 一
一、表 的 创 建
对于关系数据库来说,数据全部是以二维表的形 式保存的,VFP的表分为:数据库表和自由表
表的概念: VFP中的表是指存储在磁盘文件中的一 张二维表。一张表保存为一个表文件(.dbf)表有时 也称数据表。表文件的文件名必须遵守VFP系统命名 的规则外,不可用A-J中的单个字母名做文件名 表中的列称为字段(Field),字段规定了数据的特征, 每张表最多可以有255个字段 表中的行称为记录(Record),每一条记录表示一个 实体,记录是多个字段的集合
1. 2. 生成一张新表,与原表的区别仅在于记录的物理顺序 生成一张逻辑顺序与原表物理顺序的对照表,称为索引法


索引法的优点:P96 三点,这也是我们在关系数据 库中普遍采用索引法的原因
1. 索引概述
1. 索引定义(index):索引是根据索引关键字(即索引表
达式)的值进行逻辑排序的一组指针,它提供了对数据的快 速访问,且可以对表中的各条记录强制实现唯一性。索引文 件由索引序号和对应于索引序号的表的记录号(记录指针) 组成
修改:
1. 2. 1. 2. 用“表设计器”进行修改 用命令index on重新建立同标识名的索引覆盖前面的索引 用“表设计器”删除 用DELETE TAG 索引名1,名2…或DELETE TAG ALL
删除:

利用索引快速定位记录:
Seek 指定表达式值 [order 索引名[ascending|descending]][in 工作 区号|工作区别名]
表的独占和共享 (默认为独占方式)

VFP第3章 数据库和数据表的基本操作

VFP第3章 数据库和数据表的基本操作

第3章 数据库和数据表 的基本操作
3.3 Visual FoxPro中的数据表
3.3.1 数据表的概念
1.数据库与表的关系 数据表是存储记录数据的文件,是关系型数据库管 理系统中处理数据的基本单元 数据表是由一组相关的数据按行和列排列的二维表 格。表文件扩展名为.DBF。类型: 自由表:不包含于任何数据库 数据库表:包含于某个数据库(两者关系) 相关概念:字段,字段名,记录,数据库(.DBC) 2.字段的命名(P57) 3.字段的数据类型(P57)
create可任意定义为数据库表或自由表若当前某数据库为打开状态则创建的为数据库表否则为自由表创建表的结构创建表的结构数据库和数据表的基本操作创建表结构的几点说明字段名以字母或汉字开头由字母数字下划线和汉字组成字段类型根据具体情况而定字段值与字段类型要匹配若为字段添加索引在索引列中选择一种排序方字段的null列有一个钩表示该字段可以接受null值数据库和数据表的基本操作在项目管理器的数据选项卡中打开数据库选择数据库下的表单击添加添加为数据库表选择自由表单击添加添加为自由表要添加的表必须具备下列条件该表是一个有效的
第3章 数据库和数据表 的基本操作
2.程序操作方式 程序执行方式就是将一系列的语句或命令存储在 一个文件中而成为一个程序文件(.PRG),通过运行 该程序文件,完成某些特殊的功能。程序操作方式 不仅运行效率高,而且可重复执行。 可见,交互式操作方法虽然方便、灵活,但是 当用户需要反复执行某些相同的命令序列,或处理 较复杂的问题时就不能发挥计算机高速度、自动化 运行的优势。为此,Visual FoxPro提供了程序执行 方式来解决该问题。
第3章 数据库和数据表 的基本操作
3.2 Visual FoxPro中的数据库

vfp数据库与表的创建及使用

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]

省VFP等级考试纲要4__表的创建和使用

省VFP等级考试纲要4__表的创建和使用
注:同一张表多次打开时,以第一次打开的方式为准。
关闭表
1.界面操作 2.命令操作 关闭当前工作区中的表 关闭非当前工作区中的表 关闭所有工作区中的表 退出系统时,自动关闭表
*利用数据缓冲访问表中的数据
1.数据缓冲: 2.数据缓冲的类型 记录缓冲、表缓冲 锁定方式 保守式、开放式 3.设置表的数据缓冲 界面方式:“工作区属性”对话框 命令方式:CURSORSETPROP()函数 CURSORSETPROP(’BUFFERING’,缓冲类型值,[工作区])
3.当前工作区:正在使用的工作区,默认工作区 SELECT()测试当前工作区的区号 改变当前工作区 1.数据工作期 2.使用命令 SELECT n 对非当前工作区的表进行操作 1.改变当前工作区 2.在命令中强行指定工作区
打开表
1.通过界面操作 文件菜单、数据工作期、USE 2.使用命令

USE 表名 IN 工作区

2. seek()函数

seek ()函数等价于先执行seek命令,再执行 found() 函数.
3. Locate 命令★
Use xs
Locate for xm=“小平”
Display / ?Recno()
&&无需索引
Continue 人
&&继续查找下一个叫“小平”的
§3.5 建立表之间的临时关系
记录的删除
步骤: 1.标记要删除的记录(逻辑删除) 界面方式: 命令方式:DELETE FROM 表名[WHERE<条件>] 2.彻底删除记录(物理删除) 命令:PACK,ZAP 3.恢复带删除标记的记录 命令:RECALL
4.对带删除标记记录的访问

VFP基础教程第三章VFP表的使用

VFP基础教程第三章VFP表的使用

3.4 表的使⽤
1. ⼯作区
⼯作区:
指⽤来标识⼀张打开的表的区域。

⼀个⼯作区在某⼀时刻只能打开⼀张表,但可以同时在多个⼯作区打开多张表,⼀张可以在多个⼯作区中多次被打开。

每个⼯作区都有⼀个编号。

表的别名:
在⼯作区中打开表时为该表所定义的名称。

可以⾃定义别名,否则系统默认就以表名作为别名。

若⼀张表在多个⼯作区中被打开,系统默认在表名后依次加_a 、_b…。

⾃定义别名的格式: USE ALIAS
当前⼯作区:
正在使⽤的⼯作区。

可以通过“数据⼯作期窗⼝”或⽤ SELECT命令把任何⼀个⼯作区设置为当前⼯作区。

SELECT 命令格式: SELECT |
要操作⾮当前⼯作区中的表,可以把其它⼯作区选为当前⼯作区,或在命令中强⾏指定⼯作区。

命令格式: IN |
ALIAS([⼯作区号])函数:
测试指定⼯作区中的表的别名,⽆参数时指当前⼯作区表的别名。

SELECT([别名])函数:
测试指定别名的表所在的⼯作区号,⽆参数时指当前⼯作区的区号。

2. 表的打开和关闭
打开表的途径
关闭表的途径
⽂件菜单中的打开
⼯具栏上的打开
数据⼯作期窗⼝中关闭
USE
数据⼯作期窗⼝中打开
USE
USE IN |
CLOSE ALL
USE IN
USE AGAIN
CLOSE DATABASE
CLOSE TABLE
USE ALIAS
退出VFP系统,则关闭所有的表。

VFP第三章课件2(索引)

VFP第三章课件2(索引)

建立独立复合索引文件
[格式]INDEX ON〈索引关键字表达式〉 TAG〈索引标记名〉OF <.CDX文件名> [功能]创建独立复合索引文件及其中的索引。 说明:ON〈索引关键字表达式〉指定按表达 式建立索引,TAG指定索引标记名,OF <.CDX 文件名>指定索引建立在给出的独立复合索引 文件中。 若磁盘中没有给出的<.CDX文件名>则建立该 文件名的独立复合索引文件;若磁盘中已有该 独立复合索引文件,则打开该文件添加索引。
• • •
建立结构复合索引文件-命令方式 建立结构复合索引文件-
• 如USE d:\vfp课件\data\rsgz.dbf EXCLUSIVE
index on 基本工资 tag jbgz for 基本工资>730
• 该命令可以为结构复合索引文件增加主索引,
也可以使用下面命令增加主索引。 *[格式]ALTER TABLE〈数据表文件名〉ADD PRIMARY KEY〈主关键字〉TAG〈索引标记名〉 [功能]为结构复合索引文件增加主索引。 如ALTER TABLE d:\vfp课件\data\rsgz.dbf ADD PRIMARY KEY 编号 TAG BH3
建立独立复合索引文件
•USE d:\vfp课件
例如:
•index on 编号 tag bh of rs.cdx •index on 性别+dtoc(工作日期)
tag xbgzrq of rs.cdx
\data\rsda.dbf EXCLUSIVE
*5. 建立单入口索引文件
单入口索引文件中只能建立一个索引,可 以建立普通索引和唯一索引,只能用命令方式 建立单入口索引文件,扩展名为.IDX [格式]INDEX ON〈索引关键字表达式〉TO 〈文件名.IDX〉[FOR〈条件表达式〉] [COMPACT][UNIQUE][ADTIVITE] 说明:一个表可以为之建立多个单入口索引 文件,[COMPACT]创建压缩的单入口索引 文件,复合索引文件都是压缩的,FoxBASE兼 容非压缩单入口索引文件。

第三章VFP基础

第三章VFP基础

3.5.1数值函数
8. 四舍五入函数 【格式】 ROUND(<数值型表达式>,<小数保留位数>) 【功能】 计算数值型表达式的值,根据小数保留位数进 行四舍五入,当小数保留位数为n(≥0)时,则对小数 点后第n+1位四舍五入;当小数保留位数为负数n时, 则对小数点前第|n|位四舍五入。 例: ?ROUND(53.6279,2) 结果为:53.63 ?ROUND(53.6279,0) 结果为:54 ?ROUND(8375.62,-2) 结果为:8400
VFP程序设计实用教程课件
11
3.4.2 表达式
4.日期、日期时间表达式 参与量:算术表达式,日期型常量、内存变量、 字段变量和函数构成。 运算符:+、- (算术运算符) 结果: D型 + N型 ——》D型 T型 + N型 ——》T型 D型 - N型 ——》D型 T型 - N型 ——》T型 D型 - D型 ——》N型 T型 - T型 ——》N型 例: ? Ctod(―06/19/02‖)+10 输出结果为:06/29/02 && 10天后的日期 ?ctod(―10/25/96‖)-ctod(‖10/10/96‖) 输出结果为:15 && 两个日期间相差的天数
VFP程序设计实用教程课件 12
3.4.2 表达式
5.逻辑表达式(首先掌握逻辑运算真值表) 参与量:由关系型表达式、逻辑型常量、内存变量、字 段变量、函数构成。 运算符:.AND.(逻辑与)、.OR.(逻辑或)、 .NOT.或 !(逻辑非) 运算顺序: 括号、非! 、与(且) .AND. 、或.OR. 结果:逻辑值 .T.(真)或.F.(假) 例: 设 X=34,Y=23 ? x>2.or.y<120 结果 .T. ? x>12.and.x<100 结果 .T. ? !X>0.AND.Y=22 结果 .F.

vfp第3章数据表的建立和使用

vfp第3章数据表的建立和使用
表中的一行为记录(Record) 表中的一列为字段(Field)
5
Page 44
数据表的建立和使用
3.1.1 表结构的设计 3.1.2 表结构的创建 3.1.3 表结构的修改 3.1.4 表结构的其它操作 3.1.5 表记录的输入
6
Page 44
3.1 数据表的建立
3.1.1 表结构的设计
定义字段名称 选择数据类型 确定字段宽度 指定小数位数 建立索引 确定是否允许空值
【操作步骤】
第1步:打开表设计器
(1)项目管理器方式
(2)菜单方式
(3)Create [?|文件名]
第2步:创建表结构
第3步:完成
15
Page 45
3.1 数据表的建立
3.1.2 表结构的创建
第1步:打开表设计器 (1)项目管理器方式
16
Page 46
3.1 数据表的建立
3.1.2 表结构的创建
3.1.2 表结构的创建
【例3-1】利用表设计器创建教师表(js.dbf) 结构。
字段名 gh xm xb csrq gzsj
zcmc jbgz xybh
jl zp
类型 C C C D D C N C M G
宽度 6 8 2 8 8 12 7,2 2 4 4
NULL值 否 是 是 是 是 是 是 是 是 是
实际长度:48+1
7
Page 44
3.1 数据表的建立
3.1.1 表结构的设计
字段名xs_(nFaimeel、d 基N本am工e资)、07专业、所在院
见名知义,不能同名 字段系名名的称命名规则
▪ 名称中只能包含字母、下划线“_”、数字符号和汉字 ▪ 名称的开头只能是字母或汉字,不能是数字或下划线“_” ▪ 自由表的字段名、表的索引标识名至多只能10个字符(即:

vfp第三章

vfp第三章

允许重复,即在普通索引上查找的记录不具有唯一 性。对一张数据表可以创建多个普通索引。
25
2013年春
VFP程序设计
索引文件存放哪些索引? • 结构复合索引文件:表的主索引和候选索 引必须存放在其中,同时将索引的属性存储 在数据库中。因为这两种索引必须和表同时 打开。 • 唯一索引和普通索引可以存储在这两种索 引文件之中。
22
2013年春
VFP程序设计
• 非结构复合索引文件(Compound Index)
非结构复合索引文件将一张表的一个或多个索引的 索引信息存储在一个索引文件中,扩展名为.CDX,但 其文件名与表名不同,且不会自动随表的打开而打开, 只有用打开索引文件命令将其打开,才能起作用。
• 独立索引文件(Independent Index File)单索引文件
2
2013年春
VFP程序设计
3.1 自由表的创建(.dbf)
1、设计表结构 一个数据表由数据表名、数据表的结构、数据表 的记录三要素构成。表的结构:定义数据表中的字 段个数、各个字段的名称、属性、类型、宽度。 定义数据表的结构需注意的问题:
• 数据表名及字段类型的设置(N、I、C、D、L、 M、G、T、Y、),可以是汉字、英文字母、数 字与下划线,数字与下划线不能是第一个字符。 • 小数点和正负号在字段宽度中各占一位
可用作主关键字的索引,不允许有重复值的索引。即 主索引的“候选项”。候选索引可用于数据库表和自 由表,并且一张表中可以建立多个候选索引。
24
2013年春
VFP程序设计
• 唯一索引(Unique Index) 允许出现重复值,但索引文件入口值是唯一的,尽 量少使用唯一索引。 • 普通索引(Regular Index)

VFP第三章表的创建和使用3.4-3.5索引与常用函数

VFP第三章表的创建和使用3.4-3.5索引与常用函数

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对于基于多个字段的索引表达式,可以按多个字段的值进行排序。

用多个字段建立索引表达式时,要注意以下几点。

⒈字符型表达式⒉算术表达式⒊不同类型字段构成一个表达式⒈字符型表达式⒈表达式中字段的前后顺序将影响索引的结果。

VFP基础教程-表的创建和使用

VFP基础教程-表的创建和使用

3.1 VFP6.0表1. 表的概念表(数据表):是指存放在磁盘文件中的一张二维表。

(相当FoxPro 2.x 版本中的数据库)自由表:不属于任何数据库的表。

数据库表:包含在一个数据库中的表。

表文件名:表名可以由字母、数字或下划线组成,系统自动给出的扩展名为 .DBF。

备注文件名:当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:.FP T的文件名。

表结构:存储表记录的公共结构。

(就是指一张表的表头结构,即字段的属性)。

记录:表中的一行。

它是多个字段的集合,同一张表的每个记录都有相同的字段。

字段:表中的一列。

它规定了数据的特征。

关系型数据表的特点:(1)每一个字段不可再分解,也不能有名字相同的字段;(2)每一列中的数据都有相同的数据类型;(3)表中没有内容完全相同的行(记录)。

2. 字段的基本属性字段的属性:包括:字段名、数据类型、字段宽度、小数位数、空值支持字段名:即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别,但其中不许有空格或其它字符。

自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。

如果从数据库中移去一个表,那么此表的长字段名将被截短成 10 个字符。

VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。

数据类型:指该字段的数据特征。

字段宽度:指该字段所能容纳数据的的最大字节数。

小数位数:指数值型数据将保留几位小数。

此时的字段宽度 = 整数位数+1+小数位数。

NULL 值(空值):无明确的值。

NULL 值不等同于零或空格。

一个 NULL 值不能认为比某个值(包括另一个 N ULL 值)大或小,相等或不同。

VFP 6.0表中字段的数据类型字段类型代号说明字段宽度使用示例字符型 C 字母、汉字和数字型文本每个字符为1个字节,最多可有 254个字符学生的学号或姓名, "8199101" 或 '李立'货币型Y 货币单位8 个字节工资, $1246.89日期型 D 包含有年、月和日的数据8 个字节出生日期,{^1980/07/08}日期时间型T 包含有年、月、日、时、分、秒的数据8 个字节上班时间,{^2005/02/20 9:15:15 AM}逻辑型L “真”或“假”的布尔值1 个字节课程是否为必修课,.T. 或 .F.数值型N 整数或小数在内存中占 8 个字节;在表中占1至20个字节考试成绩, 83.5双精度型 B 双精度浮点数8 个字节实验要求的高精度数据浮点型 F 与数值型一样整型I 不带小数点的数值 4 个字节学生的数量通用型G OLE 对象在表中占 4 个字节图片或声音备注型M 不定长度的一段文字在表中占 4 个字节学生简历字符型(二进制) C 任意不经过代码页修改而维护的字符数据每个字符用1个字节,最多可有 254个字符备注型(二进制)M 任意不经过代码页修改而维护的备注数据在表中占 4 个字节3. 表的基本操作表的创建:设计表名和表结构、输入记录、建立索引数据维护:增加记录、修改记录、删除记录创建表的主要步骤:设计表结构→ 输入记录→建立索引→数据维护4.关于表操作的几个基本命令命令格式功能CREATE表文件名创建一个新的自由表的结构USE表文件名打开指定的表文件USE关闭当前表文件LIST ALL显示当前表的全部记录内容(类似于DOS 命令中的dir)DISPLAY ALL分屏式地显示当前表的全部记录内容(类似于DOS中的dir/p)DISPLAY STRUCTURE显示当前表的结构(分屏显示)LIST STRUCTURE显示当前表的结构(不分屏显示)MODIFY STRUCTURE调出表设计器,修改当前表的结构。

VFP数据库系统Visual FoxPro数据库与表的基本操作

VFP数据库系统Visual FoxPro数据库与表的基本操作

3.2.3 定位记录
打开表“jsqk.dbf”,进入表“浏览”窗口。 在表“浏览”窗口,打开“表”菜单,选择“转到记录
”子菜单 第一个 把指针放置在表或视图的第一个记录上。 最后一个 把指针放置在表或视图的最后一个记录上。 下一个 把指针放置在紧跟当前记录之后的记录上。 上一个 把指针放置在当前记录的上一个记录上。 记录号 显示“转到记录”对话框,从中可以指定一
3.2.6 筛选记录
可以在表中设置一个过滤器来定制自己的表, 有选择地显示某些记录。还可以通过设置字段过 滤器,对表中的某些字段的访问进行限制,这样 可以有选择地显示需要的字段。
打开表 进 入表“浏览 ”窗口。从 “表”菜单 上选中“属 性”
选择“数据过滤器”边上按钮,进入“表达式生成 器”窗口,在“表达式生成器”窗口中输入条件 (jsqk.zc=“教授”)
REST,
代表其余,可对某一范围的记录起作 用,作用范围从当前记录开始,到表 或视图的最后一条记录为止。
FOR、WHILE文本 框用于显示“表达式 生成器”对话框。
WHILE 表达式指定 仅当该逻辑表达式为 “真”时,操作影响 记录。一旦表达式取 值为“假”,操作即 停止而不考虑其余记 录。
3.2.4 修改记录 打开要修改记录的表,进入表“浏览”窗
2. 表结构的显示 功 能:显示出当前正在使用表文件的结构。 格式1: DISPLAY STRUCTURE [TO PRINTER | TO FILE <file>] 格式2: LIST STRUCTURE [TO PRINTER | TO FILE <file>]
其功能的格式1相同,只是LIST命令不能分屏显示。 而DISPLAY命令可以分屏显示。

第三章VFP数据库及其操作

第三章VFP数据库及其操作

2
3.1创建项目
在VFP中,项目是文件、数据、文档 和VFP对象的集合,它包含了一个应用系 统开发过程中使用的各种数据库、表、 查询、表单、报表、应用程序及它所有 文件。 扩展名:pjx
3
3.1创建项目
1、建立工作目录 set default to d:\vfp 2、建立项目文件 有两种方式: (1)菜单方式 (2)命令方式 格式:CREAT PROJECT [<项目文件名>] 练习:创建名为学生管理的项目文件.
28
3.3.6删除记录
2.恢复逻辑删除的记录 (1)菜单方式 例:恢复学信息表中奖学金<200的记录.如下图:
(2)命令方式
RECALL <范围>[FOR<条件>][WHILE<条件>]
(3)鼠标方式
29
3.3.6删除记录
3.物理删除 (1)菜单方式 (2)命令方式 PACK 4.一次性删除记录 ZAP **记录删除,保留表结构 课堂练习: 把学生信息表中的所有记录彻底删除.
20
3.3.2
记录的定位
例:打开“学生信息”表,用LOCATE 命令定位所 有性别为女的学生记录。 USE D:\ZF\学生信息 LOCATE FOR 性别=“女” ?Found() &&显示结果为 .t. display cont disp
注: Found() 函数,如果找到满足条件 的记录,则函数返回值为真,否则为假。
•菜单方式选择字段:表—属性 例:查看学生信息表中学号、姓名字段。
17
3.3.1数据表的打开与浏览
• 命令方式选择字段:set fields to 字段列表 例:查看学生信息表中学号、姓名和性别三个 字段。 Set fields to 学号,姓名,性别 注意:取消字段的选择:Set fields to all

VFP第3章 数据库与表的创建及使用

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 数据字典
数据字典是指存储在数据库中用于描述所管理 的表和对象的数据,即关于数据的数据。这些数 据称为元数据。
每个数据库带有一个数据字典,其数据存储在 数据库文件中。 数据字典扩展了对数据的描述,从而增强了数 据管理和控制功能。 数据库中的表可以享受到数据字典的各种功能。 数据字典使得对数据库的设计和修改更加灵活。
表与数据库之间的双向链接
数据库文件 前链 前链 前链 前链
后 表文件 链
后 表文件 链
后 表文件 链
后 表文件 链
视图
视图是一张‚虚表‛,其数据来源于一张或多张 表。

最新VFP第3章数据库与表的创建及使用

最新VFP第3章数据库与表的创建及使用

[EXCLUSIVE|SHARED][NOUPDATE][VALIDATE]
打开多个数据库可重复进行数据库打开操作即可,系 统默认最后一个打开的数据库为当前数据库。
根据需要可用SET DATABASE TO命令将另一个被打 开的数据库设为当前数据库或在“常用”工具栏“数
据库”下拉列表中选择一个已打开的数据库作为当前
FILE FileName]
【注】 ①RECOVER用于说明更新链接,缺省时仅检查数据库的有效性 ②TO FILE用于说明检查结果信息的去向,缺省时在VFP主窗口 显示; ③VALIDATE DATABASE命令只能处理以独占方式打开的当前 数据库。
2020/10/24
9
3.关闭数据库
在项目管理器中选择要关闭的数据库后单击“关 闭”按钮;
主题,每个主题都将是数据库中的一个表。 确定所需字段,也就是将在表中保存的信息。 确定表之间的关系,形象而又直观地反映现实世
界中各实体间的真正关系。 改进设计、优化设计。
数据库的逻辑设计
2020/10/24
3
3.1 数据库概述
3.1.2 数据库的组成
1. 表(Table) 属于某一数据库的表称为“数据库表”。与自由
数据库设计器与“数据库”菜单
2020/10/24
7
3.2.2 数据库的打开与关闭
1. 打开数据库 →使用数据库前必须打开数据库
新建的数据库,保存后自动以独占方式打开;
打开数据库中的表,系统会自动打开相应的数据库;
在项目管理器中选择一个数据库并单击“修改”按钮 ;
OPEN DATABASE [DatabaseName]
VFP第3章数据库与表的创建及 使用
本章要点

第三章 数据库与表的创建及使用

第三章 数据库与表的创建及使用
25
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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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对于基于多个字段的索引表达式,可以按多个字段的值进行排序。

用多个字段建立索引表达式时,要注意以下几点。

⒈字符型表达式⒉算术表达式⒊不同类型字段构成一个表达式⒈字符型表达式⒈表达式中字段的前后顺序将影响索引的结果。

如“xs.ximing+xs.xb”和“xs.xb+xs.ximing”两个表达式的的索引顺序是不一样的,前者是先按“系名”排序,在系名的值相同的情况下,才按“性别”字段的值排序;而后者是先按“性别”字段的值排序。

INDEX ON XIMING + XB TAG XXBINDEX ON XB + XIMING TAG XBX⒉算术表达式索引将按照表达式的运算结果进行排序。

例如:按先按工龄排序,再按基本工资排序JS.GL + JS.JBGZ(错)STR(JS.GL)+STR(JS.JBGZ)STR(KSS)+STR(XF) P83⒊不同类型字段构成一个表达式不同类型字段构成一个表达式时,必须转换为同一类型。

例如:按照性别与工龄排序Xb+str(gl)若先按gzrq排序,相同时再按JBGZ排序,则索引表达式应为:DTOC(gzrq,1)+STR(jbgz)3.索引标识(Tag)一张表可以创建多个索引。

为了区分一张表的不同索引,每一个索引必须有一个索引名,即索引标识。

索引标识的命名必须满足命名规则。

在实际应用中,索引标识一般要与其对应的索引关键字相同或相近,以便于记忆。

例如:xh(xh字段的索引)、xdhxb(基于xdh和xb字段的索引)。

索引标识名但必须以下划线、字母或汉字开头,并且不能超过10个字节。

4. 索引的类型可以创建的索引有4种类型:主索引、候选索引、唯一索引和普通索引。

其中,主索引只能在数据库中创建。

(1).候选索引(Candidate Indexes)(2). 主索引(Primary Indexes)(3). 普通索引(Regular Indexes)(4). 唯一索引(Unique Indexes)(1).候选索引(Candidate Indexes)候选索引是以表的候选关键字为索引表达式而创建的索引。

候选索引要求:对于表的所有记录来说,指定的索引表达式的值不允许有重复的。

如果对有重复数据的字段进行候选索引,VFP将出错;如果对建立了候选索引的表,追加或修改记录,一旦出现重复的值,系统将拒绝输入或修改。

候选索引可用于数据库表和自由表。

一张表中可以建立多个候选索引。

例如,在课程表中用课程代号创建索引,再用课程名创建一个候选索引。

(2).主索引(Primary Indexes)在数据库表中,可以从候选索引中选取一个作为主索引。

每张数据库表只能创建一个主索引。

组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。

例如,学生表中的学号可以创建主索引,因为在每一张表中每一个学生记录的学号值是唯一的。

而学生姓名则不能建立主索引,可能有同名的学生,若建立了主索引,一旦出现同名的学生数据输入,则系统拒绝接收其数据输入。

自由表不能建立主索引。

主索引只适用于数据库表的结构复合索引中。

(3).普通索引(Regular Indexes)可以决定记录的处理顺序,但是允许关键字段或表达式的值可以出现重复。

对一个表可以创建多个普通索引。

在普通索引上查找的记录不具有唯一性。

例如,对教师表按XM字段创建普通索引,也可以按工龄创建普通索引,在工龄索引中同一个工龄值可能出现若干次(因为不能排除工龄相同的可能性)。

(4).唯一索引(Unique Indexes)对于唯一索引来说,索引表达式的值可以有重复,但在索引文件中重复的值(记录号)仅存储一次。

例如,对教师表建立以系名作为关键字段的唯一索引,在此索引上浏览教师表时,仅显示每个系的第一个教师。

2. 用命令创建复合索引对当前工作区中打开的表,可用INDEX命令创建表的索引语法:INDEX ON 索引表达式TAG 索引标识名[FOR 条件表达式][ASCENDING | DESCENDING][UNIQUE | CANDIDATE]参数:ON 索引表达式——创建一个关键字段表达式。

TAG 索引标识名——指定索引的标识名。

FOR 条件表达式——指定参加索引的表中记录的条件表达式,默认为表中所有记录参加索引。

ASCENDING | DESCENDING——指定索引按升序(ASCENDING)或降序(DESCENDING)排列。

在默认清况下,按升序排序。

CANDIDATE和UNIQUE——指定索引类型为候选索引还是唯一索引,缺省时为普通索引。

例如,如下命令以XS表的XH字段作为关键字段为XS表创建结构复合索INDEX ON xh TAG xh创建结构复合索引需注意的问题1.不能对备注型字段和通用型字段建立索引。

2.不要建立无用的索引,多余的索引将降低系统的性能。

例如:SET ORDER TO XH3.4.6 利用索引快速定位记录表建立了索引后,可以基于索引关键字,使用SEEK命令进行记录的快速定位。

SEEK 命令用于在一个表中搜索指定表达式的值首次出现的记录,这个记录的索引关键字必须与指定的表达式匹配。

语法格式:SEEK 表达式[ORDER 索引名[ASCENDING|DESCENDING]] [IN 工作区|别名]其中,表达式用于指定SEEK搜索的索引关键字。

SEEK命令只能在索引过的表中使用,并且只能搜索索引关键字。

例23,在XS表中要定位到学号为960102的记录上,则当前主控索引的索引关键字必须是XH或是以XH开头。

USE xs ORDER TAG xhSEEK "960102"如果SEEK找到了与索引关键字相匹配的记录,则RECNO()函数返回匹配记录的记录号;FOUND()函数返回“真”(.T.);EOF()函数返回“假”(.F.)。

如果找不到相匹配的关键字,则RECNO()将返回表中记录的个数加1;FOUND()返回“假”(.F.);EOF()返回“真”(.T.)。

3.5 有关表操作的常用函数在对表操作过程中,除了前面已介绍到的一些常用函数,如BOF()、EOF()、RECNO()、FOUND()等,还有以下一些函数:⒈SELECT()函数⒉USED()函数⒊ALIAS()函数⒋FIELD()函数⒌FCOUNT()函数⒈SELECT()函数SELECT()函数用来测试工作区号。

该函数的基本语法:SELECT([0|1|cTableAlias])其中,参数0用于返回当前工作区号;1用于返回当前未被使用的最大工作区号;别名cTableAlias用于返回该表所在的工作区号,使用时别名必须加引号⒉USED()函数USED( )函数用于测试一张表的别名是否已被使用,或在指定的工作区中是否有表打开。

语法如下:USED([nWorkArea|cTableAlias])其中,工作区号与别名缺省时,表示当前工作区。

别名cTableAlias使用时别名必须加引号⒊ALIAS()函数ALIAS()函数用于返回当前或指定工作区中表的别名。

该函数的基本语法:ALIAS([nWorkArea])其中,工作区号缺省时表示当前工作区。

⒋FIELD()函数FIELD()函数用于返回已打开表的指定序号的字段名。

语法格式是:FIELD(nFieldNumber[,工作区|别名])其中,字段序号nFieldNumber是指表结构建立时的字段顺序号,第一个字段的序号为1;工作区号与别名缺省时,表示当前工作区。

⒌FCOUNT()函数FCOUNT()函数用于返回已打开表的字段个数。

语法格式是:FCOUNT(nWorkArea[,cTableAlias])其中,工作区号与别名缺省时,表示当前工作区中的表。

相关文档
最新文档