3.2 表结构的创建和修改
1. 表结构的创建
创建表结构其实就是设计字段的基本属性。可以使用表设计器、表向导或SQL命令来创建表结构。
(1)使用表设计器创建表
步骤:
从文件菜单中单击新建 → 在新建对话框中选择表并单击新文件 → 在创建对话框中给出文件名并确定所需的保存位置 → 在表设计器对话框中逐个输入所需字段(用↓或鼠标换行),全部字段输入完成后单击确定。
(2)使用表向导创建表
步骤:
从文件菜单中单击新建 → 在新建对话框中选择表并单击向导→在表向导中做第1步:选取字段,完成后单击下一步 → 在表向导中做第1a步:选择数据库,完成后单击下一步 → 在表向导中做第2步:修改字段设置,完成后单击下一步 → 在表向导中做第3步:为表建索引,完成后单击下一步 → 在表向导中做第4步:完成,选择表的保存方法,完成后单击完成 → 在另存为对话框中给出文件名并确定所需的保存位置。
注意:
先选择一个与待建数据表类似的样表,再从中挑选出所需的部分字段,然后在下一步根据实际需要修改或直接采用原字段的宽度。
(3) 使用 CREATE TABLE - SQL命令
该命令的一般格式为:
CREATE TABLE |dbf <表文件名>(字段名1 字段类型[(字段宽度[,小数位数])][,字段名2 字段类型[(字段宽度[,小数位数])]]……)
例:CREATE TABLE xscj(xh c(8),xm c(6),xb c(2),;cj n(5,1),ksrq d)
2. 表结构的修改
(1)用表设计器修改
用菜单调出表设计器:
打开所需的表文件 → 单击显示菜单中的表设计器 → 在表设计器对话框中对字段进行修改 → 修改完毕单击确定并在消息框中选择是。
用命令调出表设计器:
USE <表文件名>
MODIFY STRUCTURE
(2) 使用 ALTER TABLE - SQL命令
|
功能 |
命令格式示例 |
|
添加字段 |
ALTER TABLE xscj ADD COLUMN kcmc C(14) |
| 重命名字段 | ALTER TABLE xscj RENAME COLUMN kcmc TO kc |
| 删除字段 | ALTER TABLE xscj DROP COLUMN kc |
3.3 表记录的处理
1. 记录的输入
(1) 立即输入方式:
设计好表的结构后,系统会提示是否直接进入数据输入状态。若选是,则进入编辑窗口,输完后单击“X”按钮退出,系统自动存盘。需输入备注型或通用型字段的数据时,双击“memo” 或“gen”,在新打开的编辑窗口中输入所需内容,输完后单击“X”按钮系统自动存盘,退回到原窗口 ,此时字段中的“memo” 或“gen”变成“Memo” 或“Gen”。
(2) 追加方式:
若设计好表的结构后并没有及时输入数据,则可以用追加方式:
从文件菜单中(或从命令窗口中输入:USE 表文件名) 打开所需表文件 →
(2)记录的定位方式
绝对定位:是指把指针移到指定的位置。
相对定位:
是指把指针从当前位置开始,相对于当前记录向前或向后移动若干个记录位置。
条件定位:
是指按一定的条件在整张表或表的某个指定范围中查找符合该条件的记录。通过菜单进行定位从表菜单中选择转到记录:记录号——实现绝对定位
定位… ——实现条件定位
通过命令进行定位
记录的定位
|
命令格式 |
功能 |
备注 | |
| 绝对定位 | GO TOP | 将记录指针定位到表文件之首 | 或 GOTO TOP |
| GO BOTTOM | 将记录指针定位到表文件之尾 | 或GOTO BOTTOM | |
| GO <n> | 将记录指针定位到指定的n号记录 | ||
| 相对定位 | SKIP <n> | 将记录指针从当前记录向上或向下移动n个 | n为正值则向下移动
n为负值则向上移动 无n向下移动 1个 |
| 条件定位 | LOCATE FOR <条件> [ 范围 ] | 按顺序搜索表, 直到找到满足指定条件的第一个记录 | 默认范围是所有记录 |
4. 记录的修改和删除
一张表用非只读方式打开后,即可通过菜单在浏览窗口(或编辑窗口)中或从命令窗口中用命令直接对其记录进行编辑、修改和删除。
(1) 菜单方式
修改记录:
从表菜单中选择替换字段… → 在替换字段对话框中选择待替换的字段并构造出替换表达式及替换条件 → 替换。
删除记录:
从表菜单中选择删除记录 → 在删除对话框中选择删除范围和删除条件 → 单击删除按钮 → 从表菜单中选择彻底删除 → 在消息框中单击是。
删除记录包括两步: 标记要删除的记录 和 彻底删除带删除标记的记录
恢复带删除标记的记录:
从表菜单中选择恢复记录 → 在恢复记录对话框中选择作用范围和条件 → 单击恢复记录按钮。
(2) SQL命令方式 (表事先可以不打开,适用于编程工作方式)
修改记录: 用 UPDATE-SQL 命令。
命令格式: UPDATE <表名> SET 字段1 = 表达式1 [,字段2 = 表达式2 …];
WHERE 条件表达式
例: UPDATE xscj SET cj = cj*1.05 WHERE cj>80
删除记录: 用 DELETE-SQL 命令。
命令格式: DELETE FROM <表名> [WHERE 条件表达式]
例: DELETE FROM xscj WHERE cj<60
(3) 在命令窗口中用VFP命令:
|
命令格式 |
功能 |
备注 | |
| 插入 | INSERT [BLANK][BEFORE] | 在当前表的指定位置上插入一个空记录或若干新记录 | BLANK :在当前记录后插入一个空记录
BEFORE :在当前记录之前插入若干新记录 |
| 修改 | CHANGE [FIELDS 字段名1,…][FOR 条件] [LEDIT] [REDIT] | 在编辑窗口显示要修改的字段 | LEDIT :调出编辑窗口
REDIT :调出浏览窗口 |
| 替换 | REPLACE 字段名1 WITH 表达式1 [ADDITIVE] [, 字段名2 WITH 表达式2 [ADDITIVE] …] [范围] [FOR 条件] | 把字段值用指定的表达式进行替换。如: 工资单中给某些人长工资 | 默认范围是当前记录
ADDITIVE :把备注字段的替换内容添加在原备注内容的后面 |
| 删除 | DELETE [ 范围 ][FOR 条件] | 对当前表中指定范围内满足条件的记录加上删除标记 * | 默认范围是当前记录 |
| PACK [MEMO][DBF] | 将所有带删除标记的记录从表中抹去(不能再恢复) | DBF :不影响备注文件
MEMO :从备注文件中删除未使用空间 | |
| ZAP | 删除当前表中所有记录,只留下表的结构 |
相当于 DELETE ALL + PACK | |
| 恢复 | RECALL [ 范围] [FOR 条件] | 取消当前表中指定记录上的删除标记 | 默认范围是当前记录 |
5. 筛选记录和字段
(1) 用菜单方式
从表菜单中选择属性 → 在工作区属性对话框中单击数据过滤器框后的按钮 → 在表达式生成器对话框中构造所需的条件表达式并确定 → 单击字段筛选…按钮 →在字段筛选器中选择所需字段并确定 → 单击选项按钮:字段筛选指定的字段 → 确定。
(2)用命令方式
命令格式: SET FILTER TO 条件表达式
例: SET FILTER TO xb ='男'
注意:SQL命令对记录的访问不受此筛选命令的限制。