计算机等级考试二级VF考前巩固:第3章
1 新建:(1)鼠标操作:“文件”→“新建” →勾选“数据库” →“新建文件”。
(2)命令操作:Create database [数据库名]
★当“数据库名”省略时,会弹出创建对话框。
(3)安全检查:set safety on/off (新建数据库与原数据库重名时,是否询问)
★用鼠标操作会自动打开数据库设计器 ★而命令操作仅仅是创建数据库,不直接出现该设计器。
2 打开:(1)鼠标操作:“文件”→“打开” →在文件类型中选“数据库”。
(2)命令操作:open database [数据名]………………..
★当“数据库名”省略时,会弹出打开对话框。
省略号处是一些可选项,可选项如下:
⊙EXCLUSIVE | SHARED:以独占方式打开 | 以共享方式打开。
⊙NOUPDATE:以只读方式打开。
默认值(即不写noupdate)是以读/写方式,也为共享方式。
★以上可选项若在鼠标操作方式时都可以在‘打开’对话框中设置
★为何要有‘独占’数据库?只有在独占的方式下才能清理数据库
★用鼠标方式打开会同时打开数据库设计器 ★而命令操作仅仅是打开数据库,也不直接出现该设计器。
3 修改:(1)鼠标操作:等同于‘打开’操作
(2)命令操作:modify database [数据库名] ………
★当“数据库名”省略时,则对当前数据库进行修改。
省略号处是一些可选项,可选项如下:
⊙NOWAIT:在程序中使用,打开数据库设计器后不暂停,主要为了程序连贯,实现无人职守。
⊙NOEDIT:只打开数据库设计器,禁止对其进行修改
★其实一条modify database就可以完成:
Create database + open database +moddify database 三条命令的功能
4 关闭:(1)鼠标操作:单击数据库设计器右上角的“ ”。仅仅只是隐藏该数据库,不是真正的关闭
(2)命令操作:close database
注意:这里后面不能加数据库名,他的作用就只是关闭当前数据库
★当已经打开多个数据库时,若想关闭其他的数据库,可以设置它为当前数据库即可,方法有:
(1)鼠标操作:在工具栏的数据库下拉框中直接选
(2)命令操作:set database to [数据库名]
★如不加名字,就会把所有都设置为非当前数据库
★close all 关闭所有文件
5 删除:(1)鼠标操作:打开项目管理器→“数据”选项卡→单击“数据库”前面的‘+’号→在其中选中目标数据库→单击“移去”。
(2)命令操作:DELETE DATABASE 数据库名……
省略号处是一些可选项,可选项如下:
⊙deletetables:删除数据库的同时把其中所含表也删除。
⊙recycle:将被删除的文件暂时放于回收站,以后要是后悔,还可以还原。
★鼠标操作无法在删除数据库的同时删除表。
★如果安全检查设置为set safety on会提示“真的删除吗”。关于表
表分为数据库表和自由表 不论哪种表都是由结构部分和内容部分组合而成的。
一 关于数据库表:
在某个数据库处于打开状态并且是当前数据库时,创建的表就是此数据库的一个数据库表。
结构部分
创建数据库表
①鼠标操作:打开数据库设计器,在这里面任意位置右击,选择“新建表”。
②命令操作: open database [数据库名]
Create [表名]
★以上不论哪一种操作,都会自动弹出“表设计器”。
表设计器的作用是对表的结构进行创建或修改。
表设计器的打开与修改:①鼠标操作:打开数据库设计器,在里面找到进行结构修改的表,
在那张表上右击选择“修改”。
②命令操作:use [表名]
Modify structure
表设计器的内容:见书P101
内容部分
表的结构设计完成确定后,会自动询问是否打开“浏览器”进行输入数据。
表浏览器的作用是对表的内容进行创建或修改。
表浏览器的打开:①鼠标操作:打开数据库设计器,在里面找到进行结构修改的表,
在那张表上右击选择“浏览”。
②命令操作:Use [表名]
Browse
一些常用的内容修改:
Ⅰ 增加记录:(1)在表的尾部增加记录:
①鼠标操作:显示/追加方式
②命令操作:A)append 需要立刻输入记录值
B)append blank 在表尾加一空行 再用edit,change,browse或replace更改
(2) 在表的任意位置插入记录:insert ……
省略号处是一些可选项,可选项如下:
① before 如果要在当前选中的记录之前插入一条新记录,就在insert后加上before,不加就会在当前记录之后插入新记录。
② blank 在指定的记录之前或之后插入一条空白记录。
★如果表是建立了主索引或候选索引,则不能用以上的 APPEND或INSERT命令插入记录,而必须用SQL的命令语句(见第四章)。
Ⅱ 删除记录:(1) 逻辑删除(置删除标记)
①鼠标操作:在要删除的记录行首直接打上黑块标记
②命令操作:delete [for 条件]
★如果不跟条件,则只逻辑删除当前记录;否则逻辑删除满足条件的记录。
★逻辑删除记录,不是真正的从表中删除了,以后要是后悔,还可以恢复。
Delete all 逻辑删除所有记录
(2)恢复记录(只能恢复逻辑删除的记录)
①鼠标操作:把要恢复的记录行首的黑块去掉
②命令操作:recall [for 条件]
★如果不跟条件,则只恢复当前记录(如果当前记录没有删除标记,则该命令什么事也不做);否则恢复满足条件的记录。
recall all 恢复所有记录
(3) 物理删除:pack只删除前面有黑块的记录行。
(4)物理删除表中全部记录行:①ZAP(会弹出一个询问对话框)。
ZAP就相当于delete all+pack
Ⅲ 修改记录:(1)鼠标操作:打开表浏览器直接修改。
(2)命令方式:
①用edit或 change修改当前一条记录和 skip 配合使用。
②有条件修改(满足条件的记录行才进行修改,其他行不变):
Replace [ all ] 字段名 with 表达式 [for 表达式]
★如果跟上[for 表达式],则是对满足条件的记录行才进行修改。
★在不跟[for 表达式]情况下,如果跟上[ all ],则是对所有记录进行修改。
★如果[ all ] 和[for 表达式]都不指定,则是对表中的当前记录进行修改。
Ⅳ 显示记录:list/display [字段名列表] [for 表达式]
★ 不使用条件时,LIST默认显示全部记录,而DISPLAY则默认显示当前记录。
★ 指定条件时,LIST和DISPLAY功能相同。
Ⅴ 查询定位:(1)鼠标操作:打开表浏览器,用鼠标直接选中目标记录行。
(2)命令操作:① goto/go [记录号/top/bottom]
②skip [数字]
③ locate for 表达式………… continue
二 关于自由表
结构部分
(1)创建自由表:在没有任何数据库打开的状态下,新建的表就是自由表。
①鼠标操作:“文件”→“新建” → 选择“表” →单击“新建文件”
②命令操作:create [表名]
(2)修改:(自由表的表设计器的使用)
①鼠标操作:“文件”→“打开” → “显示” →“表设计器”。
②命令操作:use [表名]
Modify structure
内容部分(自由表的浏览器的使用)
①鼠标操作:“文件”→“打开”→“显示”→“浏览xx表”。
②命令操作:use [表名]
Browse三 自由表和数据库表之间的转换
1 自由表→数据库表:打开数据库设计器→在里面空白处右击→选择“添加表”。
2 数据库表→自由表:打开数据库设计器→在要转换的表上右击→选“删除”。
在弹出的对话框中根据题目选择‘移去’或‘删除’
关于索引:
索引就像目录:目的是为了便于快速查询数据;索引是对表中记录按某种逻辑顺序重新排列。
1 分类:①主索引:字段或表达式不允许有重复值,且一个表只能有一个主索引,只有数据库表才可以建。
②侯选索引:字段或表达式不允许有重复值,但一个表可以有多个侯选索引。
③唯一索引:字段或表达式允许有重复值,但重复的值只出现一次,
一个表中可以有多个唯一索引。
④普通索引:字段或表达式允许有重复值 ,一个表可以有多个普通索引。
2 创建:
I 鼠标操作:①打开此表的表设计器,选择要建立索引的字段,在其同行的‘索引’那一列中,按照题目要求选‘升序’或‘降序’(题目若无要求,则选“升序”)。
②点击 ‘索引’选项卡,在其中的‘索引类型’中按照题目要求
进行填写。
Ⅱ 命令操作建立索引:
Index on 表达式(字段名) tag索引名……
省略号处是一些可选项,可选项如下:
①UNIQUE 唯一索引
②CANDIDATE 候选索引
③什么都不跟就是 普通索引
★命令操作无法建立主索引
3 索引的扩展名:
① .idx 非结构单索引
② .cdx(非默认名) 非结构复合索引
③ .cdx(与表同名) 结构复合索引
4 使用索引:
① set index to [索引文件名] 打开索引文件
② set order to 索引序号/索引名 设置当前索引
③ delete tag 索引名/all 删除索引
关于表间的永久联系
A表和B表建立永久联系:找到A和B的共同字段XXX ,以XXX为索引表达式在A表中建立一个主索引 ,在B表中建立一个普通索引 ,从主索引拖到普通索引即可。
关于参照完整性约束
★插入规则 ★更新规则 ★删除规则
注:插入规则无“级联”。
关于多工作区
1 指定工作区:select 工作区号/表名
选择当前未被使用的最小工作区:select 0
★ VFP中一次最多可以同时打开32767个表, 因为同时只能打开32767个工作区 ,就是说一个工作区只能同时打开一个表。
2 使用不同工作区的表:
in 工作区号/表名
例:seek 表达式 order 索引名 in 工作区号/表名
3 表间的临时联系: ★set relation
例子:use 学生 in 1 order 学号
use 成绩 in 2 order 学号
set relation to 学号 into 成绩
关于排序
将表中记录物理地按顺序排列:
sort to 新表名 on 字段名 [/A|/D][/C]