a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 166|回复: 1

[Visual FoxPro] 2011年9月计算机等级考试二级VF考点:第3章

[复制链接]
发表于 2012-7-31 22:17:54 | 显示全部楼层 |阅读模式
  关于数据库的操作4 M. T1 T+ F* C8 t: N1 y9 s0 n& u4 M
  1 新建:(1)鼠标操作:“文件”→“新建” →勾选“数据库” →“新建文件”。
" p. H2 k( {& c' Y6 h  (2)命令操作:Create database [数据库名]# t/ c0 f, h5 \8 K# F. O8 p1 a
  ★当“数据库名”省略时,会弹出创建对话框。' E, [- \( r7 y& i
  (3)安全检查:set safety on/off (新建数据库与原数据库重名时,是否询问)
0 Z% S% V& T1 A2 g  ★用鼠标操作会自动打开数据库设计器 ★而命令操作仅仅是创建数据库,不直接出现该设计器。
5 T0 X8 [0 a7 L& `5 v7 Y# e8 g  2 打开:(1)鼠标操作:“文件”→“打开” →在文件类型中选“数据库”。
  Y) @/ y- L; m, ^) P3 f; z0 {  (2)命令操作:open database [数据名]………………..
' W# }: `4 A" I2 I  ★当“数据库名”省略时,会弹出打开对话框。( a$ k9 h, ~. W
  省略号处是一些可选项,可选项如下:7 V- ]! Z9 d! M5 q; p
  ⊙EXCLUSIVE | SHARED:以独占方式打开 | 以共享方式打开。
7 S7 h6 r7 b& I& O. k  ⊙NOUPDATE:以只读方式打开。+ u3 m8 Q1 G5 M$ P2 J1 c% C
  默认值(即不写noupdate)是以读/写方式,也为共享方式。
2 o, V' {7 A/ ?3 _  ★以上可选项若在鼠标操作方式时都可以在‘打开’对话框中设置& F$ G% W/ K2 J
  ★为何要有‘独占’数据库?只有在独占的方式下才能清理数据库
: u' }: b+ ]/ A0 y4 O$ f  ★用鼠标方式打开会同时打开数据库设计器 ★而命令操作仅仅是打开数据库,也不直接出现该设计器。, E5 U3 E  e0 N
  3 修改:(1)鼠标操作:等同于‘打开’操作! g% K6 w) I. P
  (2)命令操作:modify database [数据库名] ………
3 x' B- b, ~, E5 ~5 K( d  ★当“数据库名”省略时,则对当前数据库进行修改。
# @0 d4 Y1 v. K( s# x- n  省略号处是一些可选项,可选项如下:) t- e: x2 F  X
  ⊙NOWAIT:在程序中使用,打开数据库设计器后不暂停,主要为了程序连贯,实现无人职守。
. b6 N0 i6 V0 J* h0 ~* J3 s9 \! O  ⊙NOEDIT:只打开数据库设计器,禁止对其进行修改# E0 r+ \. x) z
  ★其实一条modify database就可以完成:
: \& ]+ ~4 I0 b( b- T  Create database + open database +moddify database 三条命令的功能& o9 L. l) H6 r1 M9 t! x8 x6 u
  4 关闭:(1)鼠标操作:单击数据库设计器右上角的“ ”。仅仅只是隐藏该数据库,不是真正的关闭
: K" d) J' G7 H0 h5 S/ a. u4 l' Y" J1 m  (2)命令操作:close database6 H( W  h8 V/ k! A. D7 Y' _$ r+ z, b
  注意:这里后面不能加数据库名,他的作用就只是关闭当前数据库
6 _* u1 Y  G4 G- Q& v3 a2 {  ★当已经打开多个数据库时,若想关闭其他的数据库,可以设置它为当前数据库即可,方法有:
8 q8 m/ u4 N4 C$ W  (1)鼠标操作:在工具栏的数据库下拉框中直接选
9 n. U% l0 l5 L" |: e- h  (2)命令操作:set database to [数据库名]% p7 w# h6 q8 O# u. U: X
  ★如不加名字,就会把所有都设置为非当前数据库
% ^. m- ?+ F& d, X  ★close all 关闭所有文件& B7 V6 w2 Z7 s. p7 s  c; }- c
  5 删除:(1)鼠标操作:打开项目管理器→“数据”选项卡→单击“数据库”前面的‘+’号→在其中选中目标数据库→单击“移去”。' h" E0 C' n9 B2 p$ q
  (2)命令操作:DELETE DATABASE 数据库名……
' W, D+ B. d1 C9 ]5 j) k( }4 c  省略号处是一些可选项,可选项如下:$ x7 {& D! C( t8 B
  ⊙deletetables:删除数据库的同时把其中所含表也删除。
, `0 U+ T; J# Y# P9 S% O  ⊙recycle:将被删除的文件暂时放于回收站,以后要是后悔,还可以还原。
& k) D  m  R& p9 P/ A2 I  ★鼠标操作无法在删除数据库的同时删除表。" x8 W4 R/ K4 f
  ★如果安全检查设置为set safety on会提示“真的删除吗”。
0 W2 k" G- K7 t' ~  关于表
9 z) C( O9 J7 n) c  表分为数据库表和自由表 不论哪种表都是由结构部分和内容部分组合而成的。! {' R8 h1 [0 X! E+ h8 |( j
  一 关于数据库表:) _# |5 Y5 N6 D$ ~
  在某个数据库处于打开状态并且是当前数据库时,创建的表就是此数据库的一个数据库表。: }9 |' ]4 S% _4 d$ ~4 S; p
  结构部分1 W% O1 O. C, D" W
  创建数据库表" S3 O4 Y3 i* E" K/ |' e0 T+ Q% K9 X
  ①鼠标操作:打开数据库设计器,在这里面任意位置右击,选择“新建表”。
0 _' N! ?* ^# I8 W' c  ②命令操作: open database [数据库名]" c- W3 T- P: C& X! q# W
  Create [表名]
5 `% L0 ^0 K4 B) Y  ★以上不论哪一种操作,都会自动弹出“表设计器”。6 h2 d/ c* ^7 U2 f2 D
  表设计器的作用是对表的结构进行创建或修改。
: F* B2 c8 s) I, n0 q  表设计器的打开与修改:①鼠标操作:打开数据库设计器,在里面找到进行结构修改的表,
/ E: J; s0 H% R  R3 V  N0 m  在那张表上右击选择“修改”。. {, S8 e0 g1 h  f/ {5 z! _
  ②命令操作:use [表名]
! ]+ y5 q' Z8 U! j# `  Modify structure
- B7 ?3 @9 r, v8 D& N3 X/ b" h, H  表设计器的内容:见书P101. o; C8 |1 c6 X: f$ ^/ ^. d! x: t" ^
  内容部分
, K7 b& d+ O3 A5 d  H! x2 }  表的结构设计完成确定后,会自动询问是否打开“浏览器”进行输入数据。
8 f* G+ s3 y. k7 g7 I  表浏览器的作用是对表的内容进行创建或修改。
% L+ P# D' c+ P; u  表浏览器的打开:①鼠标操作:打开数据库设计器,在里面找到进行结构修改的表,' O! i( v* c, }7 X" d+ Z
  在那张表上右击选择“浏览”。' |' I, l7 X0 k
  ②命令操作:Use [表名]+ U8 ?. s" M: Y! O# u
  Browse
, S" @0 @1 {2 w9 [  d/ F8 f% a( H  一些常用的内容修改:
( n3 B1 w2 p6 y7 q' t5 N2 |  Ⅰ 增加记录:(1)在表的尾部增加记录:3 r" h9 n/ n8 P/ s# c0 n5 J
  ①鼠标操作:显示/追加方式' {$ o- C/ D" ]& n/ b, A
  ②命令操作:A)append 需要立刻输入记录值3 k* k+ G7 K7 H" X' D% l9 ]
  B)append blank 在表尾加一空行 再用edit,change,browse或replace更改
) o) A. M, V# y0 v- N% |8 N: ?. @( ?  (2) 在表的任意位置插入记录:insert ……8 H+ p: m$ a. B6 t: T: s
  省略号处是一些可选项,可选项如下:+ _3 d' t9 `, |0 ~
  ① before 如果要在当前选中的记录之前插入一条新记录,就在insert后加上before,不加就会在当前记录之后插入新记录。
) y5 v+ q; w/ \6 @( g! ]4 c  ② blank 在指定的记录之前或之后插入一条空白记录。4 h: ~7 q2 R! S$ X/ D  @
  ★如果表是建立了主索引或候选索引,则不能用以上的 APPEND或INSERT命令插入记录,而必须用SQL的命令语句(见第四章)。
0 q+ m# T8 e( S  Ⅱ 删除记录:(1) 逻辑删除(置删除标记)/ O7 R: N! n6 A- D  S! ~
  ①鼠标操作:在要删除的记录行首直接打上黑块标记2 |/ ?& x, o3 `. ?: Q6 Y
  ②命令操作:delete [for 条件]' h9 J4 s& i) q* Y# n6 V
  ★如果不跟条件,则只逻辑删除当前记录;否则逻辑删除满足条件的记录。" b3 B5 T2 j" k, P& L1 z- L; _
  ★逻辑删除记录,不是真正的从表中删除了,以后要是后悔,还可以恢复。
5 }; {' y0 W& F( X$ h8 M4 o  Delete all 逻辑删除所有记录2 j6 ~: l- c* K: y" ~2 `
  (2)恢复记录(只能恢复逻辑删除的记录)$ B; D$ R: M0 A) T0 x
  ①鼠标操作:把要恢复的记录行首的黑块去掉7 Y6 J; u2 H' ^. L+ a
  ②命令操作:recall [for 条件]/ n# l! O0 i& b. i
  ★如果不跟条件,则只恢复当前记录(如果当前记录没有删除标记,则该命令什么事也不做);否则恢复满足条件的记录。
% c! K0 f6 f7 j3 D0 S) x  recall all 恢复所有记录
: j6 ]1 @+ Y$ k: c# h$ {  d  (3) 物理删除:pack只删除前面有黑块的记录行。
1 {4 j( q' w# v+ O$ P5 S2 t; B; n9 i  (4)物理删除表中全部记录行:①ZAP(会弹出一个询问对话框)。! x- o8 d( a. S5 V7 I; M1 i5 U0 N7 D
  ZAP就相当于delete all+pack3 `  i% F( I( ^% t$ z1 {( N
  Ⅲ 修改记录:(1)鼠标操作:打开表浏览器直接修改。
4 F( l# x7 a1 q0 K/ b! J  (2)命令方式:% c( t+ d9 D. |% z+ J0 ^
  ①用edit或 change修改当前一条记录和 skip 配合使用。
. P; i' \/ W3 g+ u  ②有条件修改(满足条件的记录行才进行修改,其他行不变):2 y9 o4 W0 b/ P# w  k9 @( {/ w6 k
  Replace [ all ] 字段名 with 表达式 [for 表达式]
4 E' y& C+ a2 L7 r8 }0 z  ★如果跟上[for 表达式],则是对满足条件的记录行才进行修改。
$ u/ B. D* g- d  ★在不跟[for 表达式]情况下,如果跟上[ all ],则是对所有记录进行修改。
5 J4 B7 w; P( f- d& P7 q  ★如果[ all ] 和[for 表达式]都不指定,则是对表中的当前记录进行修改。' |5 P4 l) z2 {. x4 v9 {
  Ⅳ 显示记录:list/display [字段名列表] [for 表达式]
; h2 _2 ]& A) z0 j( b  ★ 不使用条件时,LIST默认显示全部记录,而DISPLAY则默认显示当前记录。" H  e7 q, D1 ~
  ★ 指定条件时,LIST和DISPLAY功能相同。
2 u6 H$ Q  y, o5 t$ ?  Ⅴ 查询定位:(1)鼠标操作:打开表浏览器,用鼠标直接选中目标记录行。2 S; d, B6 @7 N  W+ E; i$ x
  (2)命令操作:① goto/go [记录号/top/bottom]$ u- j& t5 L5 w* y) m
  ②skip [数字]
. m0 P2 \' M3 B5 N# q" X4 o; F" |  ③ locate for 表达式………… continue
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:17:55 | 显示全部楼层

2011年9月计算机等级考试二级VF考点:第3章

  二 关于自由表
- g  b* B- d3 b$ u: {  结构部分
7 o3 m5 [) G5 X* ?  (1)创建自由表:在没有任何数据库打开的状态下,新建的表就是自由表。9 S2 F. e' _3 A
  ①鼠标操作:“文件”→“新建” → 选择“表” →单击“新建文件”
! d, h; }+ {6 w  ②命令操作:create [表名]
8 P  z4 n: Q8 Y9 q% @2 z* s  (2)修改:(自由表的表设计器的使用)4 `8 v% i; r' _0 y
  ①鼠标操作:“文件”→“打开” → “显示” →“表设计器”。
& L, w# x; J# k1 n! O7 i& @  ②命令操作:use [表名]
# p" [# B- a1 l1 R$ D5 n  Modify structure4 H- {2 ^) s- U6 n- o
  内容部分(自由表的浏览器的使用)4 S7 h) _0 `- t1 S
  ①鼠标操作:“文件”→“打开”→“显示”→“浏览xx表”。* v' f- [8 J4 O8 d
  ②命令操作:use [表名]
" S/ `/ t( x. h" t) n+ T  Browse
9 ?/ F6 [! s. V( a9 T5 o/ R  三 自由表和数据库表之间的转换$ ?  T- U& o6 U' ^: v1 W1 E
  1 自由表→数据库表:打开数据库设计器→在里面空白处右击→选择“添加表”。
* Y1 U; b+ L- g  2 数据库表→自由表:打开数据库设计器→在要转换的表上右击→选“删除”。% R  Y3 k% Y$ d" {" g. u
  在弹出的对话框中根据题目选择‘移去’或‘删除’" q4 n: V" F! \" P5 p
  关于索引:
( Y) `9 N, a$ `9 {' z  索引就像目录:目的是为了便于快速查询数据;索引是对表中记录按某种逻辑顺序重新排列。& w5 T! z2 [0 t9 M8 D: I
  1 分类:①主索引:字段或表达式不允许有重复值,且一个表只能有一个主索引,只有数据库表才可以建。6 e5 w( m3 O: C! U4 s( g; M' h; ?7 E1 a
  ②侯选索引:字段或表达式不允许有重复值,但一个表可以有多个侯选索引。7 b. a2 s- r. h
  ③唯一索引:字段或表达式允许有重复值,但重复的值只出现一次,$ y; m6 v& {9 |4 I5 d
  一个表中可以有多个唯一索引。
+ W6 E0 ?; E- ]1 \1 q# V% R  ④普通索引:字段或表达式允许有重复值 ,一个表可以有多个普通索引。
; Q' q1 r& G6 Z: E1 _1 X  2 创建:
7 i) {2 k9 [9 V  I 鼠标操作:①打开此表的表设计器,选择要建立索引的字段,在其同行的‘索引’那一列中,按照题目要求选‘升序’或‘降序’(题目若无要求,则选“升序”)。# m0 c4 e$ S. b# Q
  ②点击 ‘索引’选项卡,在其中的‘索引类型’中按照题目要求
4 D8 e) s5 W. x  j# k6 Q  进行填写。2 @" x( K* u$ u
  Ⅱ 命令操作建立索引:
: f' ^* A2 z+ c& O  Index on 表达式(字段名) tag索引名……8 M" V! O7 S  D+ H
  省略号处是一些可选项,可选项如下:& Q2 R( V; X$ K9 E
  ①UNIQUE 唯一索引4 o7 i$ v* x+ Z/ c$ u- S3 O$ V
  ②CANDIDATE 候选索引
( J- z" t6 W$ L$ G- _8 \1 [  ③什么都不跟就是 普通索引
6 m$ F) [# }4 E. ~7 O9 i2 f2 Y2 a0 r4 `2 i  ★命令操作无法建立主索引
; n' u0 U7 A+ u9 X& T  3 索引的扩展名:5 ?! u3 V, s/ |, {# z5 h4 V% Q
  ① .idx 非结构单索引
: n: m/ ~, T6 F$ N" ~; n) w( R& ^  ② .cdx(非默认名) 非结构复合索引  o+ z7 t3 u/ z/ @/ Q
  ③ .cdx(与表同名) 结构复合索引1 _+ E" p$ U! k/ ^4 s1 Q- m
  4 使用索引:4 A* E: ?) D3 G" ^
  ① set index to [索引文件名] 打开索引文件4 a1 @7 R! |. R: h3 n# A
  ② set order to 索引序号/索引名 设置当前索引
9 h/ t8 r/ @, x$ g3 T) _  ③ delete tag 索引名/all 删除索引3 t2 a" a& O/ A; M
  关于表间的永久联系1 s/ P! g+ K) ^+ f) d
  A表和B表建立永久联系:找到A和B的共同字段XXX ,以XXX为索引表达式在A表中建立一个主索引 ,在B表中建立一个普通索引 ,从主索引拖到普通索引即可。
. l" T" r& ^4 H& Y  D+ K8 ?  关于参照完整性约束# I& f) L" \, ~9 l9 X7 O
  ★插入规则 ★更新规则 ★删除规则
: P  b( ?* W5 @9 y+ A  注:插入规则无“级联”。
9 @$ P6 q- h9 V; j. ^$ x: H5 f  d  关于多工作区
; f3 I6 f: e5 o4 V; g& K  i( X, r  1 指定工作区:select 工作区号/表名
, M/ ~' h  Q, r# B) t  选择当前未被使用的最小工作区:select 0
8 H2 b) B! M1 C5 Y& H0 u8 x  ★ VFP中一次最多可以同时打开32767个表, 因为同时只能打开32767个工作区 ,就是说一个工作区只能同时打开一个表。
6 u4 d8 E$ o5 G2 `- O9 r& d( y  2 使用不同工作区的表:
& q* O  m' U3 `- ?3 }; T  in 工作区号/表名
; h; T* T; i7 Q: h+ x4 L  例:seek 表达式 order 索引名 in 工作区号/表名! _, E: g* d4 J) Z3 P* W7 \
  3 表间的临时联系: ★set relation
3 r0 _0 V$ u1 n, S  例子:use 学生 in 1 order 学号& s  f( E( p2 R$ s7 u4 ]7 S
  use 成绩 in 2 order 学号
0 `8 T1 k, C; P; h! l  set relation to 学号 into 成绩
4 J" [0 W9 m& v- N& P  关于排序0 ]4 s+ x# F2 O8 ]# Y- o* ]1 W
  将表中记录物理地按顺序排列:6 ^' v+ Q) ]2 L' m( v( q/ R
  sort to 新表名 on 字段名 [/A|/D][/C]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-7 01:18 , Processed in 0.190350 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表