表的基本操作
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【功能】显示当前表的记录内容,以供编辑修改。 【说明】编辑结束后,按Ctrl+W或Ctrl+End存盘退出BROWSE编辑窗口,或 者按Ctrl+Q或Esc键放弃存盘退出BROWSE窗口。
替换修改
【格式】REPLACE <字段名1> WITH <表达式1> [ADDITIVE][, < 字 段 名 2> WITH < 表 达 式 2> [ADDITIVE]] ... [<范围>][FOR <逻辑表达式1>] [WHILE <逻辑表达式2>] [NOOPTIMIZE]
USE STUD COUNT FOR 性别="男" TO A COUNT TO B
求和、平均值 【格式】SUM|AVERAGE [<表达式表>] [<范围>] [FOR <条件>] [WHILE <条件>] [TO <内存变量表 > | TO ARRAY <数组>]
数据库表的永久性关联 1、为数据库表建立索引 为了建立表之间的永久关联,需要为数据库表建 立索引。 2、建立表之间的永久联系 表之间的永久联系在数据库设计器中显示为表索 引之间的连接线。在数据库的两个表间建立永久 联系时,要求两个表的索引中至少有一个是主索 引。
3、设置参照完整性
数据的显示和修改方式
【 格 式 】RECALL [< 范 围 >] [FOR < 条 件 >] [WHILE <条件>][NOOPTIMIZE]
【功能】将当前表文件中指定范围内满足条件的已 【例】恢复STUD.DBF中删除的所有记录。 作删除标记“*”的记录恢复,即去掉这些删除记录 USE STUD 的删除标记,使之成为正常记录。 RECALL ALL 【说明】RECALL命令与DELETE命令相对应,它可 以去掉被逻辑删除记录的删除标记“*”。
CONTINUE命令:LOCATE找到第一条满足条件的记录后, 可以用CONTINUE继续查找下一个满足条件的记录。 注:CONTINUE命令必须在LOCATE命令之后使用,否则出错。 在CONTINUE命令中实际隐含了前一个LOCATE命令中的条件。 【例】在STUD.DBF中查找学号前四位为0111的同学记录。 USE STUD LOCATE FOR 学号="0111"
数据表中记录的定位
记录指针的定位 记录号:用于标识数据记录在表文件中的物理顺序。 记录指针:是一个指示器,它始终指向当前表中正在操作 处理的那条记录,此记录被称为当前记录。如果要对某条记 录进行处理,必须移动记录指针,使其指向该记录。在任意 时刻指针只能指向唯一的一条记录。 记录指针定位有绝对定位、相对定位。在这里暂时只讲前 二种,查询定位在讲到查询时再详细介绍。
什么是索引
索引是按着索引表达式的值使数据表中的记录有序排列的一种技术, 在Visual FoxPro系统中是借助于索引文件实现的。 一般情况下,表中记录的顺序是由数据输入的前后顺序决定的,并 用记录号予以标识。除非有记录插入或者有记录删除,否则表中的记录 顺序总是不变的。 当用户有不同需求时,为了加快数据的检索、显示、查询和打印速 度,需要对文件中的记录顺序重新组织,而索引技术则是实现这些目的 的最为可行的办法。索引技术除可以重新排列数据顺序外,还可以建立 同一数据库内数据表间的关联。而且SQL查询语言必须靠索引技术来支 持。
1.绝对定位
绝对定位是将记录指针定位到指定记录。命令格式是:
[GO[TO]] <记录号>|TOP|BOTTOM
命令中记录号的取值范围是1至当前表中的最大记录个 数,即函数RECCOUNT()的值,否则出错。TOP和 BOTTOM分别表示表的首、末记录。
2.相对定位 【格式1】SKIP [<数值表达式1>] [IN <数值表达式2> | <字符表达式>]
对表记录的查询系统提供了两类查询命令: 顺序查询和索引查询。 顺序查询 1.命令方式 【格式】LOCATE FOR<逻辑表达式1>[<范 围>][WHILE <逻辑表达2>]
【功能】在表指定范围中查找满足条件的记录。 【说明】LOCATE 命令在表指定范围中查找满足条件的第一 条记录。 <逻辑表达式1>:表示所需满足的条件。 <范围>:指定查找范围,缺省时为ALL,即在整个表文件 中查找。 找到第一条满足条件的记录后,记录指针指向该记录, 并将函数FOUND()(用于检测是否找到满足条件的记录) 置为.T.;否则,记录指针指向<范围>的底部或文件结束标 志,并且将函数FOUND()置为.F,并在状态栏给出提示信 息“已到定位范围末尾”。
TOP:将记录指针移动到表文件的首记录。 BOTTOM:将记录指针动到表文件的最后一条记录。
注:相对定位与是否打开索引文件有关。如果打 开有索引,记录指针按索引文件中顺序移动。否 则按表文件中物理顺序移动。
删除和恢复表中的数据
逻辑删除就是给指定的记录作删除标记“*”。
1.逻辑删除表中的记录 表记录的删除也是表维护的一项经常性的工作,因为删除意
索引类型
Visual FoxPro系统提供了四种不同的索引类型,它们分别是:主 索引、候选索引、普通索引和唯一索引。
Baidu Nhomakorabea
1.主索引
在数据库容器中的数据表可以建立主索引(Primary Index)。索引 表达式的值是唯一能够标识每个记录处理顺序的值。因此,一个数据表 只能建一个主索引。 主要用于持久性的主数据表中或者建立参照完整性的被引用表中。
2.候选索引
候选索引(Candidate Index) 像主索引一样,它的索引表达式的值 是唯一能够标识每个记录处理顺序的值。但是,一个数据表可以建立 多个候选索引,它在特定环境下可以视为主索引。如果一个表中已有 主索引,则只能建立候选索引。
3.普通索引
普通索引(Regular Index)表示把由索引表达式为每个记录产生 的值,存入索引文件中。如果多个记录的索引表达式值相同,则可以 重复存储,并用独立的指针指向各个记录。
着数据的消失,所以对记录的删除操作比较慎重,删除可分 【格式】DELETE [<范围>] [FOR <条件>] [WHILE <条件>] 逻辑删除和物理删除两种操作。逻辑删除还可以恢复,而物
【功能】对当前表中指定范围内满足条件的记录作删除标记 “*”。 删除则不可恢复。
恢复逻辑删除是将被逻辑删除的记录恢复为正 常记录。即去掉“*”号。
【格式】LIST | DISPLAY [FIELDS <字段名表>][<范 围 >] [FOR< 条 件 表 达 式 >] [WHILE < 条 件 表 达 式 >][OFF][NOCONSOLE] [TO PRINTER [PROMPT] | TO FILE<文件名>]
<范围>:用来指定显示哪些记录。 【功能】将当前表文件的记录按照指定的选项进行显示。 注意:WHILE<条件表达式>若与FOR<条件表达式> “范围”有以下四种表示方法: 同时使用,则WHILE项优先;若两者都不选用,则 ● ALL:所有记录。 显示<范围>中指定的全部记录。 ● NEXT N:从当前记录开始,后面的N条记录(包括当前记录) ● RECORD N:第N条记录。 OFF:表示不显示记录号;若不选此项,则在各记 ● REST:当前记录后的全部记录(包括当前记录)。 录前显示记录号。 FOR<条件表达式>:指定对表文件中指定范围内满足条件的 记录进行 操作。 WHILE<条件表达式>:也是指定对表文件中指定范围内满足条件的记 录进行操作,但是,当第一次遇到不满足条件的记录时,停止继续往后 搜索
物理删除记录 物理删除是将当前表文件中被逻辑删除的记录全部清除。
【格式】PACK [MEMO][DBF]
【功能】将当前表文件中所有带删除标记(*)的记录全部真正 地删除掉。 【说明】若选用MEMO选项,PACK MEMO将压缩与表文件同 名的备注文件中的无用空间,但并不删除表文件中作了删除 标记的记录。 删除全部记录
建立表
数据库表、自由表 设计表的结构: (1)字段名 自由表中的字段名最多为10个字符, 数据库表中的字段名最多为128个字符。 (2)字段类型 哪些类型 (3)字段宽度 的宽度是 (4)小数位数 系统固定 (5)是否允许为空 的?
表的打开与关闭
USE [<表文件名 >| ?>][IN <工作区>|<别名>] [again][alias<别名>][exclusive][noupdate shared]
注意:最后一行显示出的记录字节数是所有 字段宽度之和再加1。这额外的一个字节是 用来存放记录的删除标记(*)的
向表中加入记录
1.创建表时立即输入数据(示例)
2.以追加方式输入数据 【格式】APPEND [BLANK]
自由表与数据库表的相互转换 一个自由表在数据库设计器中添加到数据库就成 为一个数据库表。在数据库环境下也可以直接建 立表,而且也可以对数据库中的表进行修改。
索引查询(FIND、SEEK) 1.FIND命令 【格式】FIND <字符串>/<数值常量>
2.SEEK命令 【格式】SEEK <表达式>
数据统计与计算 统计记录数 【格式】COUNT [<范围>] [FOR <逻辑表达 式1>] [WHILE <逻辑表达式2>] [TO <内 存变量>]
【功能】用于统计当前表中指定范围内满足条件的记录个数。 【说明】除非指定了<范围>或 FOR/WHILE <条件>,否则将 计算所有记录个数,如选择了 TO <内存变量>,则可将计 算结果保存在<内存变量>中,否则统计结果只在屏幕上显 示。 若选择了SET TALK OFF将不显示统计结果。 若 SET DELETE OFF,则加删除标志的记录将被计算。 【例】统计STUD.DBF中的男同学记录个数和表记录总数。
4.唯一索引
唯一索引(Unique Index)表示把由索引表达式为每个记录产生的唯 一值,存入索引文件中,如果数据表中记录的索引表达式值相同,则 只存储第一个索引表达式值。
命令格式: 1、index on <索引表达式> to <索引文件名> 2、index on <索引表达式> tag <标识名> 3、index on <索引表达式> tag <标识名> of <文件名> [Ascending]:按索引表达式升序 [Descending]:降序 [Unique]:建立唯一索引 [Candidate]:建立候选索引
【功能】用指定表达式的值替换当前表中满足条件记录的指定 字段的值。
表的复制
1.表结构的复制
【格式】COPY STRUCTURE TO <文件名> [FIELDS <字段名表>]
表文件的复制
【格式】COPY TO <文件名>[FIELDS <字段名表 >][<范围>] [FOR <逻辑表达式1>][WHILE <逻辑表 达式2>]
表的关闭(补充) (1)close all (2)close tables (3)close tables all
区别在哪?
利用表设计器修改表结构
利用表设计器定义修改数据表的结构,操作方法有二种。
方法一: 菜单操作 方法二: MODIFY STRUCTURE
显示表结构
【 格 式 】LIST | DISPLAY STRUCTURE [TO PRINT [PROMPT] | TO [FILE] [<文件名>]] 【功能】显示或打印当前表文件的结构。
【格式】ZAP
【功能】将当前打开的表文件中的所有记录完全删除掉。
编辑修改
【格式】EDIT / CHANGE [FIELDS <字段名表>] [< 范围>] [FOR <逻辑表达式1>] [WHILE <逻辑表达式 2>]
【功能】按照给定条件编辑修改当前打开的表文件的记录。 浏览修改
【格式】BROWSE [FIELDS <字段名表>] [FOR <逻辑 表达式1>]
【格式2】GO|GOTO <|TOP | BOTTOM> 【说明】<数值表达式1>:表示移动的记录个数。若数值表达式的值为负值, 【功能】记录指针从当前记录向前(或向后)移动若 表示向前移动记录;否则,表示向后移动记录。如果缺省此项,则表示向 后移动1个记录。 干个记录。 如果记录指针已经移过文件的最后一个记录,则RECNO() 【功能】将记录指针移动到表文件的首记录或 函数返回的 值等于文件中的记录总数加 1,EOF()函数返回逻辑真(.T.)值。 尾记录
替换修改
【格式】REPLACE <字段名1> WITH <表达式1> [ADDITIVE][, < 字 段 名 2> WITH < 表 达 式 2> [ADDITIVE]] ... [<范围>][FOR <逻辑表达式1>] [WHILE <逻辑表达式2>] [NOOPTIMIZE]
USE STUD COUNT FOR 性别="男" TO A COUNT TO B
求和、平均值 【格式】SUM|AVERAGE [<表达式表>] [<范围>] [FOR <条件>] [WHILE <条件>] [TO <内存变量表 > | TO ARRAY <数组>]
数据库表的永久性关联 1、为数据库表建立索引 为了建立表之间的永久关联,需要为数据库表建 立索引。 2、建立表之间的永久联系 表之间的永久联系在数据库设计器中显示为表索 引之间的连接线。在数据库的两个表间建立永久 联系时,要求两个表的索引中至少有一个是主索 引。
3、设置参照完整性
数据的显示和修改方式
【 格 式 】RECALL [< 范 围 >] [FOR < 条 件 >] [WHILE <条件>][NOOPTIMIZE]
【功能】将当前表文件中指定范围内满足条件的已 【例】恢复STUD.DBF中删除的所有记录。 作删除标记“*”的记录恢复,即去掉这些删除记录 USE STUD 的删除标记,使之成为正常记录。 RECALL ALL 【说明】RECALL命令与DELETE命令相对应,它可 以去掉被逻辑删除记录的删除标记“*”。
CONTINUE命令:LOCATE找到第一条满足条件的记录后, 可以用CONTINUE继续查找下一个满足条件的记录。 注:CONTINUE命令必须在LOCATE命令之后使用,否则出错。 在CONTINUE命令中实际隐含了前一个LOCATE命令中的条件。 【例】在STUD.DBF中查找学号前四位为0111的同学记录。 USE STUD LOCATE FOR 学号="0111"
数据表中记录的定位
记录指针的定位 记录号:用于标识数据记录在表文件中的物理顺序。 记录指针:是一个指示器,它始终指向当前表中正在操作 处理的那条记录,此记录被称为当前记录。如果要对某条记 录进行处理,必须移动记录指针,使其指向该记录。在任意 时刻指针只能指向唯一的一条记录。 记录指针定位有绝对定位、相对定位。在这里暂时只讲前 二种,查询定位在讲到查询时再详细介绍。
什么是索引
索引是按着索引表达式的值使数据表中的记录有序排列的一种技术, 在Visual FoxPro系统中是借助于索引文件实现的。 一般情况下,表中记录的顺序是由数据输入的前后顺序决定的,并 用记录号予以标识。除非有记录插入或者有记录删除,否则表中的记录 顺序总是不变的。 当用户有不同需求时,为了加快数据的检索、显示、查询和打印速 度,需要对文件中的记录顺序重新组织,而索引技术则是实现这些目的 的最为可行的办法。索引技术除可以重新排列数据顺序外,还可以建立 同一数据库内数据表间的关联。而且SQL查询语言必须靠索引技术来支 持。
1.绝对定位
绝对定位是将记录指针定位到指定记录。命令格式是:
[GO[TO]] <记录号>|TOP|BOTTOM
命令中记录号的取值范围是1至当前表中的最大记录个 数,即函数RECCOUNT()的值,否则出错。TOP和 BOTTOM分别表示表的首、末记录。
2.相对定位 【格式1】SKIP [<数值表达式1>] [IN <数值表达式2> | <字符表达式>]
对表记录的查询系统提供了两类查询命令: 顺序查询和索引查询。 顺序查询 1.命令方式 【格式】LOCATE FOR<逻辑表达式1>[<范 围>][WHILE <逻辑表达2>]
【功能】在表指定范围中查找满足条件的记录。 【说明】LOCATE 命令在表指定范围中查找满足条件的第一 条记录。 <逻辑表达式1>:表示所需满足的条件。 <范围>:指定查找范围,缺省时为ALL,即在整个表文件 中查找。 找到第一条满足条件的记录后,记录指针指向该记录, 并将函数FOUND()(用于检测是否找到满足条件的记录) 置为.T.;否则,记录指针指向<范围>的底部或文件结束标 志,并且将函数FOUND()置为.F,并在状态栏给出提示信 息“已到定位范围末尾”。
TOP:将记录指针移动到表文件的首记录。 BOTTOM:将记录指针动到表文件的最后一条记录。
注:相对定位与是否打开索引文件有关。如果打 开有索引,记录指针按索引文件中顺序移动。否 则按表文件中物理顺序移动。
删除和恢复表中的数据
逻辑删除就是给指定的记录作删除标记“*”。
1.逻辑删除表中的记录 表记录的删除也是表维护的一项经常性的工作,因为删除意
索引类型
Visual FoxPro系统提供了四种不同的索引类型,它们分别是:主 索引、候选索引、普通索引和唯一索引。
Baidu Nhomakorabea
1.主索引
在数据库容器中的数据表可以建立主索引(Primary Index)。索引 表达式的值是唯一能够标识每个记录处理顺序的值。因此,一个数据表 只能建一个主索引。 主要用于持久性的主数据表中或者建立参照完整性的被引用表中。
2.候选索引
候选索引(Candidate Index) 像主索引一样,它的索引表达式的值 是唯一能够标识每个记录处理顺序的值。但是,一个数据表可以建立 多个候选索引,它在特定环境下可以视为主索引。如果一个表中已有 主索引,则只能建立候选索引。
3.普通索引
普通索引(Regular Index)表示把由索引表达式为每个记录产生 的值,存入索引文件中。如果多个记录的索引表达式值相同,则可以 重复存储,并用独立的指针指向各个记录。
着数据的消失,所以对记录的删除操作比较慎重,删除可分 【格式】DELETE [<范围>] [FOR <条件>] [WHILE <条件>] 逻辑删除和物理删除两种操作。逻辑删除还可以恢复,而物
【功能】对当前表中指定范围内满足条件的记录作删除标记 “*”。 删除则不可恢复。
恢复逻辑删除是将被逻辑删除的记录恢复为正 常记录。即去掉“*”号。
【格式】LIST | DISPLAY [FIELDS <字段名表>][<范 围 >] [FOR< 条 件 表 达 式 >] [WHILE < 条 件 表 达 式 >][OFF][NOCONSOLE] [TO PRINTER [PROMPT] | TO FILE<文件名>]
<范围>:用来指定显示哪些记录。 【功能】将当前表文件的记录按照指定的选项进行显示。 注意:WHILE<条件表达式>若与FOR<条件表达式> “范围”有以下四种表示方法: 同时使用,则WHILE项优先;若两者都不选用,则 ● ALL:所有记录。 显示<范围>中指定的全部记录。 ● NEXT N:从当前记录开始,后面的N条记录(包括当前记录) ● RECORD N:第N条记录。 OFF:表示不显示记录号;若不选此项,则在各记 ● REST:当前记录后的全部记录(包括当前记录)。 录前显示记录号。 FOR<条件表达式>:指定对表文件中指定范围内满足条件的 记录进行 操作。 WHILE<条件表达式>:也是指定对表文件中指定范围内满足条件的记 录进行操作,但是,当第一次遇到不满足条件的记录时,停止继续往后 搜索
物理删除记录 物理删除是将当前表文件中被逻辑删除的记录全部清除。
【格式】PACK [MEMO][DBF]
【功能】将当前表文件中所有带删除标记(*)的记录全部真正 地删除掉。 【说明】若选用MEMO选项,PACK MEMO将压缩与表文件同 名的备注文件中的无用空间,但并不删除表文件中作了删除 标记的记录。 删除全部记录
建立表
数据库表、自由表 设计表的结构: (1)字段名 自由表中的字段名最多为10个字符, 数据库表中的字段名最多为128个字符。 (2)字段类型 哪些类型 (3)字段宽度 的宽度是 (4)小数位数 系统固定 (5)是否允许为空 的?
表的打开与关闭
USE [<表文件名 >| ?>][IN <工作区>|<别名>] [again][alias<别名>][exclusive][noupdate shared]
注意:最后一行显示出的记录字节数是所有 字段宽度之和再加1。这额外的一个字节是 用来存放记录的删除标记(*)的
向表中加入记录
1.创建表时立即输入数据(示例)
2.以追加方式输入数据 【格式】APPEND [BLANK]
自由表与数据库表的相互转换 一个自由表在数据库设计器中添加到数据库就成 为一个数据库表。在数据库环境下也可以直接建 立表,而且也可以对数据库中的表进行修改。
索引查询(FIND、SEEK) 1.FIND命令 【格式】FIND <字符串>/<数值常量>
2.SEEK命令 【格式】SEEK <表达式>
数据统计与计算 统计记录数 【格式】COUNT [<范围>] [FOR <逻辑表达 式1>] [WHILE <逻辑表达式2>] [TO <内 存变量>]
【功能】用于统计当前表中指定范围内满足条件的记录个数。 【说明】除非指定了<范围>或 FOR/WHILE <条件>,否则将 计算所有记录个数,如选择了 TO <内存变量>,则可将计 算结果保存在<内存变量>中,否则统计结果只在屏幕上显 示。 若选择了SET TALK OFF将不显示统计结果。 若 SET DELETE OFF,则加删除标志的记录将被计算。 【例】统计STUD.DBF中的男同学记录个数和表记录总数。
4.唯一索引
唯一索引(Unique Index)表示把由索引表达式为每个记录产生的唯 一值,存入索引文件中,如果数据表中记录的索引表达式值相同,则 只存储第一个索引表达式值。
命令格式: 1、index on <索引表达式> to <索引文件名> 2、index on <索引表达式> tag <标识名> 3、index on <索引表达式> tag <标识名> of <文件名> [Ascending]:按索引表达式升序 [Descending]:降序 [Unique]:建立唯一索引 [Candidate]:建立候选索引
【功能】用指定表达式的值替换当前表中满足条件记录的指定 字段的值。
表的复制
1.表结构的复制
【格式】COPY STRUCTURE TO <文件名> [FIELDS <字段名表>]
表文件的复制
【格式】COPY TO <文件名>[FIELDS <字段名表 >][<范围>] [FOR <逻辑表达式1>][WHILE <逻辑表 达式2>]
表的关闭(补充) (1)close all (2)close tables (3)close tables all
区别在哪?
利用表设计器修改表结构
利用表设计器定义修改数据表的结构,操作方法有二种。
方法一: 菜单操作 方法二: MODIFY STRUCTURE
显示表结构
【 格 式 】LIST | DISPLAY STRUCTURE [TO PRINT [PROMPT] | TO [FILE] [<文件名>]] 【功能】显示或打印当前表文件的结构。
【格式】ZAP
【功能】将当前打开的表文件中的所有记录完全删除掉。
编辑修改
【格式】EDIT / CHANGE [FIELDS <字段名表>] [< 范围>] [FOR <逻辑表达式1>] [WHILE <逻辑表达式 2>]
【功能】按照给定条件编辑修改当前打开的表文件的记录。 浏览修改
【格式】BROWSE [FIELDS <字段名表>] [FOR <逻辑 表达式1>]
【格式2】GO|GOTO <|TOP | BOTTOM> 【说明】<数值表达式1>:表示移动的记录个数。若数值表达式的值为负值, 【功能】记录指针从当前记录向前(或向后)移动若 表示向前移动记录;否则,表示向后移动记录。如果缺省此项,则表示向 后移动1个记录。 干个记录。 如果记录指针已经移过文件的最后一个记录,则RECNO() 【功能】将记录指针移动到表文件的首记录或 函数返回的 值等于文件中的记录总数加 1,EOF()函数返回逻辑真(.T.)值。 尾记录