第一篇:vf二級(jí)考試復(fù)習(xí)筆記__全集
Visual FoxPro數(shù)據(jù)庫(kù)程序設(shè)計(jì)教案 第一章.Visual FoxPro 數(shù)據(jù)庫(kù)基礎(chǔ) 一.數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí) ? 數(shù)據(jù)與數(shù)據(jù)處理
數(shù)據(jù):存儲(chǔ)在某一種媒體上能夠識(shí)別的物理符號(hào)。數(shù)據(jù)處理:將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程
? 計(jì)算機(jī)數(shù)據(jù)管理:指對(duì)數(shù)據(jù)的組織、分類(lèi)、編碼、存儲(chǔ)、檢索和維護(hù)提供操作手段 分為:人工管理 文件系統(tǒng) 數(shù)據(jù)庫(kù)系統(tǒng)
分布式數(shù)據(jù)庫(kù)系統(tǒng) 面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng) ? 數(shù)據(jù)庫(kù)系統(tǒng)及其特點(diǎn) 特點(diǎn):
1. 實(shí)現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余 2. 采用特定的數(shù)據(jù)模型] 3. 具有較高的數(shù)據(jù)獨(dú)立性 4. 有統(tǒng)一的數(shù)據(jù)控制功能 ? 數(shù)據(jù)模型及相關(guān)概念
數(shù)據(jù)模型:層次型,網(wǎng)狀型,關(guān)系型 實(shí)體,實(shí)體屬性,實(shí)體集和實(shí)體型
實(shí)體間聯(lián)系及種類(lèi):One to one relationship
One to many relationship
Many to many relationship 二.關(guān)系數(shù)據(jù)庫(kù)
? 關(guān)系數(shù)據(jù)庫(kù)相關(guān)概念 關(guān)系模型:用二維表結(jié)構(gòu)來(lái)表示實(shí)體以及實(shí)體之間聯(lián)系的模型稱(chēng)為關(guān)系模型
關(guān)系,元組,屬性,關(guān)鍵字,處部關(guān)鍵字
? 關(guān)系的特點(diǎn):必須規(guī)范化,即每個(gè)屬性必須不可分割的數(shù)據(jù)單元,不能表中含表
同一關(guān)系中不能出現(xiàn)相同的屬性 關(guān)系中不允許有完全相同的元組 在一個(gè)關(guān)系中元組的次序無(wú)關(guān)緊要 在一個(gè)關(guān)系中列的次序無(wú)關(guān)緊要
? 關(guān)系運(yùn)算:選擇,投影,聯(lián)接(自然聯(lián)接)三.Visual FoxPro 系統(tǒng)概述
? 安裝:資源管理器——>open CD-ROM——>setup.exe Visual FoxPro 的界面
? 菜單操作:鼠標(biāo)操作,鍵盤(pán)操作,光標(biāo)操作
? 命令窗口:是vf桌面上一個(gè)重要部件,自動(dòng)保留已輸入的命令,如再次執(zhí)行此命令時(shí)只需把光標(biāo)移至,然后按Enter即可,同時(shí)支持對(duì)命令的修改、刪除、剪切等操作 ? 命令窗口的顯示和隱藏:
四.項(xiàng)目管理
? 項(xiàng)目管理器窗口:用圖形化分類(lèi)的方法來(lái)管理屬于同一個(gè)項(xiàng)目的文件,是文件、數(shù)據(jù)、文檔和對(duì)象的集合(*.pjx)? 各類(lèi)文件選項(xiàng)卡:
? 使用項(xiàng)目管理器:添加文件,修改文件,移去文件 ? 定制項(xiàng)目管理器:--移動(dòng)、縮放、折疊、拆分、停放
? 設(shè)計(jì)器:是一個(gè)操作平臺(tái),是創(chuàng)建和和修改應(yīng)用系統(tǒng)各種組件的可視化工具。
? 生成器:輔助設(shè)計(jì) VF命令語(yǔ)句語(yǔ)法約定: [ ]
可選項(xiàng)
< >必選項(xiàng)
| 或
dimension <數(shù)組名>(<下標(biāo)上限1>[,<下標(biāo)上限2>]>)set century on|off 第二章.Visual FoxPro程序設(shè)計(jì)基礎(chǔ)
VF中有四種形式的數(shù)據(jù):常量、變量、表達(dá)式、函數(shù) 一.常量與變量
? 常量:一個(gè)具體的,不變的值。分類(lèi)及描述:
N數(shù)值型常量: 常數(shù),包括正負(fù)號(hào) Y貨幣型常量:$常數(shù)
C字符型常量:用定界符
“ ” ,’ ’
[ ]
“”空串 “
”空格字符串 D日期型常量:用 {}作為定界符{^yyyy-mm-dd}嚴(yán)格日期格
T日期時(shí)間型常量:{ <日期>,<時(shí)間>} {^yyyy-mm-dd, [hh[:mm[:ss]]]} L邏輯型常量:.t.,.f.定界符必不可少,且常形式 ?T?,?Y?,?F?,?N?
[]可選項(xiàng)
Set mark to
分隔符 Set date to
日期格式 Set century on|off 年份設(shè)置
Set century to <世紀(jì)值> rollover <年份參照值>
? 變量:隨著程序等的運(yùn)行會(huì)發(fā)生變化的量 ? 分類(lèi):字段變量:表中的字段 ? 表打開(kāi)了就有字段變量 ? 變量的值存在表中
內(nèi)存變量:內(nèi)存的一個(gè)存儲(chǔ)區(qū)域 變量的值存儲(chǔ)空間中
內(nèi)存變量 簡(jiǎn)單內(nèi)存變量
簡(jiǎn)單內(nèi)存變量的定義及賦值: <內(nèi)存名>=<達(dá)表式>
STORE <達(dá)表式> TO
<內(nèi)存變量名表>
數(shù)組:一次定義多個(gè)變量,是內(nèi)存中連續(xù)的一片存儲(chǔ)區(qū)域
定義數(shù)組:DIMENSION|declare <數(shù)組名>(<下標(biāo)上限1>[,<下標(biāo)上限2>])賦值語(yǔ)句:<內(nèi)存>=<達(dá)表式>
STORE<達(dá)表式>TO<內(nèi)存變量名表>
可以用一維的方式訪(fǎng)問(wèn)二維數(shù)組
當(dāng)內(nèi)存變量與字段變量同名優(yōu)字段變量 m.內(nèi)存變量
m->內(nèi)存變量
表達(dá)式值的顯示:?,??(當(dāng)前光標(biāo)的下一行輸出,當(dāng)前光標(biāo)處輸出)
? 內(nèi)存變量的顯示: LIST MEMORY[LIKE<通配符>][TO FILE <文件>]
DISPLAY MEMORY
**list memory一次全顯,display memory分屏顯示
? 內(nèi)存變量的清除:
? clear memory 清除所有變量 ? release all 清除所有變量
? release <變量名表> 清除某個(gè)變量 ? release all like <> ?*
? 表與數(shù)組之間數(shù)據(jù)傳遞:
將表當(dāng)前的記錄復(fù)制到數(shù)組:SCATTER [fields <字段名>] [memo] TO <數(shù)組名> 將數(shù)組數(shù)據(jù)復(fù)制到表的當(dāng)前記錄: GATHER FROM <數(shù)組名>
? 表達(dá)式:用運(yùn)算符把運(yùn)算對(duì)象連接起來(lái)的式字 數(shù)值表達(dá)式:運(yùn)算優(yōu)先級(jí)
+<日期/日期時(shí)間>+|-數(shù)值
d t <日期/日期時(shí)間>-<日期/日期時(shí)間>
n 關(guān)系表達(dá)式(大小比較式):比較兩個(gè)表達(dá)式的大小,結(jié)果是邏輯型數(shù)據(jù)
<表達(dá)式1><關(guān)系運(yùn)算符><表達(dá)式2> > < >=
<=
<>
#
!=
== 字符串精確比較符
$ 專(zhuān)用于字符串比較 <表達(dá)式1>$<表達(dá)式2> <表達(dá)式1>==<表達(dá)式2> <表達(dá)式1>=<表達(dá)式2> set collate to “ ”
machine
asc(<字符>)pinyin
a_z A-Z stroke
<字符串1>
$ <字符串2> <字符串>= =<字符串> 精確比較符
<字符串>= <字符串> set exact on|off <字符串>=<字符串>
設(shè)置字符排序次序:選項(xiàng)中,或set collate to “ ” 字符精確比較與設(shè)置:選項(xiàng)中,或set exact on/off
邏輯表達(dá)式:運(yùn)算符為.NOT.非,.AND.與|且,. OR. 或;優(yōu)先級(jí);P68 not
and or <>AND<>
? 常用函數(shù):是用程序來(lái)實(shí)現(xiàn)的一種運(yùn)算或轉(zhuǎn)換 |-5|
10%3
mod(10,3)
(4)**(1/2)<函數(shù)名稱(chēng)>(<參數(shù)>)分類(lèi):
? 數(shù)值函數(shù):abs()求絕對(duì)值 sign()求符號(hào) 0-1,1 + ENDDO語(yǔ)句
格式:
DO WHILE <條件>
<循環(huán)體>
ENDDO DO WHILE<條件>
<語(yǔ)句序列1>
[LOOP] 向上循環(huán)
<語(yǔ)句序列2>
[EXIT]
強(qiáng)行退出循環(huán)
<語(yǔ)句序列3>
ENDDO
FORENDSCAN語(yǔ)句
格式:
SCAN
[<范圍>][FOR<條件1>][WHilE<條件2>]
<循環(huán)體> ENDSCAN
7.多模塊程序
1模塊的定義
PROCEDURE|FUNCTION <過(guò)程名>
<命令序列>
[RETURN[<表達(dá)式>]]
[ENDPROC|ENDFUNC]
2模塊的調(diào)用
模塊調(diào)用的格式有兩種。
(1)使用DO命令,格式如下。
DO<文件名>|<過(guò)程名>
(2)在名字后加一對(duì)小括號(hào),格式如下。
<文件名>|<過(guò)程名>()
3打開(kāi)過(guò)程文件
命令格式如下。
SET PROCEDURE TO[<含有過(guò)程的.prg文件>[,<過(guò)程文件2>,…][ADDITIVE]
4關(guān)閉過(guò)程文件
命令格式如下。
RELEASE PROCEDURE<過(guò)程文件1>[,<過(guò)程文件2>,…] &&主.子程序之間運(yùn)行流程
8.參數(shù)傳遞
? 模塊程序可以接收調(diào)用程序傳遞過(guò)來(lái)的參數(shù)。
(1)PARAMETERS<形參變量1>[,<形參變量2>,…]。
(2)LPARAMETERS<形參變量1>[,<形參變量2>,…]。? 調(diào)用參數(shù)調(diào)用模塊程序參數(shù)的格式如下。
1. DO<文件名>|<過(guò)程名>WITH<實(shí)參1>[,<實(shí)參2>,…]
引用傳
值傳(實(shí)參變量)2. <文件名>|<過(guò)程名>(<實(shí)參1>[,<實(shí)參2>,…])
值傳
(2)如果實(shí)參是變量。模塊中參數(shù)的傳遞分為兩種:按值傳遞(實(shí)參一般為常量和表達(dá)式)和引用傳遞(實(shí)參一般為變量)。參數(shù)的傳遞方式可以重新設(shè)置,格式如下。
SET UDFPARMS TO VALUE|REFERENCE 9.內(nèi)存變量的作用域
1.公共變量(上級(jí),本級(jí),下級(jí)模塊)
在任何模塊中都可使用的變量稱(chēng)為公共變量,公共變量必須先定義后使用,格式如下。
PUBLIC <內(nèi)存變量表> 1.命令窗口中直接定義的變量即公共變量
如果要在程序中定義公共變量,要使用如下語(yǔ)句:
PUBLIC <內(nèi)存變量表>
2私有變量(本模塊和下級(jí)模塊)
private <變量名>
在程序中直接使用(沒(méi)有預(yù)先聲明),而由系統(tǒng)自動(dòng)隱含建立的變量都是私有變量。
私有變量的作用域是建立它的模塊及其下屬的各層模塊。
3局部變量(本模塊)
局部變量只能在建立它的模塊中使用,不能在上層或下層模塊中使用。程序結(jié)束時(shí),自動(dòng)釋放局部變量。格式如下:LOCAL <內(nèi)存變量表>
第三章.Visual FoxPro數(shù)據(jù)庫(kù)及其操作 本章學(xué)習(xí)內(nèi)容概要
? 數(shù)據(jù)庫(kù)的建立、修改、打開(kāi)、關(guān)閉和刪除 ? 數(shù)據(jù)庫(kù)表的建立、修改、打開(kāi)、關(guān)閉和刪除
? 庫(kù)表索引的?立和表之間的參照完整性的設(shè)置
? 自由表的相關(guān)操作
? 在多個(gè)工作區(qū)中打開(kāi)表
? 設(shè)置表之間的臨時(shí)關(guān)聯(lián)
一.數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)的概念 數(shù)據(jù)庫(kù)的文件類(lèi)型及相關(guān)文件:.dbc 庫(kù)的建立?種方徏?項(xiàng)目、菜單、命令 命令:create database [<數(shù)據(jù)庫(kù)名>|?] 庫(kù)的打開(kāi)3種方式:項(xiàng)盾、菜單、命令 命令open data <文件名>|?][exclusive|share][noupdate] set data to [<文件名>] 修改庫(kù)(3種):項(xiàng)目、菜單、命令 命令:modify database [<庫(kù)名>|?][nowait][noedit] 關(guān)閉庫(kù):關(guān)閉設(shè)計(jì)器并沒(méi)關(guān)庫(kù)
close database [<庫(kù)名>] 關(guān)當(dāng)前庫(kù)
close
all關(guān)所有的窗口
刪除庫(kù)的2種方法:項(xiàng)目中、命令 命令:delete database <庫(kù)名>|? [deletetables][recycle]
庫(kù)表 庫(kù)表的概念 注意:建庫(kù)表一定要有庫(kù)打開(kāi) 表的文件類(lèi)型及相關(guān)文件:.dbf.fpt(表備注文件)表建立3種方式:項(xiàng)目、在庫(kù)設(shè)計(jì)器中建、命令 表的設(shè)計(jì)包括:字段和記錄 字段取名 字段類(lèi)型和寬度 空值 “字段有效性”組框 命令:create [<表名>|?] 修改表結(jié)構(gòu)(3種):庫(kù)設(shè)計(jì)器中右擊表,選擇修改、命令 命令:modify structure 復(fù)制表:copy to <新表名>
(表要打開(kāi))復(fù)制表結(jié)構(gòu):copy structure to <新表名>
(表要打開(kāi))表的打開(kāi)3種方式:項(xiàng)目、菜單、命令 命令:use [<表名>|?] 表瀏覽3種方式:項(xiàng)目、庫(kù)中、命令 命令:browse 關(guān)閉表:use
close
table
all 關(guān)閉所有的表 delete
file
<文件名.擴(kuò)展名> 表記錄操作 追加記錄: append append blank(ctrl+y)不進(jìn)入編輯 追加空白記錄
append from
<表名> append from
array
<數(shù)組名>
插入記錄: insert [before] insert blank
修改記錄: browse 直接定光標(biāo)改
edit 和 change(交互式)replace [all] <字段名1>with <表達(dá)式1>,[<字段名2>with <表達(dá)式2>…][for <條件>] replace <字段名> with <表達(dá)式>,……
默認(rèn)范圍是當(dāng)前記錄
刪除記錄: 部分刪
鼠標(biāo)打上邏輯刪除標(biāo)記(ctrl+t),表——徹底刪除 delete [for <條件>]
打上邏輯刪除標(biāo)記(默認(rèn)范圍是當(dāng)前記錄)pack
徹底刪除那些打上邏輯刪除標(biāo)記的記錄
全部刪
打開(kāi)表 zap
清空記錄,保留表結(jié)構(gòu)。不管有沒(méi)有邏輯刪除標(biāo)記,全都物理刪除
顯示記錄:
list|display
[for<條件>][off]
查詢(xún)定位記錄
go|goto n 絕對(duì)定位指針 skip
n
相對(duì)定位指針
locate for <條件>
continue
條件定位針指
seek
<表達(dá)式>
(專(zhuān)門(mén)根據(jù)索引定位)刪除:
二.索引
概念: 記錄指針構(gòu)成的文件.cdx 索引的類(lèi)型
按功能分_ 主索引(主關(guān)鍵字)_ 候選索引 ? _ 唯一索引
_ 普通索引
按文件擴(kuò)展名分 _.idx
_.cdx 復(fù)合 索引的建立:(2種)表設(shè)計(jì)器:
單項(xiàng)索引:根據(jù)單個(gè)字段排列指針順序
復(fù)合字段索引: 根據(jù)多個(gè)字段表達(dá)式排列指針順序
命令: cdx index on <字段表達(dá)式> to <索引文件名> 生成.idx 文件
index
on
<字段表達(dá)式>
tag <索引標(biāo)記名>
生成與表同名的.cdx 結(jié)構(gòu)復(fù)合索引文件 [unique] 建立惟一索引 [candidate]建立候選索引
index on <字段> tag <索引標(biāo)記名> of
<索引文件名> 生成與表不同名的.cdx 非結(jié)構(gòu)復(fù)合索引文件
打開(kāi)索引文件:
set index to<索引文件名> 指定當(dāng)前索引:
set order to [tag]<索引名>[ascending|descending] 使用索引快速定位:
seek <字段值>[order <索引名>] 刪除索引:
delete tag <索引名>[all]
三.數(shù)據(jù)完整性
? 實(shí)體完整性與主關(guān)鍵字 ? 域完整性與約束規(guī)則
? 參照完整性和表之間的關(guān)聯(lián)(兩個(gè)相關(guān)之間記錄相互約束)相關(guān)表建立索引:父表建主索引,子表建普通索引 相關(guān)表永久聯(lián)系(關(guān)聯(lián))庫(kù)的清理
設(shè)置參照完整性約:更新、刪除、插入
四.自由表
自由表和數(shù)據(jù)庫(kù)表的聯(lián)系和區(qū)別 建立自由表 將自由表添加到數(shù)據(jù)庫(kù)中 項(xiàng)目、數(shù)據(jù)庫(kù)設(shè)計(jì)器、命令 命令:add table <表名> 從數(shù)據(jù)庫(kù)中移去表 項(xiàng)目、數(shù)據(jù)庫(kù)設(shè)計(jì)器、命令 命令:remove table <表名> 庫(kù)表與自由表之間相互轉(zhuǎn)換
五。多表的同時(shí)使用 工作區(qū)的使用
select 工作區(qū)號(hào)|別名|表別名 1,2,3……32767|a,b,c,d,e,f,g,h,I,j,w11,w12,……w32767
select 0
表之間的臨時(shí)關(guān)聯(lián) 作用:實(shí)現(xiàn)相關(guān)表指針的連動(dòng)。相關(guān)表建立索引
打開(kāi)表并使作索引(使用工作區(qū)打開(kāi)各相關(guān)表)Set relation to <索引關(guān)鍵字段> into <表名>
排序 sort to <新表名> on <字段名>/[a/d][/c],……(打開(kāi)現(xiàn)有的表,然后根據(jù)排序關(guān)鍵字生成新表)第四章.關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL 本章學(xué)習(xí)內(nèi)容:
? SQL的數(shù)據(jù)查詢(xún)功能
(select)
? SQL的數(shù)據(jù)操縱功能
(insert、update、delete)? SQL的數(shù)據(jù)定義功能
(create、drop、alter)查詢(xún)功能: 不用打開(kāi)表
簡(jiǎn)單查詢(xún):select <表達(dá)式> from <表名> [where <查詢(xún)條件>]
*
distinct 運(yùn)用 去掉重復(fù)值
字段取名: <表達(dá)式> as <名稱(chēng)>
或
<表達(dá)式>
<別名>
簡(jiǎn)單連接查詢(xún):(來(lái)自多個(gè)表的查詢(xún))等值連接
select <表達(dá)式> from <表名1> , <表名2>,… where <表名1>.<字段>=<表名2>.<字段> … [and<查詢(xún)條件>]
表取別名: <表名> as <別名>
或<表名>
<別名>
簡(jiǎn)單嵌套:select <表達(dá)式> from <表名> where <字段>
in(子查詢(xún))not
in in 表示等于其中之一
使用量詞和謂詞的查詢(xún):in<子查詢(xún)> , not in any|some <子查詢(xún)> 滿(mǎn)足其中之一
all <子查詢(xún)> 滿(mǎn)足其中所有
存在 exists
not exists
注意:嵌套只允許內(nèi)外二層,不允許嵌套里面再嵌套
幾個(gè)特殊運(yùn)算符
<字段> between <表達(dá)式1> and <表達(dá)式2> <字符型字段> like < 字符串表達(dá)式 >
% _ SQL like(<* ?>,<>)
排序:order
by
<字段>
asc|desc[, <字段> asc|desc,……] 只對(duì)最終結(jié)果排序
簡(jiǎn)單計(jì)算:count()計(jì)數(shù)
sum(<>)求和
avg()平均
max()min()分組與計(jì)算查詢(xún):
group by <分組字段1>
[,<分組字段2>]…
[where <條件>] group by <分組字段1>,[<分組字段2>],…[having <表達(dá)式>]
Isnull()利用空值查詢(xún):<字段表達(dá)式 >
is
null
<>
is not null
別名與自連接查詢(xún):(一個(gè)表內(nèi)部字段之間的連接)
<表名> as <別名>
內(nèi)外層互相關(guān)嵌套查詢(xún):
select <表達(dá)式> from <表1 a> where <表達(dá)式> in(select <表達(dá)式> from <表2 b> where
in(子查詢(xún))
使用量詞和謂詞的查詢(xún):in<子查詢(xún)> , not in
等于其中之一 any|some <子查詢(xún)>
滿(mǎn)足其中之一
工資> all(1220,1230)<字段> all <子查詢(xún)> 滿(mǎn)足其中所有
存在 exists
not exists
select <表達(dá)式> from <表1 a> where exists(select * from <表2 b> where
超連接查詢(xún):
內(nèi)聯(lián)接(等值聯(lián)接)、左聯(lián)接、右聯(lián)接、全聯(lián)接
select <表達(dá)式> from <表1> inner|left|right|full join <表2> on <表1.字段>=<表2.字段>[ where <條件>]
簡(jiǎn)單連接查詢(xún):(來(lái)自多個(gè)表的查詢(xún))等值連接
select <表達(dá)式> from <表名1> , <表名2>,… where <表名1>.<字段>=<表名2>.<字段> … [and<查詢(xún)條件>]
表取別名: <表名> as <別名>
或<表名>
<別名>
集合的并運(yùn)算:<查詢(xún)>union<查詢(xún)>
顯示部分結(jié)果:top n [percent] ……order by <排序字段>
查詢(xún)?nèi)ハ騿?wèn)題: 瀏覽
將查詢(xún)結(jié)果存放在數(shù)組中:into array <數(shù)組名> 將查詢(xún)結(jié)果存放在臨時(shí)表中:into cursor <表名> 將查詢(xún)結(jié)果存放在永久表中:into table|dbf <表名> 將查詢(xún)結(jié)果存放在文本文件中:to file <文件名>.txt
操作功能:表記錄
插入(insert),修改(update),刪除(delete)插入
insert into <表名>[(字段名表)] values(<表達(dá)式1>,…)
insert into <表名>from array <數(shù)組名> 插入來(lái)自數(shù)組
insert into <表名>from memvar 插入來(lái)自同名的內(nèi)存變量
insert
更新:
update <表名> set <字段名>=<表達(dá)式> [ where <條件>] 默認(rèn)范圍是所有記錄,不要打開(kāi)表操作
replace [all] <字段> with <表達(dá)式>
[for <條件> ] 默認(rèn)范圍是當(dāng)前記錄,而且一定要打開(kāi)表操作
邏輯刪除:
delete from <表名> [ where <條件>] 默認(rèn)范圍是所有記錄
delete [for<>]默認(rèn)范圍是當(dāng)前記錄,而且一定要打開(kāi)表操作
定義功能:新建表結(jié)構(gòu)(create), 修改表結(jié)構(gòu)(alter),刪除表(drop)
表定義:
create table <表名>[free](字段名 <類(lèi)型>(寬度)[<>],…)
表的刪除:drop table <表名>
表結(jié)構(gòu)的修改:
alter table <表名> ……(add drop alter rename)
? alter table <表名> add [column] <字段名> <字型>(<寬度>)
為表增加字段
? alter table <表名> add [column] <字段名> <字型>(<寬度>)check <邏輯表達(dá)式> [
為表增加字段并同時(shí)設(shè)置規(guī)則
? alter table <表名> alter [column] <字段名> set check <邏輯表達(dá)式>[error<>] 為現(xiàn)有字段設(shè)置規(guī)則或修改規(guī)則
? alter table <表名> alter [column] <字段名> set default <邏輯表達(dá)式> 為現(xiàn)有字段設(shè)默認(rèn)值或修改默認(rèn)值
? alter table <表名>
rename [column ]<字段名> to <新字段名> 重命名字段
? alter table <表名> drop [ column] <字段名> 刪除字段
? alter table <表名> alter [column] <字段名> <類(lèi)型>(<寬度>)修改字段的類(lèi)型或?qū)挾?/p>
? alter table <表名> add unique |primary key <索引表達(dá)式> tag <索引標(biāo)簽名> 為表增加主索引或候選索引
? alter table <表名>drop primary key | unique tag <索引標(biāo)簽名> 為表刪除主索引或候選索引
視圖定義: 是庫(kù)里面的對(duì)象,是表的虛擬窗口,是虛擬的表。在磁盤(pán)中不存在文件
open data <庫(kù)名> create
view <視圖名> as
<查詢(xún)語(yǔ)句> 注意:打開(kāi)庫(kù),然后執(zhí)行定義命令
刪除視圖:drop view <視圖名>
第五章.查詢(xún)與視圖 查詢(xún)文件:*.qpr 查詢(xún)概念
查詢(xún)?cè)O(shè)計(jì)器的操作 查詢(xún)文件的建立、使用 查詢(xún)?cè)O(shè)計(jì)器的局限性
do <名稱(chēng).擴(kuò)展名>
視圖 視圖概念
視圖建立、使用 視圖與數(shù)據(jù)更新
第六章.表單設(shè)計(jì)與應(yīng)用 面向?qū)ο蟮母拍?/p>
對(duì)象:客觀世界中的任何事物都可以看作是對(duì)象,對(duì)象可以是具體的事物,也可以是抽象的概念。
類(lèi):對(duì)一類(lèi)相似對(duì)象的性質(zhì)描述,這些對(duì)象具有相同的性質(zhì):相同的屬性及方法
對(duì)象的屬性、方法和事件
屬性:用于描述對(duì)象特性稱(chēng)為對(duì)對(duì)象的屬性
方法:是VF為對(duì)象內(nèi)定的通用過(guò)程,指定對(duì)象執(zhí)行的特定動(dòng)作。
事件:由系統(tǒng)預(yù)定義而由用戶(hù)或系統(tǒng)發(fā)出的動(dòng)作 注:屬性、方法可新建,而事件不可新建 繼承與父類(lèi)子類(lèi)
(類(lèi))繼承:指基于現(xiàn)有類(lèi)創(chuàng)建新類(lèi)時(shí),新類(lèi)繼承了現(xiàn)有類(lèi)的方法和屬性
對(duì)象屬性及對(duì)象方法調(diào)用的基本格式如下: <對(duì)象引用名>.<對(duì)象屬性> = <表達(dá)式> <對(duì)象引用名>.<對(duì)象方法> 對(duì)象(容器與控件)
控件:是一個(gè)可以以圖形的方式顯示出來(lái)并能與用戶(hù)進(jìn)行交互的對(duì)象 容器:一種特殊的控件,它可包含其它的控件的控件 對(duì)象的引用方式:
this
當(dāng)前對(duì)象
thisfrom 當(dāng)前對(duì)象所在的(表單)窗口 parent 當(dāng)前對(duì)象的直接容器
創(chuàng)建與管理表單 創(chuàng)建 向?qū)?設(shè)計(jì)器
命令:create
form
<文件名> 運(yùn)行:do
form
<文件名> 文件類(lèi)型:*.scx 管理表單屬性和方法 表單設(shè)計(jì)器環(huán)境 屬性窗口 控件工具欄 數(shù)據(jù)環(huán)境: 布局 TAB盒 代碼
常用的表單屬性
alwaysontop atutocenter backcolor borderstyle caption closable maxbutton minbutton movable
scorllobars windowstate windowtype name 對(duì)象代碼中的引用名(任何對(duì)象都有)caption 是標(biāo)題文本
創(chuàng)建新屬性、方法
常用事件和方法
運(yùn)行時(shí)事件 load init(系統(tǒng)自動(dòng)引發(fā))load表單生成之前執(zhí)行 init 表單生成之時(shí)執(zhí)行 關(guān)閉時(shí)事件(系統(tǒng)自動(dòng)引發(fā))destroy釋放事件
unload
交互時(shí)事件(一定要用戶(hù)去響應(yīng))
gotfocus
click
rightclick
dbclick interactivechange(改變值事件)
交互時(shí)事件(用戶(hù)引發(fā)的事件)
方法: release(釋放)
refresh(刷新)
show(顯示表單)
hide(隱藏表單)
setfocus(使對(duì)象獲得焦點(diǎn))
show hide(專(zhuān)門(mén)用于表單的顯示或隱藏)
visible(表單中的其它控件顯示或隱藏由該屬性控制).t.,.f.常用表單控件
標(biāo)簽
caption name 對(duì)象引用名稱(chēng)
fontname 字體
fontsize字號(hào)
height 對(duì)象的高度
width 寬度
(任何對(duì)象都有)left對(duì)象的左邊離表單左邊的距離
top
backstyle
autosize
caption
標(biāo)簽上設(shè)置訪(fǎng)問(wèn)鍵(<字母)alignment 文本對(duì)齊方式
命令按鈕
default(設(shè)置成確認(rèn),響應(yīng) enter)cancel(設(shè)置成取消按鈕
響應(yīng)esc)
enabled
設(shè)置是否能響應(yīng)用戶(hù)事件
visible 設(shè)置控件的顯示隱藏.t..f.(任何對(duì)象都有)
文本框:
controlsource 綁定變量
存取某變量的值(字段變量或內(nèi)存變量)
value
c
n d l
各種類(lèi)型的數(shù)據(jù),但默認(rèn)字符串
passwordchar
占位符
inputmask
x
#
6個(gè)數(shù)字
編輯框: value(c)hideselection
readonly
scrollbars
selstart 返回被選文本的起始位置
sellength 返回被選文本的長(zhǎng)度
seltext 返回被選文本的內(nèi)容
復(fù)選框:
caption
value 返應(yīng)復(fù)選框選中否
n(0,1)默認(rèn) L(.t.,.f.)controlsource
列表框: rowsourcetype數(shù)據(jù)源類(lèi)型
rowsource 數(shù)據(jù)源rowsourcetype =0
只能在程序運(yùn)行過(guò)程中用
<對(duì)象引用名>.additem(<字符串>)load 方法 來(lái)添加條目
init
移去條目的方法: <對(duì)象引用名>.removeitem(n)
值:手工添加條目
rowsourcetype =1
可在屬性框中直接設(shè)置rowsource的值,或在 程序運(yùn)行過(guò)程中 指定,格式是: <對(duì)象名>.rowsource=[one,two,three,four] 別名
rowsourcetype =2 一定要打開(kāi)表 <對(duì)象名>.rowsource=[<別名>] SQL rowsourcetype =3
可在屬性框中直接設(shè)置rowsource的值 <對(duì)象名>.rowsource=[
<對(duì)象名>.rowsource=[<查詢(xún)文件名>] 數(shù)組
rowsourcetype =5
<對(duì)象名>.rowsource=[<數(shù)組名>] 字段的值作為數(shù)源
rowsourcetype =6
一定要打開(kāi)表 <對(duì)象名>.rowsource=[<字段變量>] 文件作為數(shù)據(jù)源 rowsourcetype =7
<對(duì)象名>.rowsource=[*.dbf] 結(jié)構(gòu):表字段作為條目
rowsourcetype =8
一定要打開(kāi)表
<對(duì)象名>.rowsource=[表名]
removeitem(n)
columncount
multiselect 是否是多重選擇,默認(rèn)單選.f.VAlue 單選 value 值就是選中的條目字符串 多重選擇 value值不可用
c
n
當(dāng)單選條目時(shí), 返回是選中條的值;選中條目的條目序號(hào)
list(a,b)存取條目值
listcount
返回列表框的條目總數(shù)
n
selected(n)判斷第N 條條目是不是被選中了.t..f.組合框: style 0(下拉組合),2(下拉列表框)
value c
沒(méi)有多重選擇(multiselect)
容器
命令按鈕組:
buttoncount,buttons(i)
value n ,c 返回第幾個(gè)按鈕被選中了
注:容器內(nèi)部編輯方法——右擊容器——編輯
選項(xiàng)組控件:buttoncount, buttons(i)
value n , c
表格控件 : recordsoucetype數(shù)據(jù)類(lèi)型
recordsource 數(shù)據(jù)源(字符型)0 表
<表名> 1別名(打開(kāi)表的名稱(chēng))
<表別名> 2提示
3查詢(xún)文件
<查詢(xún)文件名> 4 SQL 語(yǔ)句
caption
alignmet recordsoucetype=0
recordsource=[<表名>]
有表打開(kāi) recordsoucetype=1
recordsource=[<別名>]
recordsoucetype=4
recordsource=[
頁(yè)框組控件: pagecount
pages(I)
tabs
tabstrech
activepage 頁(yè)
計(jì)時(shí)器:timer 事件
計(jì)時(shí)器屬性
interval
引發(fā)timer事件的時(shí)間間隔
微調(diào)器:spinnerhighvalue spinnerlowvalue
increment
value
第七章.菜單設(shè)計(jì)與應(yīng)用
菜單類(lèi)型:條形菜單和彈出式菜單
典型菜單系統(tǒng)由一個(gè)條形菜單和一組彈出式菜單組成 恢復(fù)系統(tǒng)設(shè)置:
set
sysmenu
nosave set sysmenu to
default 恢復(fù)到系統(tǒng)設(shè)置 下拉式菜單設(shè)計(jì) 基本過(guò)程
新建:create menu
<文件名> 修改:modify menu <文件名> 運(yùn)行:do <文件名>
注:擴(kuò)展名不能省略(訪(fǎng)問(wèn)鍵、分組、快捷方式、跳過(guò)、信息)顯示菜單: 常規(guī)選項(xiàng) 菜單選項(xiàng)
? 為頂層表單添加菜單 5點(diǎn)
1.建立菜單
2.設(shè)置常規(guī)選項(xiàng)卡為:頂層表單,并生成程序 3.把表單的showwindow =2 4.在表單的 init 事件中運(yùn)行菜單程序: do <文件名.擴(kuò)展名> with this 5.在表單的destory 事件中
:release
menu <菜單名>
菜單如何引用表單對(duì)象:<表單文件名>.<對(duì)象名>.<屬性|方法>
快捷菜單設(shè)計(jì)
為表單添加快捷菜單
2點(diǎn)
1.設(shè)計(jì)好快捷菜單并生成程序文件
2.在表單或其它控件的rightclick 事件 運(yùn)行菜單程序
do
<文件名.mpr>
(4點(diǎn))
快捷菜單如何引用表單對(duì)象
<表單文件名>.<對(duì)象名>.<屬性|方法> <形參名>.<對(duì)象名>.<屬性|方法>
.mnx.mpr
第八章.報(bào)表設(shè)計(jì) 文件類(lèi)型:*.frx 報(bào)表主要包括:數(shù)據(jù)源和布局 所有表、查詢(xún)、視圖
布局分:列報(bào)表、行報(bào)表、一對(duì)多報(bào)表、多欄報(bào)表 創(chuàng)建報(bào)表: 向?qū)?快速報(bào)表 設(shè)計(jì)器
create report <報(bào)表文件名>
報(bào)表工具 帶區(qū)及作用 控件
分組報(bào)表的設(shè)計(jì)和多欄報(bào)表 報(bào)表預(yù)覽:
report form <文件名> preview 第九章.應(yīng)用程序開(kāi)始生成 應(yīng)用程序項(xiàng)目綜合踐 系統(tǒng)開(kāi)發(fā)基本步驟 連編應(yīng)用程序 主程序設(shè)計(jì)
使用應(yīng)用程序生成器
第二篇:計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析
計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析:VF基礎(chǔ)知識(shí)
1.1 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
考點(diǎn)1 計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展
1數(shù)據(jù)與數(shù)據(jù)處理
數(shù)據(jù)是指存儲(chǔ)在某一種媒體上能夠識(shí)別的物理符號(hào)。數(shù)據(jù)處理的中心問(wèn)題是數(shù)據(jù)管理。
2計(jì)算機(jī)數(shù)據(jù)管理
(l)人工管理。
(2)文件系統(tǒng)。
(3)數(shù)據(jù)庫(kù)系統(tǒng)。
(4)分布式數(shù)據(jù)庫(kù)系統(tǒng)。
(5)面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)。
3數(shù)據(jù)庫(kù)管理系統(tǒng)
為數(shù)據(jù)庫(kù)的建立、使用和維護(hù)而配置的軟件稱(chēng)為數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS(DataBase Management System)。
圖1-1 數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)與程序的關(guān)系 考點(diǎn)2 數(shù)據(jù)庫(kù)系統(tǒng)
1有關(guān)數(shù)據(jù)庫(kù)的概念
(1)數(shù)據(jù)庫(kù)(DataBase):存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上、結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。
(2)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(DBAS):是由系統(tǒng)開(kāi)發(fā)人員利用數(shù)據(jù)庫(kù)系統(tǒng)資源開(kāi)發(fā)出來(lái)的,面向某一類(lèi)實(shí)際應(yīng)用的應(yīng)用軟件系統(tǒng)。
(3)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS):對(duì)數(shù)據(jù)實(shí)行專(zhuān)門(mén)管理,提供安全性和完整性等統(tǒng)一機(jī)制,可以對(duì)數(shù)據(jù)庫(kù)的建立、使用和維護(hù)進(jìn)行管理。
(4)數(shù)據(jù)庫(kù)系統(tǒng)(DBS):是指引進(jìn)數(shù)據(jù)庫(kù)技術(shù)后的計(jì)算機(jī)系統(tǒng),實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量相關(guān)數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享的便利手段。數(shù)據(jù)庫(kù)系統(tǒng)由硬件系統(tǒng)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)及相關(guān)軟件、數(shù)據(jù)庫(kù)管理員和用戶(hù)等部分組成。
2數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)
(l)實(shí)現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余。
(2)采用特定的數(shù)據(jù)模型。
(3)具有較高的數(shù)據(jù)獨(dú)立性。
(4)具有統(tǒng)一的數(shù)據(jù)控制功能??键c(diǎn)3 數(shù)據(jù)模型
1實(shí)體的描述
(1)實(shí)體。
(2)實(shí)體的屬性。
(3)實(shí)體集和實(shí)體型。
2實(shí)體間聯(lián)系及聯(lián)系的種類(lèi)
(1)一對(duì)一聯(lián)系。
(2)一對(duì)多聯(lián)系。
(3)多對(duì)多聯(lián)系。
3數(shù)據(jù)模型簡(jiǎn)介
為了反映事物本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫(kù)中的數(shù)據(jù)必須有一定的結(jié)構(gòu),這種結(jié)構(gòu)用數(shù)據(jù)模型來(lái)表示,通常有以下3種。
(1)層次數(shù)據(jù)模型。
(2)網(wǎng)狀數(shù)據(jù)模型。
(3)關(guān)系數(shù)據(jù)模型。小提示:
數(shù)據(jù)庫(kù)DB、數(shù)據(jù)庫(kù)系統(tǒng)DBS和數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS之間的關(guān)系是DBS包括DB和DBMS。1.2 關(guān)系模型
關(guān)系模型的用戶(hù)界面非常簡(jiǎn)單,一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。這種用二維表的形式表示實(shí)體和實(shí)體間聯(lián)系的數(shù)據(jù)模型稱(chēng)為關(guān)系數(shù)據(jù)模型。
1關(guān)系術(shù)語(yǔ)
(l)關(guān)系:一個(gè)關(guān)系就是一張二維表,每個(gè)關(guān)系有一個(gè)關(guān)系名。在Visual FoxPro中一個(gè)關(guān)系存儲(chǔ)為一個(gè)文件,擴(kuò)展名為DBF,稱(chēng)為“表”。
對(duì)關(guān)系的描述稱(chēng)為關(guān)系模式,一個(gè)關(guān)系模式對(duì)應(yīng)一個(gè)關(guān)系的結(jié)構(gòu),格式為: 關(guān)系名(屬性名1,屬性名2,?,屬性名n)
(2)元組:在一個(gè)二維表中,水平方向的行稱(chēng)為元組,每一行為一個(gè)元組。
(3)屬性:將二維表中垂直方向的列稱(chēng)為屬性,每一列都有一個(gè)屬性名。
(4)域:屬性的取值范圍,即不同元組對(duì)同一個(gè)屬性的取值所限定的范圍。
(5)關(guān)鍵字:屬性或?qū)傩缘慕M合,其值能夠唯一地標(biāo)識(shí)一個(gè)元組。在Visual FoxPro中,主關(guān)鍵字和候選關(guān)鍵字就起唯一標(biāo)志一個(gè)元組的作用。
(6)外部關(guān)鍵字:如果表中一個(gè)字段不是本表的主關(guān)鍵字或候選關(guān)鍵字,而是另一個(gè)表的主關(guān)鍵字或候選關(guān)鍵字,那么這個(gè)字段(屬性)就稱(chēng)為外部關(guān)鍵字。
2關(guān)系的特點(diǎn)
(1)關(guān)系必須規(guī)范化。
(2)在同一個(gè)關(guān)系中不能出現(xiàn)同名屬性,Visual FoxPro中表示為字段名的不同。
(3)關(guān)系中不允許有完全相同的元組,即冗余。
(4)在一個(gè)關(guān)系中元組的次序無(wú)關(guān)緊要。
(5)在一個(gè)關(guān)系中列的次序無(wú)關(guān)緊要??键c(diǎn)5 關(guān)系運(yùn)算
對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)時(shí),需要找到用戶(hù)感興趣的數(shù)據(jù),這就需要對(duì)關(guān)系進(jìn)行一定的關(guān)系運(yùn)算,關(guān)系的基本運(yùn)算有兩類(lèi):傳統(tǒng)的集合運(yùn)算和專(zhuān)門(mén)的關(guān)系運(yùn)算。
1傳統(tǒng)的集合運(yùn)算
(1)并:兩個(gè)相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個(gè)關(guān)系的全部元組組成的集合。
(2)差:兩個(gè)相同結(jié)構(gòu)關(guān)系的差是由屬于前一個(gè)關(guān)系的元組而不屬于后一個(gè)關(guān)系的元組組成的集合。例如,關(guān)系R和S的差結(jié)果是由屬于R但不屬于S的元組組成的集合。
(3)交:兩個(gè)相同結(jié)構(gòu)關(guān)系的交是由屬于這兩個(gè)關(guān)系所共有的元組組成的集合。
2專(zhuān)門(mén)的關(guān)系運(yùn)算
(1)選擇:從關(guān)系中找出滿(mǎn)足給定條件的元組的操作。
(2)投影:從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系:
(3)連接:關(guān)系的橫向結(jié)合,將兩個(gè)關(guān)系模式拼接成一個(gè)更寬的關(guān)系模式。
(4)自然連接:在連接運(yùn)算中,按照字段值對(duì)應(yīng)相等為條件進(jìn)行的連接操作稱(chēng)為等值連接。自然連接是去掉重復(fù)屬性的等值連接。小提示:
選擇和投影運(yùn)算的操作對(duì)象只是一個(gè)表,相當(dāng)于對(duì)一個(gè)二維表進(jìn)行切割。連接運(yùn)算則需要把兩個(gè)表作為操作對(duì)象。如果兩個(gè)表以上進(jìn)行連接,應(yīng)當(dāng)兩兩進(jìn)行連接。1.3 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ) 考點(diǎn)6 數(shù)據(jù)庫(kù)設(shè)計(jì)步驟
1設(shè)計(jì)原則
(l)關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)應(yīng)遵從概念單一化“一事一地”的原則。
(2)避免在表之間出現(xiàn)重復(fù)字段。
(3)表中的字段必須是原始數(shù)據(jù)和基本數(shù)據(jù)元素。
(4)用外部關(guān)鍵字保證有關(guān)聯(lián)的表之間的聯(lián)系。
2設(shè)計(jì)步驟
利用Visual FoxPro來(lái)開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),可以按照以下步驟來(lái)設(shè)計(jì)。
(1)需求分析。
(2)確定需求表C
(3)確定需求字段。
(4)確定聯(lián)系。
(5)設(shè)計(jì)精確
1.4 Visual FoxPro系統(tǒng)概述 考點(diǎn)7 Visual FoxPro的特點(diǎn)
(l)增強(qiáng)項(xiàng)目與數(shù)據(jù)庫(kù)管理。
(2)提高應(yīng)用程序開(kāi)發(fā)的生產(chǎn)率。
(3)互操作性與支持Internet。
(4)充分利用已有數(shù)據(jù)。
第三篇:計(jì)算機(jī)二級(jí)VF考試試題之2002.9
2002年9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試題
Visual FoxPro 數(shù)據(jù)庫(kù)程序設(shè)計(jì)
一、選擇題(每題2分,共70分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫(xiě)在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)在下列四個(gè)選項(xiàng)中,不屬于基本關(guān)系運(yùn)算的是
A)連接 B)投影 C)選擇 D)排序
(2)如果一個(gè)班只能有一個(gè)班長(zhǎng),而且一班長(zhǎng)不能同時(shí)擔(dān)任其它班的班長(zhǎng),班級(jí)和班長(zhǎng)兩個(gè)實(shí)體之間的關(guān)系屬于
A)一對(duì)一聯(lián)系 B)一對(duì)二聯(lián)系 C)多對(duì)多聯(lián)系 D)一對(duì)多聯(lián)系
(3)Visual FoxPro支持的數(shù)據(jù)模型是
A)層次數(shù)據(jù)模型 B)關(guān)系數(shù)據(jù)模型 C)網(wǎng)狀數(shù)據(jù)模型 D)樹(shù)狀數(shù)據(jù)模型
(4)在Visual FoxPro的命令窗口中鍵入CREATE DATA命令以后,屏幕會(huì)出現(xiàn)一個(gè)創(chuàng)建對(duì)話(huà)框,要想完成同樣的工作,還可以采取如下步驟
A)單擊“文件”菜單中的“新建”按鈕,然后在新建對(duì)話(huà)框中選定“數(shù)據(jù)庫(kù)”單選鈕,再單擊“新建文件”命令按鈕
B)單擊“文件”菜單中的“新建”按鈕,然后在新建對(duì)話(huà)框中選定“數(shù)據(jù)庫(kù)”單選鈕,再單擊“向?qū)А泵畎粹o
C)單擊“文件”菜單中的“新建”按鈕,然后在新建對(duì)話(huà)框中選定“表”單選鈕,再單擊“新建文件”命令按鈕
D)單擊“文件”菜單中的“新建”按鈕,然后在新建對(duì)話(huà)框中選定“表”單選鈕,再單擊“向?qū)А泵畎粹o
(5)將內(nèi)存變量定義為全局變量的Visual FoxPro命令是
A)LOCAL B)PRIVATE C)PUBLIC D)GLOBAL
(6)擴(kuò)展名為DBC的文件是
A)表單文件 B)數(shù)據(jù)庫(kù)表文件 C)數(shù)據(jù)庫(kù)文件 D)項(xiàng)目文件
(7)假設(shè)已經(jīng)生成了名為mymenu的菜單文件,執(zhí)行該菜單文件的命令是
A)DO mymenu B)DO mymenu.mpr C)DO mymenu.pjx D)DO mymenu.mnx
(8)下面有關(guān)索引的描述正確的是
A)建立索引以后,原來(lái)的數(shù)據(jù)庫(kù)表文件中記錄的物理順序?qū)⒈桓淖傿)索引與數(shù)據(jù)庫(kù)表的數(shù)據(jù)存儲(chǔ)在一個(gè)文件中
C)創(chuàng)建索引是創(chuàng)建一個(gè)指向數(shù)據(jù)庫(kù)表文件記錄的指針構(gòu)成的文件D)使用索引并不能加快對(duì)表的查詢(xún)操作
(9)若所建立索引的字段值不允許重復(fù),并且一個(gè)表中只能創(chuàng)建一個(gè),它應(yīng)該是
A)主索引 B)惟一索引 C)候選索引 D)普通索引
(10)參照完整性的規(guī)則不包括
A)更新規(guī)則 B)刪除規(guī)則 C)插入規(guī)則 D)檢索規(guī)則
(11)一個(gè)數(shù)據(jù)庫(kù)名為student,要想打開(kāi)該數(shù)據(jù)庫(kù),應(yīng)使用命令
A)OPEN student B)OPEN DATA student C)USE DATA student D)USE student
(12)下列函數(shù)中函數(shù)值為字符型的是
A)DATE()B)TIME()C)YEAR()D)DATETIME()
(13)在下面的數(shù)據(jù)類(lèi)型中默認(rèn)值為.F.的是
A)數(shù)值型 B)字符型 C)邏輯型 D)日期型
(14)下面有關(guān)HAVING子句描述錯(cuò)誤的是
A)HAVING子句必須與GROUP BY子句同時(shí)使用,不能單獨(dú)使用B)使用HAVING子句的同時(shí)不能使用WHERE子句
C)使用HAVING子句的同時(shí)可以使用WHERE子句D)使用HAVING子句的作用是限定分組的條件
(15)~(27)使用的數(shù)據(jù)如下:
當(dāng)前盤(pán)當(dāng)前目錄下有數(shù)據(jù)庫(kù)db_stock,其中有數(shù)據(jù)庫(kù)表stock.dbf,該數(shù)據(jù)庫(kù)表的內(nèi)容是: 股票代碼 股票名稱(chēng) 單價(jià) 交易所
600600 青島啤酒 7.48 上海
600601 方正科技 15.20 上海
600602 廣電電子 10.40 上海
600603 興業(yè)房產(chǎn) 12.76 上海
600604 二紡機(jī) 9.96 上海
600605 輕工機(jī)械 14.59 上海
000001 深發(fā)展 7.48 深圳
000002 深萬(wàn)科 12.50 深圳
(15)執(zhí)行如下SQL語(yǔ)句后
SELECT*FROM stock INTO DBF stock ORDER BY 單價(jià)
A)系統(tǒng)會(huì)提示出錯(cuò)信息B)會(huì)生成一個(gè)按“單價(jià)”升序排序的表文件,將原來(lái)的stock.dbf文件覆蓋
C)會(huì)生成一個(gè)按“單價(jià)”降序排序的表文件,將原來(lái)的stock.dbf文件覆蓋
D)不會(huì)生成排序文件,只在屏幕上顯示一個(gè)按“單價(jià)”升序排序的結(jié)果
(16)執(zhí)行下列程序段以后,內(nèi)存變量a的內(nèi)容是
CLOSE DATABASE
a=0
USE stock
GO TOP
DO WHILE.NOT.FOF()
I(yíng)F 單價(jià)>10
a=a+1
ENDIF
SKIP
ENDDO
A)1 B)3 C)5 D)7
(17)有如下SQL SELECT語(yǔ)句
SELECT*FROM stock WHERE單價(jià)BETWEEN 12.76 AND 15.20
與該語(yǔ)句等價(jià)的是
A)SELECT*FROM stock WHERE 單價(jià)<=15.20.AND.單價(jià)>=12.76
B)SELECT*FROM stock WHERE 單價(jià)<15.20.AND.單價(jià)>12.76
C)SELECT*FROM stock WHERE 單價(jià)>=15.20.AND.單價(jià)<=12.76
D)SELECT*FROM stock WHERE 單價(jià)>15.20.AND.單價(jià)<12.76
(18)如果在建立數(shù)據(jù)庫(kù)表stock.dbf時(shí),將單價(jià)字段的字段有效性規(guī)則設(shè)為“單價(jià)>0”,通過(guò)該設(shè)置,能保證數(shù)據(jù)的A)實(shí)體完整性 B)域完整性 C)參照完整性 D)表完整性
(19)在當(dāng)前盤(pán)當(dāng)前目錄下刪除表stock的命令是
A)DROP stock B)DELETE TABLE stock C)DROP TABLE stock D)DELETE stock
(20)有如下SQL語(yǔ)句
SELECT max(單價(jià))INTO ARRAY a FROM stock
執(zhí)行該語(yǔ)句后
A)a[1]的內(nèi)容為15.20 B)a[1]的內(nèi)容為6 C)a[0]的內(nèi)容為15.20 D)a[0]的內(nèi)容為6
(21)有如下SQL語(yǔ)句
SELECT 股票代碼,avg(單價(jià))as 均價(jià) FROM stock;
GROUP BY 交易所 INTO DBF temp
執(zhí)行該語(yǔ)句后temp表中第二條記錄的“均價(jià)”字段的內(nèi)容是
A)7.48 B)9.99 C)11.73 D)15.20
(22)將stock表的股票名稱(chēng)字段的寬度由8改為10,應(yīng)使用SQL語(yǔ)句
A)ALTER TABLE stock股票名稱(chēng) WITH c(10)B)ALTER TABLE stock股票名稱(chēng) c(10)C)ALTER TABLE stock ALTER股票名稱(chēng) c(10)D)ALTER stock ALTER 股票名稱(chēng) c(10)
(23)有如下SQL語(yǔ)句
CREATE VIEW stock_view AS SELECT*FROM stock WHERE 交易所=“深圳”
執(zhí)行該語(yǔ)句后產(chǎn)生的視圖包含的記錄個(gè)數(shù)是
A)1 B)2 C)3 D)4
(24)有如下SQL語(yǔ)句
CREATE VIEW view_stock AS SELECT 股票名稱(chēng)AS名稱(chēng),單價(jià)FROM stock
執(zhí)行該語(yǔ)句后產(chǎn)生的視圖含有的字段名是
A)股票名稱(chēng)、單價(jià) B)名稱(chēng)、單價(jià)
C)名稱(chēng)、單價(jià)、交易所 D)股票名稱(chēng)、單價(jià)、交易所
(25)下面有關(guān)對(duì)視圖的描述正確的是
A)可以使用MODIFY STRUCTURE命令修改視圖的結(jié)構(gòu)B)視圖不能刪除,否則影響原來(lái)的數(shù)據(jù)文件
C)視圖是對(duì)表的復(fù)制產(chǎn)生的D)使用SQL對(duì)視圖進(jìn)行查詢(xún)時(shí)必須事先打開(kāi)該視圖所在的數(shù)據(jù)庫(kù)
(26)執(zhí)行如下SQL語(yǔ)句后
SELECT DISTINCT 單價(jià) FROM stock;
WHERE 單價(jià)=(SELECT min(單價(jià))FROM stock)INTO DBF stock_x
表stock_x中的記錄個(gè)數(shù)是
A)1 B)2 C)3 D)4
(27)求每個(gè)交易所的平均單價(jià)的SQL語(yǔ)句是
A)SELECT 交易所,avg(單價(jià))FROM stock GROUP BY 單價(jià)B)SELECT 交易所,avg(單價(jià))FROM stock ORDER BY 單價(jià)
C)SELECT 交易所,avg(單價(jià))FROM stock ORDER BY 交易所D)SELECT 交易所,avg(單價(jià))FROM stock GROUP BY 交易所
(28)視圖設(shè)計(jì)器中含有的、但查詢(xún)?cè)O(shè)計(jì)器中卻沒(méi)有的選項(xiàng)卡是
A)篩選 B)排序依據(jù) C)分組依據(jù) D)更新條件
(29)下面關(guān)于查詢(xún)描述正確的是
A)可以使用CREATE VIEW打開(kāi)查詢(xún)?cè)O(shè)計(jì)器B)使用查詢(xún)?cè)O(shè)計(jì)器可以生成所有的SQL查詢(xún)語(yǔ)句
C)使用查詢(xún)?cè)O(shè)計(jì)器生產(chǎn)的SQL語(yǔ)句存盤(pán)后將存放在擴(kuò)展名為QPR的文件中D)使用DO語(yǔ)句執(zhí)行查詢(xún)時(shí),可以不帶擴(kuò)展名
(30)使用報(bào)表向?qū)Фx報(bào)表時(shí),定義報(bào)表布局的選項(xiàng)是
A)列數(shù)、方向、字段布局 B)列數(shù)、行數(shù)、字段布局
C)行數(shù)、方向、字段布局 D)列數(shù)、行數(shù)、方向
(31)能夠?qū)⒈韱蔚腣isible屬性設(shè)置為.T.,并使表單成為活動(dòng)對(duì)象的方法是
A)Hide B)Show C)Release D)SetFocus
(32)下面對(duì)編輯框(EditBox)控制屬性的描述正確的是
A)SelLength屬性的設(shè)置可以小于0B)當(dāng)ScrollBars的屬性值為0時(shí),編輯框內(nèi)包含水平滾動(dòng)條
C)SelText屬性在做界面設(shè)計(jì)時(shí)不可用,在運(yùn)行時(shí)可讀寫(xiě)D)Readonly屬性值為.T.時(shí),用戶(hù)不能使用編輯框上的滾動(dòng)條
(33)下面對(duì)控件的描述正確的是
A)用戶(hù)可以在組合框中進(jìn)行多重選擇 B)用戶(hù)可以在列表框中進(jìn)行多重選擇
C)用戶(hù)可以在一個(gè)選項(xiàng)組中選中多個(gè)選項(xiàng)按鈕D)用戶(hù)對(duì)一個(gè)表單內(nèi)的一組復(fù)選框只能選中其中一個(gè)
(34)確定列表框內(nèi)的某個(gè)條目是否被選定應(yīng)使用的屬性是
A)Value B)ColumnCount C)ListCount D)Selected
(35)設(shè)有關(guān)系R1和R2,經(jīng)過(guò)關(guān)系運(yùn)算得到結(jié)果S,則S是
A)一個(gè)關(guān)系 B)一個(gè)表單 C)一個(gè)數(shù)據(jù)庫(kù) D)一個(gè)數(shù)組
二、填空題(每空2分,共30分)
請(qǐng)將答案分別寫(xiě)在答題卡中【1】至【15】的橫線(xiàn)上,答在試卷上不得分。
(1)Visual FoxPro 6.0是一個(gè) [1] 位的數(shù)據(jù)庫(kù)管理系統(tǒng)。
(2)在連接運(yùn)算中,[2] 連接是去掉重復(fù)屬性的等值連接。
(3)項(xiàng)目管理器的 [3] 選項(xiàng)卡用于顯示和管理數(shù)據(jù)庫(kù)、自由表和查詢(xún)等。
(4)自由表的擴(kuò)展名是 [4]。
(5)LEFT(“123456789”,LEN(“數(shù)據(jù)庫(kù)”))的計(jì)算結(jié)果是 [5]。
(6)同一個(gè)表的多個(gè)索引可以創(chuàng)建在一個(gè)索引文件中,索引文件名與相關(guān)的表同名,索引文件的擴(kuò)展名是 [6],這種索引稱(chēng)為 [7]。
(7)用來(lái)確定筆選框是否被選中的屬性是 [8],用來(lái)指定顯示在復(fù)選框旁的文字的屬性是
[9]。
下面各題使用如下的“教師”表和“學(xué)院”表
“教師”表
職工號(hào)姓名職稱(chēng)年齡工資系號(hào)
11020001 肖天海 副教授35 2000.00 01
11020002 王巖鹽 教授40 3000.00 02
11020003 劉星魂 講師25 1500.00 01
11020004 張?jiān)滦?講師30 1500.00 03
11020005 李明玉 教授34 2000.00 01
11020006 孫民山 教授47 2100.00 02
11020007 錢(qián)無(wú)名 教授49 2200.00 03
“學(xué)院”表
系號(hào) 系名
01 英語(yǔ)
02 會(huì)計(jì)
03 工商管理
(8)使用SQL語(yǔ)句將一條新的記錄插入學(xué)院表INSERT [10] 學(xué)院(系號(hào),系名)[11](“04”,“計(jì)算機(jī)”)
(9)使用SQL語(yǔ)句求“工商管理”系的所有職工的工資總和。
SELECT [12](工資)FROM 教師;
WHERE系號(hào)IN 9(SELECT 系號(hào)FROM [13] WHERE 系名=“工商管理”)
(10)使用SQL語(yǔ)句完成如下操作(將所有教授的工資提高5%)[14] 教師 SET 工資=工資*1.05
[15] 職稱(chēng)=“教授”
第四篇:全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析之VF基礎(chǔ)(第一章)1.1 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí) 考點(diǎn)1 計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展
1數(shù)據(jù)與數(shù)據(jù)處理
數(shù)據(jù)是指存儲(chǔ)在某一種媒體上能夠識(shí)別的物理符號(hào)。數(shù)據(jù)處理的中心問(wèn)題是數(shù)據(jù)管理。
2計(jì)算機(jī)數(shù)據(jù)管理
(l)人工管理。
(2)文件系統(tǒng)。
(3)數(shù)據(jù)庫(kù)系統(tǒng)。
(4)分布式數(shù)據(jù)庫(kù)系統(tǒng)。
(5)面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)。
3數(shù)據(jù)庫(kù)管理系統(tǒng)
為數(shù)據(jù)庫(kù)的建立、使用和維護(hù)而配置的軟件稱(chēng)為數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS(DataBase Management System)。
圖1-1 數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)與程序的關(guān)系 考點(diǎn)2 數(shù)據(jù)庫(kù)系統(tǒng)
1有關(guān)數(shù)據(jù)庫(kù)的概念
(1)數(shù)據(jù)庫(kù)(DataBase):存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上、結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。
(2)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(DBAS):是由系統(tǒng)開(kāi)發(fā)人員利用數(shù)據(jù)庫(kù)系統(tǒng)資源開(kāi)發(fā)出來(lái)的,面向某一類(lèi)實(shí)際應(yīng)用的應(yīng)用軟件系統(tǒng)。
(3)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS):對(duì)數(shù)據(jù)實(shí)行專(zhuān)門(mén)管理,提供安全性和完整性等統(tǒng)一機(jī)制,可以對(duì)數(shù)據(jù)庫(kù)的建立、使用和維護(hù)進(jìn)行管理。
(4)數(shù)據(jù)庫(kù)系統(tǒng)(DBS):是指引進(jìn)數(shù)據(jù)庫(kù)技術(shù)后的計(jì)算機(jī)系統(tǒng),實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量相關(guān)數(shù)據(jù),提供數(shù)據(jù)處理和信息資源共享的便利手段。數(shù)據(jù)庫(kù)系統(tǒng)由硬件系統(tǒng)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)及相關(guān)軟件、數(shù)據(jù)庫(kù)管理員和用戶(hù)等部分組成。
2數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)
(l)實(shí)現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余。
(2)采用特定的數(shù)據(jù)模型。
(3)具有較高的數(shù)據(jù)獨(dú)立性。
(4)具有統(tǒng)一的數(shù)據(jù)控制功能??键c(diǎn)3 數(shù)據(jù)模型
1實(shí)體的描述
(1)實(shí)體。
(2)實(shí)體的屬性。
(3)實(shí)體集和實(shí)體型。
2實(shí)體間聯(lián)系及聯(lián)系的種類(lèi)
(1)一對(duì)一聯(lián)系。
(2)一對(duì)多聯(lián)系。
(3)多對(duì)多聯(lián)系。
3數(shù)據(jù)模型簡(jiǎn)介
為了反映事物本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫(kù)中的數(shù)據(jù)必須有一定的結(jié)構(gòu),這種結(jié)構(gòu)用數(shù)據(jù)模型來(lái)表示,通常有以下3種。
(1)層次數(shù)據(jù)模型。
(2)網(wǎng)狀數(shù)據(jù)模型。
(3)關(guān)系數(shù)據(jù)模型。小提示:
數(shù)據(jù)庫(kù)DB、數(shù)據(jù)庫(kù)系統(tǒng)DBS和數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS之間的關(guān)系是DBS包括DB和DBMS。1.2 關(guān)系模型
關(guān)系模型的用戶(hù)界面非常簡(jiǎn)單,一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。這種用二維表的形式表示實(shí)體和實(shí)體間聯(lián)系的數(shù)據(jù)模型稱(chēng)為關(guān)系數(shù)據(jù)模型。
1關(guān)系術(shù)語(yǔ)
(l)關(guān)系:一個(gè)關(guān)系就是一張二維表,每個(gè)關(guān)系有一個(gè)關(guān)系名。在Visual FoxPro中一個(gè)關(guān)系存儲(chǔ)為一個(gè)文件,擴(kuò)展名為DBF,稱(chēng)為“表”。
對(duì)關(guān)系的描述稱(chēng)為關(guān)系模式,一個(gè)關(guān)系模式對(duì)應(yīng)一個(gè)關(guān)系的結(jié)構(gòu),格式為:
關(guān)系名(屬性名1,屬性名2,?,屬性名n)
(2)元組:在一個(gè)二維表中,水平方向的行稱(chēng)為元組,每一行為一個(gè)元組。
(3)屬性:將二維表中垂直方向的列稱(chēng)為屬性,每一列都有一個(gè)屬性名。
(4)域:屬性的取值范圍,即不同元組對(duì)同一個(gè)屬性的取值所限定的范圍。
(5)關(guān)鍵字:屬性或?qū)傩缘慕M合,其值能夠唯一地標(biāo)識(shí)一個(gè)元組。在Visual FoxPro中,主關(guān)鍵字和候選關(guān)鍵字就起唯一標(biāo)志一個(gè)元組的作用。
(6)外部關(guān)鍵字:如果表中一個(gè)字段不是本表的主關(guān)鍵字或候選關(guān)鍵字,而是另一個(gè)表的主關(guān)鍵字或候選關(guān)鍵字,那么這個(gè)字段(屬性)就稱(chēng)為外部關(guān)鍵字。
2關(guān)系的特點(diǎn)
(1)關(guān)系必須規(guī)范化。
(2)在同一個(gè)關(guān)系中不能出現(xiàn)同名屬性,Visual FoxPro中表示為字段名的不同。
(3)關(guān)系中不允許有完全相同的元組,即冗余。
(4)在一個(gè)關(guān)系中元組的次序無(wú)關(guān)緊要。
(5)在一個(gè)關(guān)系中列的次序無(wú)關(guān)緊要??键c(diǎn)5 關(guān)系運(yùn)算
對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)時(shí),需要找到用戶(hù)感興趣的數(shù)據(jù),這就需要對(duì)關(guān)系進(jìn)行一定的關(guān)系運(yùn)算,關(guān)系的基本運(yùn)算有兩類(lèi):傳統(tǒng)的集合運(yùn)算和專(zhuān)門(mén)的關(guān)系運(yùn)算。
1傳統(tǒng)的集合運(yùn)算
(1)并:兩個(gè)相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個(gè)關(guān)系的全部元組組成的集合。
(2)差:兩個(gè)相同結(jié)構(gòu)關(guān)系的差是由屬于前一個(gè)關(guān)系的元組而不屬于后一個(gè)關(guān)系的元組組成的集合。例如,關(guān)系R和S的差結(jié)果是由屬于R但不屬于S的元組組成的集合。
(3)交:兩個(gè)相同結(jié)構(gòu)關(guān)系的交是由屬于這兩個(gè)關(guān)系所共有的元組組成的集合。
2專(zhuān)門(mén)的關(guān)系運(yùn)算
(1)選擇:從關(guān)系中找出滿(mǎn)足給定條件的元組的操作。
(2)投影:從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系:
(3)連接:關(guān)系的橫向結(jié)合,將兩個(gè)關(guān)系模式拼接成一個(gè)更寬的關(guān)系模式。
(4)自然連接:在連接運(yùn)算中,按照字段值對(duì)應(yīng)相等為條件進(jìn)行的連接操作稱(chēng)為等值連接。自然連接是去掉重復(fù)屬性的等值連接。小提示:
選擇和投影運(yùn)算的操作對(duì)象只是一個(gè)表,相當(dāng)于對(duì)一個(gè)二維表進(jìn)行切割。連接運(yùn)算則需要把兩個(gè)表作為操作對(duì)象。如果兩個(gè)表以上進(jìn)行連接,應(yīng)當(dāng)兩兩進(jìn)行連接。1.3 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ) 考點(diǎn)6 數(shù)據(jù)庫(kù)設(shè)計(jì)步驟
1設(shè)計(jì)原則
(l)關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)應(yīng)遵從概念單一化“一事一地”的原則。
(2)避免在表之間出現(xiàn)重復(fù)字段。
(3)表中的字段必須是原始數(shù)據(jù)和基本數(shù)據(jù)元素。
(4)用外部關(guān)鍵字保證有關(guān)聯(lián)的表之間的聯(lián)系。
2設(shè)計(jì)步驟
利用Visual FoxPro來(lái)開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),可以按照以下步驟來(lái)設(shè)計(jì)。
(1)需求分析。
(2)確定需求表C
(3)確定需求字段。
(4)確定聯(lián)系。
(5)設(shè)計(jì)精確
1.4 Visual FoxPro系統(tǒng)概述 考點(diǎn)7 Visual FoxPro的特點(diǎn)
(l)增強(qiáng)項(xiàng)目與數(shù)據(jù)庫(kù)管理。
(2)提高應(yīng)用程序開(kāi)發(fā)的生產(chǎn)率。
(3)互操作性與支持Internet。
(4)充分利用已有數(shù)據(jù)。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析之VF系統(tǒng)初步(第二章)2.1 Visual FoxPro的安裝和啟動(dòng) 考點(diǎn)1 Visual FoxPro的系統(tǒng)要求
Visual FoxPro功能強(qiáng)大,但它對(duì)系統(tǒng)的要求并不高,個(gè)人計(jì)算機(jī)軟硬件基本要求如下。
(1)處理器;486DX/66 MHz處理器,推薦使用Pentium或更高處理器的PC。
(2)內(nèi)存:16MB以上的內(nèi)存,推薦使用24MB內(nèi)存。
(3)硬盤(pán)空間:典型安裝需要85 MB硬盤(pán)空間,最大安裝需要90MB硬盤(pán)空間。
(4)其他硬件:一個(gè)鼠標(biāo)、一個(gè)光盤(pán)驅(qū)動(dòng)器。推薦使用 VGA或更高分辨率的監(jiān)視器。
(5)操作系統(tǒng):由于Visual FoxPro是32位產(chǎn)品,需要在Windows 95/98(中文版)、Windows NT 4.0(中文版)或更高版本的操作系統(tǒng)上運(yùn)行。小提示:
退出Windows中的應(yīng)用程序或關(guān)閉窗口等操作,都可以利用快捷鍵Alt + F4來(lái)完成。2.2 Visual FoxPro的用戶(hù)界面 考點(diǎn)2 Visual FoxPro的主界面
Visual FoxPro的主界面即其工作環(huán)境,啟動(dòng) Visual FoxPro后,打開(kāi)如圖2一l所示的界面。
考點(diǎn)3 工具欄的使用
設(shè)置工具欄是微軟公司流行軟件的共同特點(diǎn),利用各種工具欄比菜單要方便得多。其默認(rèn)界面僅包括“常用”工具欄和“表單設(shè)計(jì)器”工具欄。除此之外,Visual FoxPro還提供其他10個(gè)工具欄,如表2-1所示。
小提示:
Visual FoxPro中有兩種工作方式:交互操作方式和程序方式,命令方式和菜單方式都屬于交互操作方式。2.3 項(xiàng)目管理器 考點(diǎn)4 使用項(xiàng)目管理器
(1)項(xiàng)目管理器窗口中共有6個(gè)選項(xiàng)長(zhǎng),其中“全部”選項(xiàng)卡用來(lái)集中顯示該項(xiàng)目中的所有文件,“數(shù)據(jù)”、“文檔”、“類(lèi)”、“代碼”和“其他“5個(gè)選項(xiàng)卡用來(lái)分類(lèi)顯示各種文件。
(2)項(xiàng)目管理器一是提供了簡(jiǎn)便的、可視化的方法來(lái)組織和處理表、數(shù)據(jù)庫(kù)、表單、查詢(xún)和其他一切文件,通過(guò)單擊鼠標(biāo)就能實(shí)現(xiàn)對(duì)文件的創(chuàng)建、修改、刪除等操作;二是在項(xiàng)口管理器中可以將應(yīng)用系統(tǒng)編譯成一個(gè)擴(kuò)展名為APP的應(yīng)用文件或EXE的可執(zhí)行文件。
(3)在Visual FoxPro中的不同文件類(lèi)型及其擴(kuò)展名,如表2-2所示。
表2-2 Visual FoxPro中的不同文件類(lèi)型及其擴(kuò)展名
考點(diǎn)5 定制項(xiàng)目管理器
(l)移動(dòng)、縮放和折疊。
(2)拆分項(xiàng)目管理器。
(3)停放項(xiàng)目管理器 小提示:
要拆分選項(xiàng)卡使之單獨(dú)使用,必須將選項(xiàng)卡折疊后才可以實(shí)現(xiàn)。2.4 Visual FoxPro向?qū)?、設(shè)計(jì)器、生成器 考點(diǎn)6 Visual FoxPro的向?qū)?/p>
向?qū)且环N交互式程序用戶(hù)在一系列向?qū)聊簧匣卮饐?wèn)題或者選擇選項(xiàng)后,向?qū)?huì)根據(jù)回答生成文件或者執(zhí)行任務(wù),幫助用戶(hù)快速完成一般性的任務(wù)〔例如創(chuàng)建表單、編排報(bào)表的格式、建立查詢(xún)、制作圖表、生成數(shù)據(jù)透視表、生成交叉表報(bào)表及在Web上按HTML格式發(fā)布等??键c(diǎn)7 Visual FoxPro的設(shè)計(jì)器
Visual FoxPro的設(shè)計(jì)器是創(chuàng)建和修改應(yīng)用系統(tǒng)各種組件的可視化工具:利用各種設(shè)計(jì)器使得創(chuàng)建表、表單、數(shù)據(jù)庫(kù)、查詢(xún)和報(bào)表及管理數(shù)據(jù)變得輕而易舉,為初學(xué)者提供了方便。考點(diǎn)8 Visual FoxPro的生成器
生成器是帶有選項(xiàng)卡的對(duì)話(huà)框,用于簡(jiǎn)化對(duì)表單、復(fù)雜控件及參照完整性代碼的創(chuàng)建和修改過(guò)程。每個(gè)生成器顯示一系列選項(xiàng)卡,用于設(shè)置選中對(duì)象的屬性??墒褂蒙善髟跀?shù)據(jù)庫(kù)表之間生成控件、表單、設(shè)置控件格式和創(chuàng)建參照完整性。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析之?dāng)?shù)據(jù)與數(shù)據(jù)運(yùn)算(第三章)3.1 常量與變量 考點(diǎn)1 常量
常量用以表示一個(gè)具體的、不變的值。不同類(lèi)型常量的書(shū)寫(xiě)格式不同。在Visual FoxPro中,常量主要包括以下幾種類(lèi)型。
1數(shù)值型常量
數(shù)值型常量即常數(shù),用來(lái)表示一個(gè)數(shù)量的大小,由數(shù)字0~9小數(shù)點(diǎn)和正負(fù)號(hào)組成。
2貨幣型常量
貨幣型常量用來(lái)表示貨幣值,其書(shū)寫(xiě)格式與數(shù)值型常量類(lèi)似,但要加上一個(gè)前置的符號(hào)($)。
3字符型常量
字符型常量也稱(chēng)為字符串,其表示方法是用半角單引號(hào)、雙引號(hào)或方括號(hào)把字符串括起來(lái)。這里的單引號(hào)、雙引號(hào)或方括號(hào)稱(chēng)為定界符許多常量都有定界符。定界符雖然不作為常量本身的內(nèi)容,但它規(guī)定了常量的類(lèi)型及常量的起始和終止界限。
4日期型常量
日期型常量的定界符是一對(duì)花括號(hào)?;ɡㄌ?hào)內(nèi)包括年、月、日3部分內(nèi)容,各部分內(nèi)容之間用分隔符分隔。
5日期時(shí)間型常量
日期時(shí)間型常量包括日期和時(shí)間兩部分內(nèi)容:{<日期>,<時(shí)間>}。<日期>部分與日期型常量相似,也有傳統(tǒng)的和嚴(yán)格的兩種格式。
6邏輯型常量
邏輯型數(shù)據(jù)只有邏輯真和邏輯假兩個(gè)值。前后兩個(gè)句點(diǎn)作為邏輯型常量的定界符是必不可少的,否則會(huì)被誤認(rèn)為變量名。邏輯型數(shù)據(jù)只占用1字節(jié)??键c(diǎn)2 變量
Visual FoxPro中變量分為字段變量和內(nèi)存變量二其中字段變量就是表中的字段。內(nèi)存變量是內(nèi)存中的一塊存儲(chǔ)區(qū)域,變量值就是存放在這個(gè)存儲(chǔ)區(qū)域里的數(shù)據(jù),變量的類(lèi)型取決于變量值的類(lèi)型。內(nèi)存變量的數(shù)據(jù)類(lèi)型包括:字符型(C)、數(shù)值型(N)、貨幣型(Y)、日期型(D)、日期時(shí)間型(T)和邏輯型(L)。
1簡(jiǎn)單的內(nèi)存變量
每一個(gè)變量都有一個(gè)名字,可以通過(guò)變量名訪(fǎng)問(wèn)變量。如果當(dāng)前表中存在一個(gè)同名的字段變量,則在訪(fǎng)問(wèn)內(nèi)存變量時(shí),必須在變量名前加上前綴M.(或M->),否則系統(tǒng)將訪(fǎng)問(wèn)同名的字段變量。
2數(shù)組
與簡(jiǎn)單內(nèi)存變量不同,數(shù)組在使用之前一般要用DIMENSION或DECLARE命令顯示創(chuàng)建,規(guī)定數(shù)組是一維數(shù)組還是二維數(shù)組,數(shù)組名和數(shù)組大小。數(shù)組大小由下標(biāo)值的上、下限決定,下限規(guī)定為1。在使用數(shù)組和數(shù)組元素時(shí),應(yīng)注意如下問(wèn)題。
(1)在一切使用簡(jiǎn)單內(nèi)存變量的地方,均可以使用數(shù)組元素。
(2)在賦值和輸入語(yǔ)句中使用數(shù)組名時(shí),表示將同一個(gè)值同時(shí)賦給該數(shù)組的全部數(shù)組元素。
(3)在同一個(gè)運(yùn)行環(huán)境下,數(shù)組名不能與簡(jiǎn)單變量名重復(fù)。
(4)在賦值語(yǔ)句中的表達(dá)式位置不能出現(xiàn)數(shù)組名。
(5)可以用一維數(shù)組的形式訪(fǎng)問(wèn)二維數(shù)組??键c(diǎn)3 內(nèi)存變量常用命令
1內(nèi)存變量的賦值
格式1:<內(nèi)存變量名>=<表達(dá)式>
格式2:STORE<表達(dá)式>TO<內(nèi)存變量名表>
2表達(dá)式值的顯示
格式1:?<表達(dá)式表>
格式2:??<表達(dá)式表>
3內(nèi)存變量的顯示
格式1:LIST MEMORY[LIKE<通配符>][TO PRINTER!TO FILE<文件名>]
格式2:DISPLAY MEMORY[LIKE<通配符>][TO PRINTER|TO FILE<文件名>]
4內(nèi)存變量的清除
格式1:CLEAR MEMORY
格式2:RELEASE<內(nèi)存變量名表>
格式3:RELEASE ALL[EXTENDED]
格式4:RELEASE ALL[LIKE<通配符>|EXCEPT<通配符>]
5表中數(shù)據(jù)與數(shù)組數(shù)據(jù)之間的交換
將表的當(dāng)前記錄復(fù)制到數(shù)組。
格式1:SCATTER[FIELDS<字段名表>][MEMO]TO<數(shù)組名>[BLANK]
格式2:SCATTER[FIELDS LIKE<通配符>|FIELDS EXCEPT<通配符>][MEMO]TO<數(shù)組名>[BLANK]
將數(shù)組數(shù)據(jù)復(fù)制到表的當(dāng)前記錄。
格式1:GATHER FROM<數(shù)組名>[FIELDS<字段名表>][MEMO]
格式2:GATHER FROM<數(shù)組名>[FIELDS LIKE<通配符>|FIELDS EXCE<通配符>][MEMO] 小提示:
如果當(dāng)前表中存在一個(gè)同名的字段變量,則在訪(fǎng)問(wèn)內(nèi)存變量時(shí),必須在內(nèi)存變量名前加上前綴M.(或M->),否則系統(tǒng)訪(fǎng)問(wèn)的將是同名的字段變量。3.2 表達(dá)式
考點(diǎn)4 數(shù)值、字符與日期時(shí)間表達(dá)式
1數(shù)值表達(dá)式
(1)算術(shù)運(yùn)算優(yōu)先級(jí)。數(shù)值表達(dá)式中的算術(shù)運(yùn)算符有些與日常使用的運(yùn)算符稍有Lx=別,算術(shù)運(yùn)算符及其含義和優(yōu)先級(jí)如表3-1所示。
表3-1 算術(shù)運(yùn)算符及其優(yōu)先級(jí)
(2)求余運(yùn)算。求余運(yùn)算%和取余函數(shù)MOD()的作用相同。余數(shù)的正負(fù)號(hào)與除數(shù)一致當(dāng)表達(dá)式中出現(xiàn)*、/和%運(yùn)算時(shí),它們具有相同的優(yōu)先級(jí)。
2字符表達(dá)式
由字符串運(yùn)算符將字符型數(shù)據(jù)連接起來(lái)形成,其結(jié)果仍是字符型數(shù)據(jù)字符型數(shù)據(jù)只能進(jìn)行兩種運(yùn)算(+、-),它們的優(yōu)先級(jí)相同。
“+”首尾連接前后兩個(gè)字符串形成一個(gè)新的字符串;“-”連接前后兩個(gè)字符串,并將前字符串的尾部空格移到合并后的新字符串尾部 3日期時(shí)間表達(dá)式
日期時(shí)間表達(dá)式中可以使用的運(yùn)算符也有“+”和“-”兩個(gè),其格式也有一定的限制,不能任意組合,如不能用運(yùn)算符“+”將兩個(gè)<日期>連接起來(lái)??键c(diǎn)5 關(guān)系表達(dá)式
1關(guān)系表達(dá)式
關(guān)系表達(dá)式通常也稱(chēng)為簡(jiǎn)單邏輯表達(dá)式,它是由關(guān)系運(yùn)算符將兩個(gè)運(yùn)算對(duì)象連接起來(lái)而形成的,即:<表達(dá)式><關(guān)系運(yùn)算符><表達(dá)式>。關(guān)系運(yùn)算符及其含義如表3-2所示,它們的優(yōu)先級(jí)相同。表3-2 關(guān)系運(yùn)算符
2設(shè)置字符的排序次序
當(dāng)比較兩個(gè)字符串時(shí),系統(tǒng)對(duì)兩個(gè)字符串的字符自左向右逐個(gè)進(jìn)行比較;一旦發(fā)現(xiàn)兩個(gè)對(duì)應(yīng)字符不同,就根據(jù)這兩個(gè)字符的排序序列決定兩個(gè)字符串的大小
3字符串精確比較與EXACT設(shè)置
在用雙等號(hào)運(yùn)算符==比較兩個(gè)字符串時(shí),只有當(dāng)兩個(gè)字符串完全相同(包括空格及各字符的位置)時(shí),運(yùn)算結(jié)果才會(huì)是邏輯真.T.,否則為邏輯假.F.。考點(diǎn)6 邏輯表達(dá)式
1邏輯表達(dá)式
邏輯運(yùn)算符的運(yùn)算規(guī)則如表3-3所示,其中
表3-3 邏輯運(yùn)算規(guī)則
2運(yùn)算符優(yōu)先級(jí)
.NOT.或!(邏輯非)、.AND.(邏輯與)、.OR.(邏輯或)依次降低。小提示:
表達(dá)式是指常量、變量、函數(shù)或由它們通過(guò)特定的運(yùn)算符連接起來(lái)的式子。3.3 常用函數(shù) 考點(diǎn)7 數(shù)值函數(shù)
數(shù)值函數(shù)是指函數(shù)值為數(shù)值的一類(lèi)函數(shù),它們的自變量和返回值往往都是數(shù)值型數(shù)據(jù)。
1絕對(duì)值和符號(hào)函數(shù)
格式:ABS<數(shù)值表達(dá)式>)
SIGN(<數(shù)值表達(dá)式>)
功能:ABS()返回指定的數(shù)值表達(dá)式的絕對(duì)值。SIGN()返回指定數(shù)值表達(dá)式的符號(hào)。
2求平方根函數(shù)
格式:SQRT(<數(shù)值表達(dá)式>)
功能:返回指定表達(dá)式的平方根,表達(dá)式的值不能為負(fù)。
3圓周率函數(shù)
格式:PI()
功能:返回圓周率二,該函數(shù)沒(méi)有自變量。
4求整數(shù)函數(shù)
格式:INT(<數(shù)值表達(dá)式>)CEILING(<數(shù)值表達(dá)式>)FLOOR(<數(shù)值表達(dá)式>)
功能:INT()返回指定數(shù)值表達(dá)式的整數(shù)部分。CEILING()返回大于或等于指定數(shù)值表達(dá)式的最小整數(shù)。FLOOR()返回小于或等于指定數(shù)值表達(dá)式的最大整數(shù)。5四舍五入函數(shù)
格式:ROUND(<數(shù)值表達(dá)式I>,<數(shù)值表達(dá)式2>)
功能:返回<數(shù)值表達(dá)式I>在指定位置四舍五入后的結(jié)果,<數(shù)值表達(dá)式2>指明四舍五入的位置。若<數(shù)值表達(dá)式2>大于等于0,表示的是要保留的小數(shù)位,若小于。,則表示整數(shù)部分的舍入位數(shù)。
6求余數(shù)函數(shù)
格式:MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)
功能:返回兩個(gè)數(shù)相除后的余數(shù)。余數(shù)的正、負(fù)號(hào)與除數(shù)相同。如果被除數(shù)與除數(shù)同號(hào),則函數(shù)值為兩數(shù)相除的余數(shù);如果異號(hào),則函數(shù)值為兩數(shù)相除的余數(shù)再加上除數(shù)的值。
7求最大值和最小值函數(shù)
格式:MAX(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>[,<數(shù)值表達(dá)式3>?])MIN(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>[,<數(shù)值表達(dá)式3>?])
功能MAX()返回自變量中的最大值。MIN()返回自變量中的最小值??键c(diǎn)8 字符函數(shù)
1求字符串長(zhǎng)度函數(shù)
格式:LEN(<字符表達(dá)式>)
功能:返回指定字符表達(dá)式值的長(zhǎng)度,即字符個(gè)數(shù)。
2大小寫(xiě)轉(zhuǎn)換函數(shù)
格式:LOWER(<字符表達(dá)式>)UPPER(<字符表達(dá)式>)
功能:LOWER()將指定表達(dá)式中的大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母,其他字符保持不變;UPPER()將指定表達(dá)式中的小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母,其他字符保持不變。
3空格字符串生成函數(shù)
格式:SAPCE(<數(shù)值表達(dá)式>)
功能:返回由指定數(shù)目的空格組成的字符串。
4側(cè)除前后空格函數(shù)
格式:TRIM(<字符表達(dá)式>)LTRIM(<字符表達(dá)式>)ALLTRIM(<字符表達(dá)式>)
功能:TRIM()刪除指定表達(dá)式尾部的空格。LTRIM()刪除指定表達(dá)式前端的空格。ALLTRIM()刪除指定字符串前端和尾部的空格。
5取子串函數(shù)
格式:LEFT(<字符表達(dá)式>,<長(zhǎng)度>)RIGHT(<字符表達(dá)式>,<長(zhǎng)度>)SUBSTR(<字符表達(dá)式>,<起始位置>[,<長(zhǎng)度>])
功能:LEFT()從指定表達(dá)式左端截取一個(gè)指定長(zhǎng)度的子串作為函數(shù)值。RIGHT()從指定表達(dá)式右端載取一個(gè)指定長(zhǎng)度的子串作為函數(shù)值。SUBSTR()從指定表達(dá)式指定位置截取一個(gè)指定長(zhǎng)度的子串作為函數(shù)值,若默認(rèn)<長(zhǎng)度>,則截取的子串表示從指定位置開(kāi)始一直到字符串尾部。
6計(jì)算子串出現(xiàn)次數(shù)函數(shù)
格式:OCCURS(<字符表達(dá)式1>,<字符表達(dá)式2>)
功能:返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù)。
7求子串位置函數(shù)
格式:AT(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])ATC(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])
功能:AT()返回第一個(gè)字符串的首字符在第_二個(gè)字符串中出現(xiàn)的位置。前提條件是第一個(gè)字符串必須是第二個(gè)字符串的子串,否則函數(shù)返回值為0。ATC()功能與AT()類(lèi)似,但不區(qū)分字符串中字符的大小寫(xiě)。
8子串替換函數(shù)
格式:STUFF<字符表達(dá)式1>,<起始位置>,<長(zhǎng)度>,<字符表達(dá)式2>)
功能:用<字符表達(dá)式2>的值替換<字符表達(dá)式I>中由<起始位置>和<長(zhǎng)度>指定的一個(gè)子串。
9字符替換函數(shù)
格式CHRTRAN(<字符表達(dá)式1>,<字符表達(dá)式2>,<字符表達(dá)式3>)
功能:該函數(shù)的自變量是三個(gè)字符表達(dá)式。當(dāng)?shù)谝粋€(gè)字符串中的一個(gè)或多個(gè)字符與第二個(gè)字符串中的某個(gè)字符相匹配時(shí),應(yīng)用第三個(gè)字符串中的對(duì)應(yīng)字符(相同位置)替換這些字符如果第三個(gè)字符串包含的字符個(gè)數(shù)少于第二個(gè)字符串包含的字符個(gè)數(shù),因?yàn)闆](méi)有對(duì)應(yīng)字符,那么第一個(gè)字符串中相匹配的各字符將被刪除。如果第三個(gè)字符串包含的字符個(gè)數(shù)多于第二個(gè)字符串包含的字符個(gè)數(shù),多余字符將被忽略。
10字符串匹配函數(shù)
格式:LIKE(<字符表達(dá)式I>,<字符表達(dá)式2>)
功能:比較兩個(gè)字符串對(duì)應(yīng)位置_L的字符。其中<字符表達(dá)式1>中可包含通配符*和?。*表示若干個(gè)任意字符,?表示任意一個(gè)字符??键c(diǎn)9 日期和時(shí)間函數(shù)
1系統(tǒng)日期和時(shí)間函數(shù)
格式:DATE()TIME()DATETIME()
功能:DATE()返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期TIME()以24小時(shí)制返回當(dāng)前系統(tǒng)時(shí)間,函數(shù)值為字符型;DATETIME()返回肖前系統(tǒng)日期時(shí)間,函數(shù)值為日期時(shí)間型。
2求年份、月份和天數(shù)的函數(shù)
格式:YEAR(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)MONTH(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)DAY(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)
功能:YEAR()從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回年份。MONTH()從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回月份DAY()從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回月份的天數(shù)。這3個(gè)函數(shù)的返回值均為數(shù)值型數(shù)據(jù)
3求時(shí)、分和秒的函數(shù)
格式:HOUR(<日期時(shí)間表達(dá)式>)MINUTE(<日期時(shí)間表達(dá)式>)SEC(<日期時(shí)間表達(dá)式>)
功能:HOUR()從指定的日期時(shí)間表達(dá)式中返回小時(shí)部分(24小時(shí)制)。MINUTE()從指定的日期時(shí)間表達(dá)式中返回分鐘部分。SEC()從指定的日期時(shí)間表達(dá)式中返回秒鐘部分??键c(diǎn)10 數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)
數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)的功能是將某一種類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成另一種類(lèi)型的數(shù)據(jù)。
1數(shù)值轉(zhuǎn)換成字符串函數(shù)
格式:STR(<數(shù)值表達(dá)式>[,<長(zhǎng)度>[,<小數(shù)位數(shù)>]])
功能:將<數(shù)值表達(dá)式>的值轉(zhuǎn)換成字符串,轉(zhuǎn)換時(shí)根據(jù)需要自動(dòng)四舍五入。
2字符串轉(zhuǎn)換成數(shù)值函數(shù)
格式:V AL(<字符表達(dá)式>)
功能:將由數(shù)字符號(hào)(包括符號(hào)、小數(shù)點(diǎn))組成的字符型數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)值型數(shù)據(jù)。
3字替串轉(zhuǎn)換成日期或日期時(shí)間函數(shù)
格式:CTOD(<字符表達(dá)式>)CTOT<字符表達(dá)式>)
功能:CTOD()將<字符表達(dá)式>轉(zhuǎn)換成日期型數(shù)據(jù)CTOT()將<字符表達(dá)式>轉(zhuǎn)換成日期時(shí)間型數(shù)據(jù)。
4日期或日期時(shí)間轉(zhuǎn)換成字符串函數(shù)
格式:DTOC(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>[,1])TTOC(<日期時(shí)間表達(dá)式>[,1])
功能:DTOC()將日期型數(shù)據(jù)或日期時(shí)間型數(shù)據(jù)的日期部分轉(zhuǎn)換成字符串。TTOC()將日期時(shí)間型數(shù)據(jù)轉(zhuǎn)換成字符串。
5宏替換函數(shù)
格式:&<字符型變量>[.]
功能:替換出字符型變量的內(nèi)容,即&的值是變量中的字符串。如果該函數(shù)與其后面的字符無(wú)明顯分界,則要用“.”作為函數(shù)結(jié)束標(biāo)識(shí)宏替換可以嵌套使用。考點(diǎn)11 測(cè)試函數(shù)
1值域測(cè)試函數(shù)
格式:BETWEEN(<表達(dá)式1>,<表達(dá)式2>,<表達(dá)式3>)
功能:判斷一個(gè)表達(dá)式的值是否介于其他兩個(gè)表達(dá)式的值之間。
2空值(NULL)測(cè)試函數(shù)
格式:ISNULL(<表達(dá)式>)
功能:判斷一個(gè)表達(dá)式的運(yùn)算結(jié)果是否為NULL值。
3“空”值測(cè)試函數(shù)
格式:EMPTY(<表達(dá)式>)
功能:略。
4數(shù)據(jù)類(lèi)型測(cè)試函數(shù)
格式:VARTYPE(<表達(dá)式>[,<邏輯表達(dá)式>])
功能:測(cè)試表達(dá)式的類(lèi)型,返回一個(gè)大寫(xiě)字母,函數(shù)值為字符型。字母含義如表3-4所示。
表3-4 VARTYPE()測(cè)得的數(shù)據(jù)類(lèi)型
5表文件尾測(cè)試函數(shù)
格式:EOF([<工作區(qū)號(hào)>|<表別名>])
功能:測(cè)試當(dāng)前表文件(若默認(rèn)自變量)或指定表文件中的記錄指針是否指向文件尾,若是,則返回邏輯真(.T.),否則為邏輯假(.F.)。若在指定工作區(qū)上沒(méi)有打開(kāi)表文件,則函數(shù)返回邏輯假(.F.),若表文件中不包含任何記錄,則函數(shù)返回邏輯真(.T.)。
6表文件首測(cè)試函數(shù)
格式:BOF([<工作區(qū)號(hào)>|<表別名>])
功能:測(cè)試當(dāng)前表義件(若默認(rèn)自變量)或指定表文件中的記錄指針是否指向文件首,若是,則返回邏輯真(.T.),否則為邏輯假(.F.)(若在指定工作區(qū)上沒(méi)有打開(kāi)表文件,則函數(shù)返回邏輯假(.F.),若表文件中不包含任何記錄,則函數(shù)返回邏輯真(.T.)。
7記錄號(hào)測(cè)試函數(shù)
格式:RECNO([<工作區(qū)號(hào)>|<表別名>])
功能:返回當(dāng)前表文件(若默認(rèn)自變量)或指定表文件中當(dāng)前記錄的記錄號(hào)。如果指定工作區(qū)上沒(méi)有打開(kāi)表文件,則函數(shù)值為0;如果記錄指針指向文件尾,則函數(shù)值為表文件中的記錄數(shù)加1;如果記錄指針指向文件首,則函數(shù)值為表文件中第一條記錄的記錄號(hào)。
8記錄個(gè)數(shù)測(cè)試函數(shù)
格式:RECCOUNT([<工作區(qū)號(hào)>|<表別名>])
功能:返回當(dāng)前表文件(若默認(rèn)自變量)或指定表文件中的記錄個(gè)數(shù)。如果指定工作區(qū)上沒(méi)有打開(kāi)表文件,則函數(shù)值為0,RECCOUNT)函數(shù)不受刪除標(biāo)記及SET DELETED設(shè)置的影響,同樣測(cè)試表中所有的記錄個(gè)數(shù)。
9條件測(cè)試函數(shù)
格式:IIF(<邏輯表達(dá)式>,<表達(dá)式1>,<表達(dá)式2>)
功能:測(cè)試<邏輯表達(dá)式>的值,若為邏輯真(.T.),則函數(shù)返回<表達(dá)式1>的值,否則返回<表達(dá)式2>的值<表達(dá)式1>和<表達(dá)式2>的類(lèi)型可以不相同。
10記錄刪除測(cè)試函數(shù)
格式:DELETED([<工作區(qū)號(hào)>|<表別名>])
功能:測(cè)試當(dāng)前表文件(若默認(rèn)自變量)或指定表文件中,記錄指針?biāo)傅漠?dāng)前記錄是否有刪除標(biāo)記“*”。若有,則為真,否則為假。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析之VF數(shù)據(jù)庫(kù)及其操作(第四章)4.1 Visual FoxPro數(shù)據(jù)庫(kù)及其建立 考點(diǎn)1 建立和使用數(shù)據(jù)庫(kù)
1數(shù)據(jù)庫(kù)的建立
(1)在項(xiàng)目管理器中建立數(shù)據(jù)庫(kù)。
(2)通過(guò)“新建”對(duì)話(huà)框建立數(shù)據(jù)庫(kù)。
(3)使用命令建立數(shù)據(jù)庫(kù),格式為:
CREATE DATABASE[DatabaseName |?]
2數(shù)據(jù)庫(kù)的打開(kāi)
(1)在項(xiàng)目管理器中打開(kāi)。
(2)通過(guò)“打開(kāi)”對(duì)話(huà)框打開(kāi)數(shù)據(jù)庫(kù)。
(3)使用命令打開(kāi)數(shù)據(jù)庫(kù),格式為:
OPEN DATABASE[FileName |?][EXCLUSIVE I SHARED] [NOUPDATE] [VALIDATE] 考點(diǎn)2 修改和刪除數(shù)據(jù)庫(kù)
Visual FoxPro在建立數(shù)據(jù)庫(kù)時(shí)建立了擴(kuò)展名分別為dbc、dct和dcx的3個(gè)文件,用戶(hù)不能直接修改這些文件。
Visual FoxPro中修改數(shù)據(jù)庫(kù)實(shí)際是打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器,完成數(shù)據(jù)庫(kù)中各種對(duì)象的建立、修改和刪除等操作。
可以有3種方法打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器。
(1)從項(xiàng)目管理器中打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器。
(2)從“打開(kāi)”對(duì)話(huà)框中打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器。
(3)使用命令打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器,格式為: MODIFY DATABASE[DatabaseName|?]
在項(xiàng)目管理器中不管刪除還是移去數(shù)據(jù)庫(kù)文件,都不會(huì)刪除其所包含的各個(gè)對(duì)象做口數(shù)據(jù)表)。如果要在刪除數(shù)據(jù)庫(kù)的同時(shí)刪除其所包含的數(shù)據(jù)表,就必須使用命令,格式為: DELETE DATABASE DatabaseName|?[DELETETABLES][RECYCLE] 小提示:
在Visual FoxPro中,Open DataBase和Modify DataBase命令的區(qū)別在于:Open DataBase打開(kāi)的只是數(shù)據(jù)庫(kù)的工作環(huán)境,并不會(huì)進(jìn)入數(shù)據(jù)庫(kù)設(shè)計(jì)器;Modify DataBase是打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器。
4.2 建立數(shù)據(jù)庫(kù)表 考點(diǎn)3 在數(shù)據(jù)庫(kù)中建立表
在數(shù)據(jù)庫(kù)中建立數(shù)據(jù)表,最直接的方法就是在數(shù)據(jù)庫(kù)設(shè)計(jì)器中利用鼠標(biāo)右鍵單擊空白處,選擇“新建表”命令,在彈出的表設(shè)計(jì)器中設(shè)置數(shù)據(jù)表結(jié)構(gòu)。另外可以在命令窗口利用OPEN DATA命令先打開(kāi)數(shù)據(jù)庫(kù),然后利用CREATE命令打開(kāi)表設(shè)計(jì)器進(jìn)行數(shù)據(jù)表設(shè)計(jì),如圖4-l所示。
圖4-1 表設(shè)計(jì)器
1字段名
(l)自由表字段名最長(zhǎng)為10個(gè)字符。
(2)數(shù)據(jù)庫(kù)表字段名最長(zhǎng)為128個(gè)字符。
(3)字段名必須以字母或漢字開(kāi)頭。
(4)字段名可以由字母、漢字、數(shù)字和下劃線(xiàn)組成。
(5)字段名中不能包含空格。
2字段類(lèi)型和寬度
(1)字符型:可以是字母、數(shù)字等各種字符型文本,如用戶(hù)名稱(chēng)。
(2)貨幣型:貨幣單位,如貨物價(jià)格。
(3)數(shù)值型:整數(shù)或小數(shù),如訂貨數(shù)量。
(3)浮點(diǎn)型:功能類(lèi)似于“數(shù)值型”,其長(zhǎng)度在表中最長(zhǎng)可達(dá)20位。
(4)日期型:由年、月、日構(gòu)成的數(shù)據(jù)類(lèi)型,如訂貨日期。
(5)日期時(shí)間型:由年、月、日、時(shí)、分、秒構(gòu)成的數(shù)據(jù)類(lèi)型,如員工上班的時(shí)間。
(6)雙精度型:雙精度數(shù)慎類(lèi)型,一般用于要求精度很高的數(shù)據(jù)。
(7)整型:不帶小數(shù)點(diǎn)的數(shù)值類(lèi)型,如訂單的行數(shù)。
(8)邏輯型:值為“真”(.T.)或假(.F.),如表示訂單是否已執(zhí)行完。
(9)備注型:不定長(zhǎng)的字符型文本。在表中占4個(gè)字節(jié),表備注型文件的擴(kuò)展名為FPT。
(10)通用型:用于標(biāo)記電子表格、文檔、圖片等OLE對(duì)象,在表中占4個(gè)字節(jié)。
(11)字符型(二進(jìn)制)。
(12)備注型(二進(jìn)制)。
3空值
一個(gè)字段是否允許為空值與實(shí)際應(yīng)用有關(guān),比如作為關(guān)鍵字的字段是不允許為空值的,而那些在插入記錄時(shí)允許暫缺的字段值往往允許為空值。
4字段有效性組框
在字段有效性組框中可以定義字段的有效性規(guī)則、違反規(guī)則時(shí)的提示信息和字段的默認(rèn)值。
5顯示組框
在顯示組框下可以定義字段顯示的格式、輸入的掩碼和字段的標(biāo)題。輸入掩碼是字段的一種屬性,用限制或控制用戶(hù)輸入的格式。標(biāo)題用于字段顯示時(shí)的標(biāo)題,如果不指定標(biāo)題則顯示字段名。當(dāng)字段名是英文或縮寫(xiě)時(shí),則通過(guò)指定標(biāo)題可以使界面更友好。
6字段注釋
可以為每個(gè)字段添加注釋?zhuān)阌谌蘸蠡蚱渌藢?duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù)??键c(diǎn)4 修改表結(jié)構(gòu)
在Visual FoxPro中可以對(duì)表結(jié)構(gòu)任意修改,修改表結(jié)構(gòu)和建立表結(jié)構(gòu)時(shí),表設(shè)計(jì)器界面完全一樣。修改數(shù)據(jù)表結(jié)構(gòu)時(shí),首先應(yīng)該用USE命令打開(kāi)要修改的數(shù)據(jù)表,然后利用MODIFY STRUCTURE打開(kāi)表設(shè)計(jì)器進(jìn)行修改,具體操作有以下幾種。
(1)修改已有字段。
(2)添加新字段。
(3)刪除不用的字段。4.3 表的基本操作 考點(diǎn)5 使用瀏覽器操作表
在交互式工作方式下,最簡(jiǎn)單、方便的方法就是使用BROWSE瀏覽器瀏覽表,打開(kāi)瀏覽器的方法有多種。在項(xiàng)目管理器中將數(shù)據(jù)庫(kù)展開(kāi)至表,然后單擊“瀏覽”按鈕,或直接在窗口中輸入BROWSE命令(首先應(yīng)該打開(kāi)表文件)。
1瀏覽器操作
(1)下一記錄(下箭頭鍵)。
(2)前一記錄(上箭頭鍵)。
(3)下一頁(yè)(PageDown鍵)。
(4)上一頁(yè)(PageUp鍵)。
(5)下一字段(Tab鍵)。
(6)前一字段(Shift+Tab鍵)。
2修改記錄
只需將光標(biāo)定位到要修改的記錄和字段上,就可以進(jìn)行修改了。
3刪除記錄
Visual FoxPro中刪除記錄有邏輯刪除和物理刪除兩種,邏輯刪除只在記錄旁做刪除標(biāo)記(如圖4-2所示),必要時(shí)可以進(jìn)行恢復(fù)物理刪除是在邏輯刪除的基礎(chǔ)上真正地將記錄從表中刪除。要在瀏覽器中刪除有刪除標(biāo)記的記錄,可選擇“表/徹底刪除”菜單命令。
圖4-2 增加和刪除記錄
考點(diǎn)6 增加、刪除、修改和顯示記錄的命令
1增加記錄
APPEND命令是在表的尾部增加記錄,格式有如下兩種。
格式1:APPEND
格式2:APPEND BLANK
2插入記錄
格式:INSERT [BEFORE][BLANK]
3刪除記錄
刪除記錄有物理刪除和邏輯刪除兩種,Visual FoxPro用來(lái)刪除記錄的命令如下。
(1)設(shè)置刪除標(biāo)記的命令
格式:DELETE [FOR lExpressionl]
說(shuō)明:如果不使用FOR短語(yǔ)指定邏輯條件,則只刪除當(dāng)前記錄,否則邏輯刪除滿(mǎn)足條件的所有記錄。
(2)恢復(fù)記錄的命令。
格式:RECALL [FOR lExpressionl]
說(shuō)明:使用該命令恢復(fù)表中邏輯刪除的記錄,短語(yǔ)FOR的功能同上。
(3)物理刪除有刪除標(biāo)記的記錄
格式:PACK
說(shuō)明:此命令用來(lái)物理刪除當(dāng)前表中所有帶刪除標(biāo)記的記錄。
(4)物理刪除表中的全部記錄
格式:ZAP
說(shuō)明:不管表中記錄是否帶有刪除標(biāo)記,此命令可以一次性將當(dāng)前表中的記錄全部物理刪除,但表結(jié)構(gòu)仍保留使用此命令相當(dāng)于DELETE ALL與 PACK的連用。
4修改記錄
在Visual FoxPro中可以交互修改記錄,也可以用指定值直接修改記錄。
(1)用EDIT或CHANGE命令交互式修改。
(2)用REPLACE命令直接修改。
5顯示記錄
格式:LIST/DISPLAY [[FIELDS]FieldList][FOR LExpressionl][OFF] [TO PRINTER[PROMPT]|TO FILE FileName] 考點(diǎn)7 查詢(xún)定位的命令
(1)用GOTO命令直接定位
(2)SKIP命令
(3)用LOCATE命令定位。
LOCATE命令是按條件定位記錄位置,格式為: LOCATE FOR IExpressionl LOCATE命令常用結(jié)構(gòu)如下。LOCATE FOR IExpression1 DO WHILE FOUND()****處理數(shù)據(jù)*** CONTINUE ENDDO 小提示:
連續(xù)使用DELETE ALL和PACK命令,其操作結(jié)果與ZAP命令一樣,都可以將表中的所有記錄一次性物理刪除。4.4 索引與排序 考點(diǎn)8 索引的基本概念
索引是對(duì)表中的記錄按照某種邏輯順序重新排列。
(l)主索引:在指定的字段或表達(dá)式中不允許出現(xiàn)重復(fù)值的索引,且一個(gè)表只能創(chuàng)建一個(gè)主索引。
(2)候選索引:具有與主索引相同的性質(zhì)和功能,但一個(gè)表中可以創(chuàng)建多個(gè)候選索引,其指定的字段或表達(dá)式中也不允許出現(xiàn)重復(fù)值。
(3)唯一索引:它的“唯一性”是指索引項(xiàng)的唯一,而不是字段值的唯一。但在使用該索引時(shí),重復(fù)的索引段值只有唯一一個(gè)值出現(xiàn)在索引項(xiàng)中。
(4)普通索引:不僅允許字段中出現(xiàn)重復(fù)值,并且索引項(xiàng)中也允許出現(xiàn)重復(fù)值??键c(diǎn)9 索引的建立
1單項(xiàng)索引
在表設(shè)計(jì)器界面中有“字段”、“索引”和“表”3個(gè)選項(xiàng)卡,在“字段”選項(xiàng)卡中定義字段時(shí)就可以直接指定某些字段是否為索引項(xiàng),用鼠標(biāo)單擊定義索引的下拉列表框可以看到3個(gè)選項(xiàng):無(wú)、升序和降序(默認(rèn)是無(wú))。如果選定升序或降序,則在對(duì)應(yīng)的字段上建立一個(gè)普通索引,索引名與字段名同名,索引表達(dá)式就是對(duì)應(yīng)的字段。
2復(fù)合字段索引
(1)在“索引”選項(xiàng)卡中的索引名欄目中輸入索引名。
(2)在索引類(lèi)型的下拉框中選擇索引類(lèi)型。
(3)單擊表達(dá)式欄右側(cè)的按鈕,打開(kāi)表達(dá)式生成器。
(4)在“表達(dá)式”文本框中輸入索引表達(dá)式(如圖4-3所示),最后單擊“確定”按鈕。
圖4-3 表達(dá)式生成器界面
3使用命令建立索引
格式:INDEX ON eExpression TO IDXFileName | TAG TagName[OF CDXFileName] [FOR lExpression][COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]
從索引的組織方式來(lái)講,索引共有3種類(lèi)型。
(1)單獨(dú)的IDX索引,是一種非結(jié)構(gòu)索引。
(2)采用非默認(rèn)名的CDX索引,也是一種非結(jié)構(gòu)復(fù)合索引。
(3)與表同名的CDX索引,是結(jié)構(gòu)復(fù)合索引。
結(jié)構(gòu)復(fù)合索引文件可隨表的打開(kāi)而打開(kāi),在同一個(gè)索引文件中能包含多個(gè)索引方案或索引關(guān)鍵字,在添加、更改或刪除記錄時(shí)自動(dòng)維護(hù)索引??键c(diǎn)10 索引的使用
(l)打開(kāi)索引文件,格式為: SET INDEX TO Indexfilelist
(2)設(shè)置當(dāng)前索引,格式為:
SET ORDER TO[nIndexNumber |[TAG]TagName][ASCENDING|DESCENDING]
(3)使用索引快速定位,格式為:
SEEK eExpression[ORDER nIndexNumber|[TAG]TagName][ASCENDING| DESCENDING]
(4)刪除索引,格式為:
DELETE TAG TagNamel &&TagName1為索引名
要?jiǎng)h除全部索引,可使用命令:DELETE TAG ALL 考點(diǎn)11 排序
索引可以使用戶(hù)按照某種順序?yàn)g覽或查找表中的記錄,這種順序是邏輯的,如要對(duì)表中的記錄按物理順序重新排列,可使用SORT命令,格式為:
SORT TO TableName ON FieldNainel[/A}/D][/C][,F(xiàn)ieldName2[/A|/D][/C]?][ASCEND ING | DESCENDING][FOR lExpressionl][FIELDS FieldNameList] 小提示:
在數(shù)據(jù)庫(kù)表中只能有一個(gè)主索引,且只能在表設(shè)計(jì)器中建立。其他3種索引可以建立多個(gè),既能在表設(shè)計(jì)器中建立,也能以命令方式建立,但在自由表中不能為其創(chuàng)建主索引,只能創(chuàng)建后3種索引,同樣也可以建立多個(gè)。4.5 數(shù)據(jù)完整性
考點(diǎn)12 實(shí)體完整性與主關(guān)鍵字
(1)實(shí)體完整性是保證表中記錄唯一的特性,即在同一個(gè)表中不允許有重復(fù)的記錄出現(xiàn)。在Visual Pro中通過(guò)主索引和候選索引來(lái)保證數(shù)據(jù)的實(shí)體完整性。
(2)如果一個(gè)字段的值或幾個(gè)字段的值能夠唯一標(biāo)志表中的一條記錄,則稱(chēng)這個(gè)字段為候選關(guān)鍵字。在Visual FoxPro中將主關(guān)鍵字稱(chēng)做主索引,將候選關(guān)鍵字稱(chēng)為候選索引。考點(diǎn)13 參照完整性與表之間的關(guān)聯(lián)
1建立表之間的聯(lián)系
參照完整性與表之間的聯(lián)系有關(guān),其含義大致是:當(dāng)插入、刪除或修改一個(gè)表中的數(shù)據(jù)時(shí),通過(guò)參照引用相互關(guān)聯(lián)的另一個(gè)表中的數(shù)據(jù),檢查對(duì)表的數(shù)據(jù)操作是否正確。
在數(shù)據(jù)庫(kù)設(shè)計(jì)器中設(shè)計(jì)表之間的聯(lián)系時(shí),要在父表中建立主索引,在子表中建立普通索引,然后通過(guò)父表主索引和子表的普通索引建立起兩個(gè)表之間的聯(lián)系。
2設(shè)置參照完整性約束
建立參照完整性之前,首先必須清理數(shù)據(jù)庫(kù),即物理刪除表中被邏輯刪除的記錄,然后選擇兩個(gè)關(guān)聯(lián)表之間的連線(xiàn)并選擇“數(shù)據(jù)庫(kù)”、“編輯參照完整性”菜單命令,打開(kāi)如圖4-4所示的“參照完整性生成器”對(duì)話(huà)框。
圖4-4 “參照完整性生成器”對(duì)話(huà)框 小提示:
欲建立兩表之間的聯(lián)系,首先用鼠標(biāo)選中一個(gè)表的主索引,按住鼠標(biāo)左鍵不放,并拖動(dòng)鼠標(biāo)到另一個(gè)表的索引上,這時(shí)鼠標(biāo)箭頭變成小矩形狀,最后釋放鼠標(biāo)。4.6 自由表
考點(diǎn)14 數(shù)據(jù)庫(kù)表與自由表
自由表是不屬于任何數(shù)據(jù)庫(kù)的表。在沒(méi)有打開(kāi)數(shù)據(jù)庫(kù)時(shí),所建立的表就是自由表。數(shù)據(jù)庫(kù)表與自由表之間可以相互轉(zhuǎn)化。
1建立自由表的方法
(1)在項(xiàng)目的“數(shù)據(jù)”選項(xiàng)卡中選擇“自由表”,單擊“新建”按鈕。
(2)在沒(méi)有打開(kāi)數(shù)據(jù)庫(kù)的情況下,通過(guò)“新建”對(duì)話(huà)框,選擇“表”并單擊“新建文件”按鈕。
(3)在沒(méi)有打開(kāi)數(shù)據(jù)庫(kù)的情況下,在命令窗口輸入CREATE命令,新建自由表。
2數(shù)據(jù)庫(kù)表相對(duì)于自由表的特點(diǎn)
(l)數(shù)據(jù)庫(kù)表可以使用長(zhǎng)表名,在表中可以使用長(zhǎng)字段名。
(2)可以為數(shù)據(jù)庫(kù)表中的字段指定標(biāo)題和添加注釋。
(3)可以為數(shù)據(jù)庫(kù)表中的字段指定默認(rèn)值和輸入掩碼。
(4)數(shù)據(jù)庫(kù)表的字段有默認(rèn)的控件類(lèi)。
(5)可以為數(shù)據(jù)庫(kù)表規(guī)定字段級(jí)規(guī)則和記錄級(jí)規(guī)則。
(6)數(shù)據(jù)庫(kù)表支持主關(guān)鍵字、參照完整性和表之間的聯(lián)系。
(7)支持INSERT,UPDATE和DELETE事件的觸發(fā)器??键c(diǎn)15 將自由表添加到數(shù)據(jù)庫(kù)中
(1)在數(shù)據(jù)庫(kù)設(shè)計(jì)器中可利用“數(shù)據(jù)庫(kù)”→“添加表”菜單命令,在“打開(kāi)”對(duì)話(huà)框中選擇自由表文件,將其添加到數(shù)據(jù)庫(kù)中。
(2)直接用命令方式將自由表添加到當(dāng)前數(shù)據(jù)庫(kù)中,格式為: ADD TABLE TableName|?[NAME LongTableName] 考點(diǎn)16 從數(shù)據(jù)庫(kù)中移出表
(1)直接利用命令移出數(shù)據(jù)庫(kù)表,格式為:
REMOVE TABLE TableName |?[DELETE][RECYCLE]
(2)從項(xiàng)目管理器中移出數(shù)據(jù)庫(kù)。
(3)從數(shù)據(jù)庫(kù)設(shè)計(jì)器中移出數(shù)據(jù)庫(kù)。4.7 多個(gè)表的同時(shí)使用
在Visual FoxPro中,一次可以打開(kāi)多個(gè)數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)都可以打開(kāi)多個(gè)數(shù)據(jù)表??键c(diǎn)17 多工作區(qū)的概念
指定工作區(qū)的命令格式為SELECT nWorkArea | cTableAlias,每個(gè)表打開(kāi)后都有兩個(gè)默認(rèn)別名,一個(gè)是表的自身名,另一個(gè)是工作區(qū)所對(duì)應(yīng)的別名。在前10個(gè)工作區(qū)中指定的默認(rèn)別名是工作區(qū)字母A~J,其后面的工作區(qū)所對(duì)應(yīng)的別名為W11~W32767。
另外還可以在USE命令中通過(guò)ALIAS短語(yǔ)指定表別名。
例如:USE學(xué)生表IN 1 ALIAS student,為學(xué)生表指定了別名student。考點(diǎn)18 使用不同工作區(qū)的表
除了使用SELECT命令切換不同的工作區(qū)之外,也可以在一個(gè)工作區(qū)使用其他工作區(qū)的數(shù)據(jù)表。即通過(guò)短語(yǔ):IN nWorkArea|cTableAlias。在表別名后加上“.”或“->”操作符,可在一個(gè)工作區(qū)中直接調(diào)用其他工作區(qū)中數(shù)據(jù)表的記錄。例如當(dāng)前工作區(qū)號(hào)為2,要調(diào)用1區(qū)上學(xué)生表中的班級(jí)號(hào)的相關(guān)字段,可使用命令:
學(xué)生表.班級(jí)號(hào) 或?qū)W生表->班級(jí)號(hào)或A.班級(jí)號(hào)或A->班級(jí)號(hào) 考點(diǎn)19 表之間的關(guān)聯(lián)
使用SET RELATION命令建立表間記錄指針的臨時(shí)聯(lián)系(關(guān)聯(lián))。
格式:SET RELATION TO eExpressionl INTO nWorkAreal I cTableAliasl。
說(shuō)明:eExpressionl是指建立臨時(shí)聯(lián)系的索引關(guān)鍵字,一般是父表的主索引,子表的普通索引。用工作區(qū)號(hào) nWorkAreal或表的別名cTableAlias I說(shuō)明臨時(shí)聯(lián)系是由當(dāng)前工作區(qū)的表到哪個(gè)表。
利用SET RELATION TO命令將取消當(dāng)前表到所有表的臨時(shí)聯(lián)系。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析之關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL 5.1 SQL概述 考點(diǎn)1 概述
1概念
SQL是結(jié)構(gòu)化查詢(xún)語(yǔ)言Structured Query Language的縮寫(xiě)。它包括數(shù)據(jù)查詢(xún)、數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制4部分。Visual FoxPro在SQL方面支持?jǐn)?shù)據(jù)定義、數(shù)據(jù)查詢(xún)和數(shù)據(jù)操縱功能。另外,由于Visual FoxPro自身在安全控制方面的缺陷,所以它沒(méi)有提供數(shù)據(jù)控制功能。
SQL語(yǔ)言的特點(diǎn)
(1)一種一體化的語(yǔ)言。
(2)一種高度非過(guò)程化的語(yǔ)言。
(3)語(yǔ)言非常簡(jiǎn)潔。
(4)可以直接以命令方式交互使用,也可以以程序方式使用。5.2 查詢(xún)功能
SQL的核心是查詢(xún),基本形式由SELECT-FROM-WHERE查詢(xún)塊組成,多個(gè)查詢(xún)塊可嵌套執(zhí)行,如表5-1所示。
表5-1 SQL命令動(dòng)詞
考點(diǎn)2 簡(jiǎn)單查詢(xún)
1簡(jiǎn)單查詢(xún)
簡(jiǎn)單查詢(xún)是由SELECT和FROM短語(yǔ)構(gòu)成的無(wú)條件查詢(xún),或由SELECT,F(xiàn)ROM和WHERE短語(yǔ)構(gòu)成的條件查詢(xún)。
2簡(jiǎn)單的連接查詢(xún)
連接是關(guān)系的基本操作之一,連接查詢(xún)是一種基于多個(gè)關(guān)系的查詢(xún)。
3嵌套查詢(xún)
嵌套查詢(xún)所要求的結(jié)果出自一個(gè)關(guān)系,但關(guān)系的條件卻涉及多個(gè)關(guān)系。其內(nèi)層基本上也是一個(gè)SELECT-FROM-WHERE查詢(xún)語(yǔ)句。這種簡(jiǎn)單嵌套查詢(xún),可使用謂詞IN或NOT IN來(lái)判斷在外層的查詢(xún)條件中是否包含內(nèi)層查詢(xún)的結(jié)果??键c(diǎn)3 特殊運(yùn)算符號(hào)
BETWEEN?AND?
含義:該查詢(xún)的條件是在??范圍之內(nèi),相當(dāng)于用AND連接的一個(gè)邏輯表達(dá)式。
LIKE
含義:它是一個(gè)字符串匹配運(yùn)算符,與之搭配使用的通配符包括“*”和“?”??键c(diǎn)4 排序
使用SQL SELECT可以將查詢(xún)結(jié)果進(jìn)行排序,排序的短語(yǔ)是ORDER BY。
格式:ORDER BY Order_Item[ASCIDESC][,Order_Item[ASC|DESC]?]
說(shuō)明:可以按升序(ASC)或降序(DESC)排序,允許按一列或多列排序??键c(diǎn)5 計(jì)算查詢(xún)
1簡(jiǎn)單的計(jì)算查詢(xún)
SQL不僅具有一般的檢索能力,而且還有計(jì)算方式的檢索,用于計(jì)算檢索的函數(shù)有:COUNT(計(jì)數(shù))、SUM(求和)、AVG(計(jì)算平均值)、MAX(求最大值)及MIN(求最小值)。
2分組與計(jì)算查詢(xún)
在SQL SELECT中可以利用GROUP BY子句進(jìn)行分組計(jì)算查詢(xún)。
格式:GROUP BY GroupColumn[,GroupColumn?][HAVING FilterCondition]
說(shuō)明:可以按一列或多列分組,還可以用HAVING子句進(jìn)一步限定分組的條件。它必須跟在GROUP BY子句之后,不可單獨(dú)使用,與WHERE子句并不矛盾??键c(diǎn)6 別名和自連接查詢(xún)
(1)SQL語(yǔ)句允許在二OM短語(yǔ)中為關(guān)系定義別名,格式為:一 <關(guān)系名><別名>
(2)SQL不僅可以對(duì)多個(gè)關(guān)系進(jìn)行連接操作,也可以將同一關(guān)系與其自身進(jìn)行連接,這種連接就稱(chēng)為自連接。在關(guān)系的自連接操作中,別名是必不可少的。考點(diǎn)7 使用量詞和謂詞的查詢(xún)
與嵌套查詢(xún)或子查詢(xún)有關(guān)的運(yùn)算符,除了IN和NOT IN運(yùn)算符外,還有兩類(lèi)與子查詢(xún)有關(guān)的運(yùn)算符,它們有以下兩種格式。
(1)<表達(dá)式><比較運(yùn)算符>[ANY I ALL | SOME](子查詢(xún))
(2)[NOT]EXISTS(子查詢(xún))
EXISTS是謂詞,EXISTS或NOT EXISTS是用來(lái)檢查在子查詢(xún)中是否有結(jié)果返回,即存在元組或不存在元組。其本身并沒(méi)有進(jìn)行任何運(yùn)算或比較,只用來(lái)返回子查詢(xún)結(jié)果??键c(diǎn)8 超鏈接查詢(xún)
(1)在新的SQL標(biāo)準(zhǔn)中支持兩個(gè)新的關(guān)系連接運(yùn)算符,這兩個(gè)新的連接運(yùn)算是左連接(*=)和右連接=*):首先保證一個(gè)表中滿(mǎn)足條件的元組都在結(jié)果表中,然后將滿(mǎn)足連接條件的元組與另一個(gè)表的元組進(jìn)行連接,不滿(mǎn)足連接條件的則應(yīng)將來(lái)自另一個(gè)表的屬性值置為空值。在一般SQL中超鏈接運(yùn)算符是“*=”(左連接)和“=*”(右連接)。
(2)在Visual FoxPro中不支持超鏈接運(yùn)算符“*=”和“=*”,Visual FoxPro有專(zhuān)門(mén)的連接運(yùn)算。下面拼出SQL中超鏈接的部分語(yǔ)句格式:
SELECT? FROM Table INNER|LEFT|RIGHT|FULL JOIN Table ON JoinCondition WHERE?
考點(diǎn)9 Visual FoxPro中SQL SELECT的幾個(gè)特殊選項(xiàng)
(l)顯示部分結(jié)果,格式為: TOP nExpr[PERCENT]
(2)將查詢(xún)結(jié)果存放到數(shù)組中,格式為: INTO ARRAY ArrayName
(3)將查詢(xún)結(jié)果存放到臨時(shí)文件中,格式為: INTO CURSOR CursorName
(4)將查詢(xún)結(jié)果存放到永久表中,格式為: INTO DBF|TABLE TableName
(5)將查詢(xún)結(jié)果存放到文本文件中,格式為: TO FILE FileName[ADDITIVE]
(6)將查詢(xún)結(jié)果直接輸出到打印機(jī),格式為: TO PRINTER[PROMPT] 5.3 操作功能 考點(diǎn)10 插入
Visual FoxPro支持兩種SQL插入命令的格式,一種是標(biāo)準(zhǔn)格式,另一種是特殊格式。
1標(biāo)準(zhǔn)格式
INSERT INTO dbf name[(frame 1[,fname2,?])] VALUES(eExpressionl[,eExpression2,?])
2特殊格式
INSERT INTO dbf _name FROM ARRAY ArrayName|FROM MEMVAR 考點(diǎn)11 更新
SQL的數(shù)據(jù)更新命令格式如下: UPDATE TableName
SET Column_Namel=eEpressionl[,Column_Name2=eExpression2?] WHERE Condition
說(shuō)明:利用WHERE字句指定條件,以更新滿(mǎn)足條件的一些記錄的字段值,并巨一次可更新多個(gè)字段;如果不使用WHERE子句,則更新全部記錄??键c(diǎn)12 刪除
SQL從表中刪除數(shù)據(jù)的命令格式如下: DELETE FROM TableName[WHERE Condition]
說(shuō)明:FROM指定從哪個(gè)表中刪除記錄,WHERE指定被刪除的記錄所滿(mǎn)足的條件,如果不使用WHERE子句,則刪除該表中的全部記錄。小提示:
當(dāng)一個(gè)表定義一個(gè)主索引或候選索引后,由于相應(yīng)的字段具有關(guān)鍵字的特性,即不能為空,所以只能用此命令插入記錄、)APPEND和INSERT都是插入一條空白記錄再輸入各字段的值,故不能用它們來(lái)插入記錄。5.4 定義功能 考點(diǎn)13 表的定義
利用SQL命令建立的數(shù)據(jù)表同樣可以完成在表設(shè)計(jì)器中設(shè)計(jì)表的所有功能。
格式:CREATE TABLE I DBF TableNamel[NAME LongTableName][FREE](FieldNarnel FieldType[(nFieldWidth[,nPrecision])][NULL |NOT NULL] [CHECK IExpressionl [ERROR cMessageTextl]] [DEFAULT eExpressionl] [PRIMARY KEY I UNIQUE] [PEFERENCES TableName2[AG TagName1]] [NOCPTRANS] [,F(xiàn)ieldName2?]
[,PRIMARY KEY eEpression2 TAG TagName2|,UNIQUE eExpression3 TAG TagName3] [,F(xiàn)OREIGN KEY eExpression4 TagName4[NODUP] REFERENCES TableName3 [TAG TagName5]] [,CHECK lExpression2[ERROR cMessageText2]])|FROM ARRAY ArravNasne
說(shuō)明:此命令除了建立表的基本功能外,還包括滿(mǎn)足實(shí)體完整性的主關(guān)鍵字(主索引)PRIMARY KEY、定義域完整性的CHECK約束及出錯(cuò)提示信息ERROR、定義默認(rèn)值DEFAULT等,另外還有描述表之間聯(lián)系的FOREIGN KEY和REFERENCES等??键c(diǎn)14 表的刪除
利用SQL命令刪除表,可直接使用語(yǔ)句,格式為: DROP TABLE Table_name
說(shuō)明:如果刪除的是自由表,則應(yīng)該將當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)先關(guān)閉,才能進(jìn)行刪除。如果刪除數(shù)據(jù)庫(kù)表,則要先打開(kāi)數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中進(jìn)行操作二否則,即使刪除了數(shù)據(jù)庫(kù)表,但記錄在數(shù)據(jù)庫(kù)中的信息并沒(méi)有被刪除,此后會(huì)出現(xiàn)錯(cuò)誤提示。考點(diǎn)15 表結(jié)構(gòu)的修改
修改表結(jié)構(gòu)的命令是ALTER TABLE,該命令有3種格式。
(1)ALTER TABLE TableNamel ADD| ALTER[COLUMN]FieldNamel FieldTvpe[(nFieldWidth[,nPrecision])][NULL |NOT NULL] [CHECK lExpressionl[ERROR cMessageTextl ]][DEFAULT eExpressionl] [PRIMARY KEY |UNIQUE] [REFERENCES TableName2[TAG TagNamel〕]
(2)ALTER TABLE TableNamel ALTER[COLUMN]FieldName2[NULL|NOT NULL] [SET EFAULTeExpression2][SET CHECK lExpression2[ERROR cMessageText2] [DROP DEFAULT][DROP CHECK]
(3)ALTER TABLE TableName1[DROP [COLUMN]FieldName3] [SET CHECK lExpression3[ERROR cMessageText3] [DROP CHECK] [ADD PRIMARY KEY eExpression3 TAG TagName2[FOR lExpression4]] [DROP PRIMARY KEY〕
[ADD UNIQUE eExpression4[TAG TagName3[FOR lExpression5]]] [DROP UNIQUE TAG TagName4] [ADD FOREIGN KEY[eExpression5] TAG TagName4[FOR lExpression6] REFERENCES TableName2[TAG TagName5]] [DROP FOREIGN KEY TAG TagName6[SAVE]] [RENAME COLUMN FieldName4 TO FieldName5] 考點(diǎn)16 視圖的定義
1視圖的概念及其定義
(l)視圖的概念。
Visual FoxPro中視圖是一個(gè)虛擬的表,可以是本地的、遠(yuǎn)程的或帶參數(shù)的。
(2)視圖的定義,格式為:
CREATE VIEW view name[(column_name[,column_name]?)] AS select_statement
2從單個(gè)表派生出來(lái)的視圖
視圖一經(jīng)定義,就可以和基本表一樣進(jìn)行各種查詢(xún),也可以進(jìn)行一些修改操作。對(duì)于最終用戶(hù)來(lái)說(shuō),有時(shí)并不需要知道操作的是基本表還是視圖。
3從多個(gè)表派生出來(lái)的視圖
視圖一方面可以限定對(duì)數(shù)據(jù)的訪(fǎng)問(wèn),另一方面又可以簡(jiǎn)化對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)。
4視圖的刪除
視圖由于是從表派生出來(lái)的,所以不存在修改結(jié)構(gòu)的問(wèn)題,但是視圖可以刪除。
格式:DROP VIEW<視圖名>
5關(guān)于視圖的說(shuō)明
在關(guān)系數(shù)據(jù)庫(kù)中,視圖始終不真正含有數(shù)據(jù),它總是原有表的一個(gè)窗口。所以,雖然視圖可以像表一樣進(jìn)行各種查詢(xún),但是插入、更新和刪除操作在視圖上卻有一定限制。在一般情況下,當(dāng)一個(gè)視圖是由單個(gè)表導(dǎo)出時(shí)可以進(jìn)行插入和更新操作,但不能進(jìn)行刪除操作;當(dāng)視圖是從多個(gè)表導(dǎo)出時(shí),插入、更新和刪除操作都不允許進(jìn)行。這種限制是很有必要的,它可以避免一些潛在問(wèn)題的發(fā)生。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析之查詢(xún)與視圖(第六章)
6.1 查詢(xún) 考點(diǎn)1 查詢(xún)?cè)O(shè)計(jì)器
1查詢(xún)的概念
查詢(xún)是從指定的表或視圖中提取滿(mǎn)足條件的記錄,然后按照想得到的輸出類(lèi)型定向輸出查詢(xún)結(jié)果。查詢(xún)以擴(kuò)展名為QPR的文件保存在磁盤(pán)上的,這是一個(gè)文本文件,它的主體是SQL SELECT語(yǔ)句。
2查詢(xún)的建立
建立查詢(xún)可以使用“查詢(xún)?cè)O(shè)計(jì)器”,但它的基礎(chǔ)是SQL SELECT語(yǔ)句。建立查詢(xún)的方法有以下幾個(gè)方面。
(l)可以利用CREATE QUERY命令打開(kāi)查詢(xún)?cè)O(shè)計(jì)器建立查詢(xún)。
(2)可以利用“新建”對(duì)話(huà)框打開(kāi)查詢(xún)?cè)O(shè)計(jì)器建立查詢(xún)。
(3)可以在項(xiàng)目管理器的“數(shù)據(jù)”選項(xiàng)卡中打開(kāi)查詢(xún)?cè)O(shè)計(jì)器建立查詢(xún)。
(4)可直接編輯QPR文件建立查詢(xún)。
建立查詢(xún)時(shí),首先進(jìn)入如圖6-1所示的界面選擇用于建立查詢(xún)的表或視圖,選擇表或視圖后,單擊“添加”按鈕。最后單擊“關(guān)閉”按鈕,進(jìn)入如圖6-2所示的查詢(xún)?cè)O(shè)計(jì)器界面。
圖6-1 為查詢(xún)選擇表或視圖
查詢(xún)?cè)O(shè)計(jì)器中的各選項(xiàng)卡和SQL SELECT語(yǔ)句的各短語(yǔ)是相對(duì)應(yīng)的,對(duì)應(yīng)關(guān)系如下。
“字段”――SELECT短語(yǔ),用于指定要查詢(xún)的數(shù)據(jù)
“連接”――JOIN ON短語(yǔ),用于編輯連接條件。
“篩選”――WHERE短語(yǔ),用于指定查詢(xún)條件。
“排序依據(jù)”――ORDER BY短語(yǔ),用于指定排序字段和排序方式。
“分組依據(jù)”――GROUP BY短語(yǔ)和HAVING短語(yǔ),用于分組。
圖6-2 查詢(xún)?cè)O(shè)計(jì)器
3查詢(xún)的運(yùn)行
運(yùn)行查詢(xún)有下列兩種方法。
(1)可以在項(xiàng)口管理器的“數(shù)據(jù)”選項(xiàng)卡中,展開(kāi)“查詢(xún)”選項(xiàng),然后選擇要運(yùn)行的查詢(xún)文件,單擊“運(yùn)行”按鈕,可查看查詢(xún)結(jié)果。
(2)在命令窗門(mén)執(zhí)行命令DO QueryFile。
注意:此處的查詢(xún)文件名是全名,包括擴(kuò)展名QPR。
4查詢(xún)?nèi)ハ?/p>
設(shè)計(jì)查詢(xún)的目的不只是完成一種查詢(xún)功能,在查詢(xún)?cè)O(shè)計(jì)器中可以根據(jù)需要為查詢(xún)輸出定位查詢(xún)?nèi)ハ?。通過(guò)“查詢(xún)”菜單卜的“查詢(xún)?nèi)ハ颉?,或在“查?xún)?cè)O(shè)計(jì)器”工具欄中單擊“查詢(xún)?nèi)ハ颉卑粹o?!安樵?xún)?nèi)ハ颉睂?duì)話(huà)框如圖6-3所示
圖6-3 “查詢(xún)?nèi)ハ颉睂?duì)話(huà)框
各去向的含義如下。
(1)瀏覽:在“瀏覽"(BROWSE)窗口中顯示查詢(xún)結(jié)果,這是默認(rèn)的輸出去向。
(2)臨時(shí)表:將查詢(xún)結(jié)果存儲(chǔ)于一個(gè)命名的臨時(shí)只讀表中。
(3)表:將結(jié)果保存在一個(gè)命名的數(shù)據(jù)表文件中。
(4)圖形:查詢(xún)結(jié)果可以用于Microsoft Graph。
(5)屏幕:在Visual FoxPro主窗口或當(dāng)前活動(dòng)輸出窗口中顯示查詢(xún)結(jié)果。
(6)報(bào)表:將結(jié)果輸出到一個(gè)報(bào)表文件。
(7)標(biāo)簽:將結(jié)果輸出到一個(gè)標(biāo)簽文件。小提示:
在7種輸出去向中,只有“瀏覽”和“屏幕”兩種輸出去向才能直接看到查詢(xún)結(jié)果。6.2 視圖
考點(diǎn)2 視圖的概念與建立
1視圖的概念
視圖是操作表的一種手段,通過(guò)視圖可以查詢(xún)表,也可以更新表。視圖是根據(jù)表定義的,因此視圖基于表,而視圖可以使應(yīng)用更靈活,因此它又超越表。視圖是數(shù)據(jù)庫(kù)中的一個(gè)特有功能,只有在包含視圖的數(shù)據(jù)庫(kù)打開(kāi)時(shí)才能使用。
視圖兼有“表”和“查詢(xún)”的特點(diǎn),與查詢(xún)相類(lèi)似的地方是可以用來(lái)從一個(gè)或多個(gè)相關(guān)聯(lián)的表中提取有用信息;與表類(lèi)似的地方是可以用來(lái)更新其中的信息,并將結(jié)果永久性保存在磁盤(pán)上。
2視圖的建立
(l)用CREATE VIEW命令打開(kāi)視圖設(shè)計(jì)器建立視圖。
(2)利用“新建”對(duì)話(huà)框打開(kāi)視圖設(shè)計(jì)器建立視圖。
(3)在項(xiàng)目管理器的“數(shù)據(jù)”選項(xiàng)卡中打開(kāi)視圖設(shè)計(jì)器建立視圖。
(4)利用SQL命令CREATE VIEW...AS...建立視圖。
3視圖設(shè)計(jì)象
視圖設(shè)計(jì)器(如圖6一所示)與查詢(xún)?cè)O(shè)計(jì)器基本上一樣,主要有以下幾點(diǎn)不同。
(1)視圖的結(jié)果保存在數(shù)據(jù)庫(kù)中,在磁盤(pán)上找不到類(lèi)似的文件。
(2)視圖可以用來(lái)更新數(shù)據(jù),因此在設(shè)計(jì)器中多了一個(gè)“更新條件”選項(xiàng)卡。
(3)在視圖中沒(méi)有“查詢(xún)?nèi)ハ颉钡膯?wèn)題。
圖6-4 視圖設(shè)計(jì)器 考點(diǎn)3 遠(yuǎn)程視圖與連接
為了建立遠(yuǎn)程視圖,必須首先建立連接遠(yuǎn)程數(shù)據(jù)庫(kù)的“連接”,“連接”是Visual FoxPro數(shù)據(jù)庫(kù)中的一種對(duì)象。
1定義數(shù)據(jù)源和連接
數(shù)據(jù)源一般是ODBC數(shù)據(jù)源,開(kāi)放數(shù)據(jù)庫(kù)互連ODBC是一種連接數(shù)據(jù)庫(kù)的通用標(biāo)準(zhǔn)。為了定義ODBC數(shù)據(jù)源,必須首先安裝ODBC驅(qū)動(dòng)程序。
2建立連接
建立連接的方法有以下幾種。
(1)用CREATE CONNECTION命令打開(kāi)“連接設(shè)計(jì)器”,或完全用命令方式建立連接。
(2)通過(guò)“新建”對(duì)話(huà)框建立連接。
(3)在項(xiàng)目管理器的“數(shù)據(jù)”選項(xiàng)卡中建立連接。
3設(shè)計(jì)遠(yuǎn)程視圖
利用數(shù)據(jù)源或連接建立的遠(yuǎn)程視圖的SQL語(yǔ)法要符合遠(yuǎn)程數(shù)據(jù)庫(kù)的語(yǔ)法,例如,SQL Server的語(yǔ)法和Visual FoxPro的語(yǔ)法就有所區(qū)別??键c(diǎn)4 視圖與數(shù)據(jù)更新
視圖是根據(jù)基本表派生出來(lái)的,所以把它叫做虛擬表為了通過(guò)視圖能夠更新基本表中的數(shù)據(jù),需要在視圖設(shè)計(jì)器的“更新條件”選項(xiàng)卡中的左下角選中“發(fā)送SQL更新”復(fù)選框。
1指定可更新的表
如果視圖是基于多個(gè)表的,默認(rèn)可以更新“全部表”的相關(guān)字段,如果要指定只能更新某個(gè)表的數(shù)據(jù),則可以通過(guò)“表”下拉列表框選擇表
2指定可更新的字段
在“字段名”列表框中列出了與更新有關(guān)的字段,在字段名左側(cè)有兩列標(biāo)志,“鑰匙”表示關(guān)鍵字,“鉛筆”表示更新通過(guò)單擊相應(yīng)列可以改變相關(guān)的狀態(tài),默認(rèn)可以更新所有非關(guān)鍵字字段,并且通過(guò)基本表的關(guān)鍵字完成更新,即Visual FoxPro用這些關(guān)鍵字字段來(lái)唯一標(biāo)識(shí)那些已在視圖中修改過(guò)的基本表中的記錄建議不要改變關(guān)鍵字的狀態(tài),不要試圖通過(guò)視圖來(lái)更新基本表中的關(guān)鍵字字段值,如有必要,可以指定更新非關(guān)鍵字字段值
3檢查更新的合法性
如圖6-1所示,“SQL WHERE子句包括”框中的選項(xiàng)決定哪些字段包含在UPDATE或DELETE語(yǔ)句的WHERE子句中,Visual FoxPro正是利用這些語(yǔ)句將在視圖中修改或刪除的記錄發(fā)送到遠(yuǎn)程數(shù)據(jù)源或基本表中,WHERE子句就是用來(lái)檢查自從提取記錄用于視圖中后,服務(wù)器上的數(shù)據(jù)是否已經(jīng)改變。
“SQL WHERE子句包括”框中各選項(xiàng)的含義如下。
(l)關(guān)鍵字段:當(dāng)基本表中的關(guān)鍵字字段被改變時(shí),更新失敗。
(2)關(guān)鍵字和可更新字段:當(dāng)基本表中任何標(biāo)記為可更新的字段被改變時(shí),更新失敗。
(3)關(guān)鍵字和已修改字段:當(dāng)在視圖中改變的任一字段的值在基本表中已被改變時(shí),更新失敗。
(4)關(guān)鍵字和時(shí)間戳:當(dāng)遠(yuǎn)程表上記錄的時(shí)間戳在首次檢索之后被改變時(shí),更新失敗。
4使用更新方式
“使用更新”框的選項(xiàng)決定當(dāng)向基本表發(fā)送SQL更新時(shí)的更新方式。
(1)SQL DELETE然后INSERT:先用SQL DELETE命令刪除基本表中被更新的舊記錄,再用SQL INSERT命令向基本表中插入更新后的記錄。
(2)SQL UPDATE:使用SQL UPDATE命令更新基本表。考點(diǎn)5 使用視圖
視圖建立后,不但可以用它來(lái)顯示和更新數(shù)據(jù),而且可以通過(guò)調(diào)整它的屬性來(lái)提高性能,它的使用類(lèi)似于表。
1視圖操作
(1)在數(shù)據(jù)庫(kù)中使用USE命令打開(kāi)或關(guān)閉視圖。
(2)在“瀏覽器”窗口中顯示或修改視圖中的記錄。
(3)使用SQL語(yǔ)句操作視圖。
(4)在文本框、表格控件、表單或報(bào)表中使用視圖作為數(shù)據(jù)源。
2使用視圖
視圖一經(jīng)建立就基本可以像基本表一樣使用,適用于基本表的命令基本都可以用于視圖。比如在視圖上也可以建立索引,此索引當(dāng)然是臨時(shí)的,視圖一關(guān)閉,索引自動(dòng)刪除,多工作區(qū)時(shí)也可以建立聯(lián)系等。但視圖不可以用MODIFY STRUCTURE命令修改結(jié)構(gòu)。因?yàn)橐晥D畢竟不是獨(dú)立存在的基本表,它是由基本表派生出來(lái)的,只能修改視圖的定義。
小提示:
查詢(xún)與視圖的區(qū)別是:查詢(xún)可以定義輸出去向,可以將查詢(xún)的結(jié)果靈活地應(yīng)用于表單、報(bào)表、圖形等各種場(chǎng)合,但是利用查詢(xún)不可以修改數(shù)據(jù);而利用視圖可以修改數(shù)據(jù),可以利用SQL將對(duì)視圖的修改發(fā)送到基本表,特別是對(duì)于遠(yuǎn)程表的操作,利用視圖是非常有效的。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析之程序設(shè)計(jì)基礎(chǔ)(第七章)7.l 程序與程序文件
考點(diǎn)1 程序的概念、建立與執(zhí)行
1程序的概念
程序是能夠完成一定任務(wù)的命令集合。這組命令被存放在稱(chēng)為程序文件或命令文件的文本文件中。當(dāng)運(yùn)行程序時(shí),系統(tǒng)會(huì)按照一定的次序自動(dòng)執(zhí)行包含在程序文件中的命令。
2程序文件的建立與修改
程序文件的建立與修改一般是通過(guò)調(diào)用系統(tǒng)內(nèi)置的文本編輯器來(lái)進(jìn)行的。其建立步驟如下。
(l)打開(kāi)文本編輯窗口。
(2)在文本編輯窗口中輸入程序內(nèi)容,此處所輸入的程序命令不會(huì)馬上被執(zhí)行。
(3)編輯完成后,從“文件”菜單中選擇“保存”命令或按快捷鍵Ctrl+W保存程序文件。
3打開(kāi)或修改程序文件的方法
(1)從“文件”菜單中選擇“打開(kāi)”命令,彈出“打開(kāi)”對(duì)話(huà)框。
(2)在“文件類(lèi)型”列表框中選擇“程序”。
(3)在文件列表框中選定要修改的文件,并單擊“確定”按鈕。
(4)編輯修改后,從“文件”菜單中選擇“保存”命令或按快捷鍵Ctrl+W保存程序文件,若要放棄修改,可直接按Esc鍵,或從“文件”菜單中選擇“還原”命令。
4程序文件的執(zhí)行
程序文件建立后,可使用多種方式、多次執(zhí)行它,常用的以下有兩種方式。
(l)菜單方式。
(2)命令方式。考點(diǎn)2 簡(jiǎn)單的輸入輸出命令
程序一般都包含數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出3個(gè)部分。
INPUT命令
格式:INPUT[<字符表達(dá)式>]TO<內(nèi)存變量>
功能:該命令等待用戶(hù)從鍵盤(pán)輸入數(shù)據(jù),當(dāng)用戶(hù)回車(chē)后,系統(tǒng)將表達(dá)式的值存入指定的內(nèi)存變量。
注釋?zhuān)狠斎氲臄?shù)據(jù)可以是常量、變量,也可以是更為一般的表達(dá)式。但不能不輸入任何內(nèi)容直接按回車(chē)鍵輸入字符串時(shí)必須加定界符,輸入邏輯型常量時(shí)要用圓點(diǎn)定界(如.T.,.F.),則輸入日期時(shí)間型常量時(shí)要用大括號(hào)(如{^2001-03-01})。
ACCEPT命令
格式:ACCEPT[<字符表達(dá)式>]TO<內(nèi)存變量>
功能:該命令等待用戶(hù)從鍵盤(pán)輸入字符串,當(dāng)用戶(hù)回車(chē)后,系統(tǒng)將表達(dá)式的值存入指定的內(nèi)存變量。
注釋?zhuān)涸撁钪荒芙邮兆址S脩?hù)在輸入字符串時(shí)不需要加定界符;否則,系統(tǒng)會(huì)把定界符作為字符串本身的一部分。如果不輸入任何內(nèi)容而直接按回車(chē)鍵,系統(tǒng)會(huì)把空串賦給指定的內(nèi)存變量。
WAIT命令
格式:WAIT[<字符表達(dá)式>][TO<內(nèi)存變量>][WINDOW[AT<行>,<列>]] [NOWAIT][CLEARINOCLEAR][TIMEOUT<數(shù)值表達(dá)式>]
功能:該命令顯示字符表達(dá)式的值作為提示信息,暫停程序的執(zhí)行,直到用戶(hù)按任意鍵或單擊鼠標(biāo)時(shí)繼續(xù)程序運(yùn)行。
注釋?zhuān)?內(nèi)存變量>用來(lái)保存用戶(hù)輸入的字符,其類(lèi)型為字符型。若用戶(hù)按的是Enter鍵或單擊了鼠標(biāo),那么<內(nèi)存變量>中保存的將是空串若不選TO <內(nèi)存變量>短語(yǔ),則輸入的單字符不保留。小提示:
如果用DO命令執(zhí)行查詢(xún)文件、菜單文件,在文件名中必須要包括擴(kuò)展名(QPR、MPR)。7.2 程序的基本結(jié)構(gòu)
程序結(jié)構(gòu)是指程序中命令或語(yǔ)句執(zhí)行的流程結(jié)構(gòu),包括3種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)??键c(diǎn)3 順序結(jié)構(gòu)
順序結(jié)構(gòu)是最簡(jiǎn)單的程序結(jié)構(gòu),它是按命令在程序中出現(xiàn)的先后次序依次執(zhí)行。考點(diǎn)4 選擇結(jié)構(gòu)
支持選擇結(jié)構(gòu)的語(yǔ)句包括條件語(yǔ)句和分支語(yǔ)句。
1條件語(yǔ)句
格式: IF<條件> <語(yǔ)句序列1> [ELSE> <語(yǔ)句序列2>] ENDIF
功能:該語(yǔ)句根據(jù)<條件>是否成立從兩組代碼中選擇一組執(zhí)行。
語(yǔ)句的執(zhí)行流程圖如圖7-1和圖7-2所示。
圖7-1有ELSE的選擇語(yǔ)句
圖7-2無(wú)ELSE的選擇語(yǔ)句
2分支語(yǔ)句
格式:DO CASE CASE<條件1> <語(yǔ)句序列1> CASE<條件2> <語(yǔ)句序列2> ??
CASE<條件n> <語(yǔ)句序列n> [OTHERWISE <語(yǔ)句序列>] ENDCASE
功能:語(yǔ)句執(zhí)行時(shí),依次判斷CASE后面的條件是否成立。分支語(yǔ)句實(shí)現(xiàn)的是一種擴(kuò)展的選擇結(jié)構(gòu),可以根據(jù)條件從多組代碼中選擇一組執(zhí)行。分支語(yǔ)句的流程如圖7-3所示。
圖7-3 多分支語(yǔ)句 考點(diǎn)5 循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)也稱(chēng)為重復(fù)結(jié)構(gòu),是指程序在執(zhí)行的過(guò)程中,其中的某段代碼被重復(fù)執(zhí)行若一干珠。被重復(fù)執(zhí)行的代碼段,通常稱(chēng)為循環(huán)體。Visual FoxPro支持循環(huán)結(jié)構(gòu)的語(yǔ)句包括:DO WHILE-ENDDO、FOR-ENDFOR和SCAN-ENDSCAN。
DO WHILEENDFOR語(yǔ)句 格式:
FOR<循環(huán)變量>=<初值>TO<終值>[STEP<步長(zhǎng)>] <循環(huán)體> ENDFOR
功能:首先將初值賦給循環(huán)變量,然后判斷循環(huán)條件是否成立(若步長(zhǎng)為正值,則循環(huán)條件為<循環(huán)變量><=<終值>;若步長(zhǎng)為負(fù)值,則循環(huán)條件為<循環(huán)變量>>=<終值>)。如果成立,則執(zhí)行循環(huán)體,然后循環(huán)變量增加一個(gè)步長(zhǎng)值,并再次判斷循環(huán)條件,一直到條件為假時(shí),退出循環(huán)體。該語(yǔ)句通常用于實(shí)現(xiàn)循環(huán)次數(shù)已知情況下的循環(huán)結(jié)構(gòu)〕
SCAN-ENDSCAN語(yǔ)句
格式:
SCAN[<范圍>][FOR<條件1>][WHERE<條件2>] <循環(huán)體> ENDSCAN
功能:該循環(huán)語(yǔ)句一般用于處理表中記錄,語(yǔ)句可指明需要處理的記錄范圍及應(yīng)滿(mǎn)足的條件。執(zhí)行該語(yǔ)句時(shí),記錄指針自動(dòng)、依次地在當(dāng)前表的指定范圍內(nèi)滿(mǎn)足條件的記錄上移動(dòng),對(duì)每一條記錄執(zhí)行循環(huán)體內(nèi)的命令。
7.3 多模塊程序
模塊是一個(gè)相對(duì)獨(dú)立的程序段,它可以被其他模塊調(diào)用,也可以調(diào)用其他模塊。通常,把被其他模塊調(diào)用的模塊稱(chēng)為子程序,把調(diào)用其他模塊而沒(méi)有被其他模塊調(diào)用的模塊稱(chēng)為主程序。應(yīng)用程序一般都是多模塊程序,包含多個(gè)程序模塊。考點(diǎn)6 模塊的定義和調(diào)用
1模塊的定義
在Visual FoxPro中,模塊可以是命令文件,也可以是過(guò)程。過(guò)程定義的語(yǔ)句格式為: PROCEDURE|FUNCTION<過(guò)程名> <命令序列> [RETURN[<表達(dá)式>]] [ENDPROCIENDFUNC]
功能說(shuō)明如下。
(1)PROCEDURE|FUNCTION命令表示一個(gè)過(guò)程的開(kāi)始,并命名過(guò)程。過(guò)程名必須以字母或下劃線(xiàn)開(kāi)頭,可以包含數(shù)字、字母和下劃線(xiàn)。
(2)當(dāng)程序執(zhí)行到RETURN命令時(shí),控制將轉(zhuǎn)回到調(diào)用處(或命令窗口),并返回表達(dá)式的值。若默認(rèn)RETURN命令,系統(tǒng)將在過(guò)程結(jié)束處自動(dòng)調(diào)用一條隱含的RETURN命令。
(3)ENDPROC|ENDFUNC命令表示一個(gè)過(guò)程的結(jié)束。如果默認(rèn)此語(yǔ)句,那么過(guò)程結(jié)束于下一條PROCEDURE|FUNCTION命令或文件尾。
2模塊的調(diào)用
模塊調(diào)用的格式有兩種。
(1)使用DO命令,格式如下。DO<文件名>|<過(guò)程名>
(2)在名字后加一對(duì)小括號(hào),格式如下。<文件名>|<過(guò)程名>()
3打開(kāi)過(guò)程文件
命令格式如下。
SET PROCEDURE TO[<過(guò)程文件1>[,<過(guò)程文件2>,?][ADDITIVE]
4關(guān)閉過(guò)程文件
命令格式如下。
RELEASE PROCEDURE<過(guò)程文件1>[,<過(guò)程文件2>,?] 考點(diǎn)7 參數(shù)傳遞
模塊程序可以接收調(diào)用程序傳遞過(guò)來(lái)的參數(shù)。
(1)PARAMETERS<形參變量1>[,<形參變量2>,?]。
(2)LPARAMETERS<形參變量1>[,<形參變量2>,?]。
說(shuō)明PARAMETERS聲明的形參被看做是模塊程序中建立的私有變量,LPARAMETERS聲明的形參被看做是模塊程序中建立的局部變量。除此之外,兩條命令無(wú)其他區(qū)別。
不管是PARAMETERS或LPARAMETERS,都應(yīng)該是模塊程序的第一條可執(zhí)行命令。
(1)調(diào)用參數(shù)調(diào)用模塊程序參數(shù)的格式如下。
DO<文件名>|<過(guò)程名>WITH<實(shí)參1>[,<實(shí)參2>,?] <文件名>|<過(guò)程名>(<實(shí)參1>[,<實(shí)參2>,?])
說(shuō)明:實(shí)參可以是常量、變量或一般表達(dá)式,調(diào)用模塊程序時(shí),形參的數(shù)目不能少于實(shí)參的數(shù)目,當(dāng)形參數(shù)目多于實(shí)參數(shù)目時(shí),多余的形參取初值邏輯假.F.。
(2)參數(shù)的傳遞。模塊中參數(shù)的傳遞分為兩種:按值傳遞(實(shí)參一般為常量和表達(dá)式)和引用傳遞(實(shí)參一般為變量)。參數(shù)的傳遞方式可以重新設(shè)置,格式如下。SET UDFPARMS TO VALUE|REFERENCE 考點(diǎn)8 變量的作用域
變量的一個(gè)重要屬性是作用域。變量的作用域指的是變量在什么范圍內(nèi)是有效或能夠被訪(fǎng)問(wèn)的。在Visual FoxPro中,可分為公共變量、私有變量和局部變量3類(lèi)。
1.公共變量
在任何模塊中都可使用的變量稱(chēng)為公共變量,公共變量必須先定義后使用,格式如下。PUBLIC<內(nèi)存變量表>
說(shuō)明:該命令是建立公共的內(nèi)存變量,并賦以初值邏輯假.F.。建立好的公共變量一直有效,即使程序結(jié)束返回命令窗口也不會(huì)消失,只有執(zhí)行CLEAR MEMORY,RELEASE或QUIT等命令后,才能被釋放。
2私有變量
在程序中直接使用(沒(méi)有預(yù)先聲明),而由系統(tǒng)自動(dòng)隱含建立的變量都是私有變量。
私有變量的作用域是建立它的模塊及其下屬的各層模塊。
3局部變量
局部變量只能在建立它的模塊中使用,不能在上層或下層模塊中使用。程序結(jié)束時(shí),自動(dòng)釋放局部變量。格式如下 LOCAL<內(nèi)存變量表>
說(shuō)明:該變量同樣給建立的內(nèi)存變量賦以初值邏輯假.F.,也必須先定義后使用。當(dāng)子程序中定義的變量名與主程序中同名時(shí),為避免子程序中的變量值改變主程序中的變量值,可在子程序中使用PRIVATE命令隱藏主程序中可能存在的變量,使這些變量在子程序中暫時(shí)無(wú)效。格式如下。
(1)PRIVATE<內(nèi)存變量表>。
(2)PRIVATE ALL[LIKE<通配符>|EXCEPT<通配符>]。
說(shuō)明:該命令并不建立內(nèi)存變量,它只是隱藏指定的在上層模塊中可能已經(jīng)存在的內(nèi)存變量,但是當(dāng)模塊程序返回到上層模塊時(shí),被隱藏的變量就自動(dòng)恢復(fù)有效性,保持原值。7.4 程序調(diào)試 考點(diǎn)9 調(diào)試器環(huán)境
程序調(diào)試是指在發(fā)現(xiàn)程序有錯(cuò)誤的情況下,確定出錯(cuò)位置并糾正錯(cuò)誤。計(jì)算機(jī)一般能夠發(fā)現(xiàn)程序的出錯(cuò)位置,但對(duì)于計(jì)算機(jī)不能發(fā)現(xiàn)的錯(cuò)誤,只能由用戶(hù)自己來(lái)查錯(cuò)。Visual FoxPro提供的功能強(qiáng)大的調(diào)試工具—調(diào)試器,可幫助我們進(jìn)行這項(xiàng)工作。
調(diào)用調(diào)試器的方法一般有兩種。
(l)選擇“工具”菜單中的“調(diào)試器”命令。
(2)在命令窗口中輸入DEBUG命令??键c(diǎn)10 設(shè)置斷點(diǎn)
可以設(shè)置以下4種類(lèi)型的斷點(diǎn)。
(1)在定位處中斷:可指定一行代碼,當(dāng)程序調(diào)試執(zhí)行到該行時(shí),中斷程序運(yùn)行。
(2)如果表達(dá)式值為真,則在定位處中斷:指定一行代碼及一個(gè)表達(dá)式,當(dāng)程序調(diào)試執(zhí)行到該行代碼時(shí),如果表達(dá)式值為真,就中斷程序運(yùn)行。
(3)當(dāng)表達(dá)式值為真時(shí)中斷:可以指定一個(gè)表達(dá)式,在程序調(diào)試執(zhí)行過(guò)程中,當(dāng)該表達(dá)式值為邏輯真.T.時(shí),中斷程序運(yùn)行。
(4)當(dāng)表達(dá)式值改變時(shí)中斷:可以指定一個(gè)表達(dá)式,在程序調(diào)試執(zhí)行過(guò)程中,當(dāng)該表達(dá)式值改變時(shí),中斷程序運(yùn)行??键c(diǎn)11 “調(diào)試”菜單
“調(diào)試”菜單包含執(zhí)行程序、選擇執(zhí)行方式、終止程序執(zhí)行、修改程序,以及調(diào)整程序執(zhí)行速度等命令。各命令具體功能如下。
(1)運(yùn)行:執(zhí)行在跟蹤窗口中打開(kāi)的程序:
(2)繼續(xù)執(zhí)行:當(dāng)程序被中斷時(shí),該命令可使程序在中斷處繼續(xù)往下執(zhí)行。
(3)取消:終止程序的調(diào)試執(zhí)行,并關(guān)閉程序。
(4)定位修改:終止程序的調(diào)試執(zhí)行,然后在文本編輯窗口中打開(kāi)調(diào)試程序。
(5)跳出:以連續(xù)方式而非單步方式繼續(xù)執(zhí)行被調(diào)用模塊程序中的代碼,然后在調(diào)用程序的調(diào)用語(yǔ)句的下一行處中斷。
(6)單步:?jiǎn)尾綀?zhí)行下一行代碼。如果下一行代碼調(diào)用了過(guò)程或者方法程序,那么該過(guò)程或者方法程序在后臺(tái)執(zhí)行。
(7)單步跟蹤:?jiǎn)尾綀?zhí)行下一行代碼。
(8)運(yùn)行到光標(biāo)處:從當(dāng)前位置執(zhí)行代碼直至光標(biāo)處中斷。
(9)調(diào)速:打開(kāi)“調(diào)整運(yùn)行速度”對(duì)話(huà)框,設(shè)置兩代碼行執(zhí)行之間的延遲秒數(shù)。
(10)設(shè)置下一條語(yǔ)句:程序中斷時(shí)選擇該命令,可使光標(biāo)所在行成為恢復(fù)執(zhí)行后要執(zhí)行的語(yǔ)句。
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VF考點(diǎn)分析之表單設(shè)計(jì)與應(yīng)用(第八章)8.1 面向?qū)ο蟮母拍?考點(diǎn)1 對(duì)象與類(lèi)
1對(duì)象(Object)
客觀世界里的任何實(shí)體都可以被視為對(duì)象。對(duì)象可以是具體事物,也可以指某些概念二
(1)屬性:用來(lái)表示對(duì)象的狀態(tài)。
(2)方法:用來(lái)描述對(duì)象的行為。
2類(lèi)(Class)
類(lèi)是對(duì)一類(lèi)相似對(duì)象性質(zhì)的描述。同類(lèi)對(duì)象具有相同的性質(zhì):相同的屬性及方法。考點(diǎn)2 子類(lèi)與繼承
第五篇:二級(jí)VF上機(jī)操作常見(jiàn)錯(cuò)誤總結(jié)
二級(jí)VF上機(jī)操作常見(jiàn)錯(cuò)誤總結(jié)
1、出現(xiàn)如下提示框,提示:命令中含有不能識(shí)別的短語(yǔ)或關(guān)鍵字。該提示表示所輸入的命令的打錯(cuò)的關(guān)鍵字。例如:
(1)SQL查詢(xún)語(yǔ)句中,將from 錯(cuò)打成 form。
(2)SQL查詢(xún)語(yǔ)句中,將標(biāo)點(diǎn)符號(hào)錯(cuò)打成了中文狀態(tài)下的標(biāo)點(diǎn)符號(hào),應(yīng)改成英文狀態(tài)下的標(biāo)點(diǎn)符號(hào)。
2、在運(yùn)行SQL命令時(shí),出現(xiàn)打開(kāi)對(duì)話(huà)框,并且文件類(lèi)型指定為表。表示SQL中FROM后面接的表名打錯(cuò)了或根本就不存在。例如:
考生文件夾下有一個(gè)表,表名為“student.dbf”。此時(shí),考生的輸入的命令為select * from 學(xué)生,則系統(tǒng)就會(huì)彈出打開(kāi)對(duì)話(huà)框。
3、考生在做模擬軟件的時(shí)候,認(rèn)為自己哪里都做對(duì)了,但是最后評(píng)分確是0分。請(qǐng)重點(diǎn)檢查以下可能的錯(cuò)誤原因。
(1)文件建立完成后,在保存時(shí),文件名保存錯(cuò)了。
(2)查詢(xún)或表單等在建立完成后,并沒(méi)有按照要求去運(yùn)行,以致沒(méi)有產(chǎn)生題目所要求的結(jié)果表,故被評(píng)為0分。
4、在運(yùn)行查詢(xún)時(shí),彈出提示窗口。提示內(nèi)容為:操作符/操作數(shù)類(lèi)型不匹配 該錯(cuò)誤提示多數(shù)情況下是由于條件語(yǔ)句中的表達(dá)式”=”兩邊的數(shù)據(jù)類(lèi)型不一致所造成的。
5、在上機(jī)操作中,有些命令或程序只能執(zhí)行一次,多執(zhí)行就會(huì)出錯(cuò)。例如: Insert into 命令:該命令的功能是插入記錄,每執(zhí)行一次,就插入一條,多執(zhí)行就會(huì)出現(xiàn)在表中出現(xiàn)重復(fù)記錄的現(xiàn)象。
Alter table 命令:該命令是修改表結(jié)構(gòu),正確執(zhí)行一次就可以成功得分,如再次執(zhí)行就會(huì)提示錯(cuò)誤。
6、在數(shù)據(jù)庫(kù)為表建立參照完整性的時(shí)候,需要首先清理數(shù)據(jù)庫(kù),清理數(shù)據(jù)庫(kù)時(shí)提示“無(wú)法清理數(shù)據(jù)庫(kù)”,此時(shí)可關(guān)閉VF,重新啟動(dòng)VF,再進(jìn)行清理即可。
7、很多考生使用拼音輸入法,所以在打字時(shí)經(jīng)常將某些字輸入錯(cuò)。如:訂單管理、簽訂日期的訂字,很容易就錯(cuò)誤的輸入成“定單管理”和“簽定日期”。
8、在為某字段設(shè)置有效性規(guī)則時(shí),首先一定要選中該字段,然后再去設(shè)置。設(shè)置時(shí),規(guī)則文本框中是“邏輯表達(dá)式或關(guān)系表達(dá)式”,不能加引號(hào),信息文本框是錯(cuò)誤提示信息,一定要加引號(hào);默認(rèn)值加不加引號(hào)取決所設(shè)置的字段是否為字符型。
對(duì)于是否加引號(hào),有 孟氏口訣:“上邊不加,下邊加”。
9、考生在練習(xí)SQL語(yǔ)句的過(guò)程中,經(jīng)常會(huì)出現(xiàn)評(píng)分后不能得滿(mǎn)分的情況,回到模擬軟件中繼續(xù)練習(xí)時(shí)還得重新輸入SQL命令,令很多考生煩惱。建議考生在輸入完SQL命令后,將該SQL命令復(fù)制下來(lái),粘貼到一個(gè)記事本文件中,如果評(píng)分不能得到滿(mǎn)分,下次可以直接把原來(lái)的SQL命令復(fù)制回來(lái)查找錯(cuò)誤并進(jìn)行修改,可以不用重新輸入。
10、考生注意區(qū)分:I(i)l(L)1 及 o(O)0
11、注意表名的問(wèn)題。例如題目中提示:“考生目錄下有student.dbf”,則表名為student.dbf,考生切不可想當(dāng)然的認(rèn)為表名為“學(xué)生.dbf”
12、出現(xiàn)提示“致命錯(cuò)誤”。這個(gè)錯(cuò)誤是由于VF系統(tǒng)本身的不完善所致,造成此故障的考生原因多數(shù)是由“表達(dá)式中的數(shù)據(jù)類(lèi)型不一致”所造成的,所以考生重新啟動(dòng)VF后,要注意檢查表達(dá)式運(yùn)算符兩邊的數(shù)據(jù)類(lèi)型是否一致。
13、考生在輸入命令的過(guò)程中,出現(xiàn)“輸入一個(gè)字就刪除相應(yīng)位置上的一個(gè)字”這種情況??忌恍枰匆幌骆I盤(pán)上的Insert 鍵即可解決。
第1頁(yè)
【重要提示】
上機(jī)考試是由機(jī)器自動(dòng)評(píng)分,在評(píng)分中大體上可以分為兩種評(píng)分方法。一是,檢查命令是否正確,即檢查題目正確答案所要求的關(guān)鍵字是否存在,如存在,則可以得分。二是,檢查所要求的結(jié)果是否正確,例如,考試要求建立一個(gè)查詢(xún),文件名為myquery.qpr,并設(shè)置查詢(xún)?nèi)ハ驗(yàn)楸韗esults.dbf,則系統(tǒng)在評(píng)分是即要檢查myquery.qpr是否正確,又要檢查results.dbf文件是否正確。
根據(jù)系統(tǒng)評(píng)分的特點(diǎn),我們就可以對(duì)上機(jī)考試投機(jī)取巧。如果評(píng)分系統(tǒng)是檢查命令是否正確,就可以采用萬(wàn)能代碼法。即將你所有能想起來(lái)的VF關(guān)鍵字包括運(yùn)算符都輸入到代碼窗口中,此辦法雖不能保證得滿(mǎn)分,但可得一部份分;如果系統(tǒng)是采用檢查結(jié)果的評(píng)分辦法,那么我們就可以造結(jié)果的方法。例如,要求使用命令將所有學(xué)生的年齡+1,我們可以直接打開(kāi)表,在瀏覽窗口去修改表中的記錄?!編c(diǎn)說(shuō)明】
1、對(duì)于上機(jī)考試中要求使用SQL命令去操作的題,多數(shù)情況下,我們都可以使用查詢(xún)?cè)O(shè)計(jì)器去簡(jiǎn)化操作。
2、考生在操作的過(guò)程中經(jīng)常會(huì)因?yàn)楦鞣N原因把文件名存錯(cuò),以致于得0分,修改辦法有兩種:一是,在項(xiàng)目管理器中,選中所要修改的文件名,并單擊右鍵,選擇重命名;二是,打開(kāi)該文件的設(shè)計(jì)器,然后選擇“文件”——“另存為”,就可以重新定義文件名了。
3、各位考生一定要學(xué)會(huì)檢查運(yùn)行結(jié)果是否正確。如設(shè)計(jì)一個(gè)查詢(xún)文件,考生做完之后,可以打開(kāi)查詢(xún)?nèi)ハ蛩付ǖ谋?,根?jù)經(jīng)驗(yàn)初步檢查結(jié)果是否正確。
4、對(duì)于改錯(cuò)題,各位考生只要按照《Visual FoxPro上機(jī)寶典》中的改正方法直接修改并運(yùn)行即可。并不需要去真正理解題目的含義。因?yàn)樯蠙C(jī)考試是采用題庫(kù)的形式,考的就是原題。(提示:選擇一款好的模擬軟件真的很重要,可以事半功倍。)
5、對(duì)于《Visual FoxPro上機(jī)寶典》的使用,考生在熟悉上機(jī)題后,要做到“做題不看書(shū),看書(shū)不做題”。絕不可以“看一個(gè)字,打一個(gè)字”,《Visual FoxPro上機(jī)寶典》的正確性不需要由各位考生來(lái)驗(yàn)證。[轉(zhuǎn)載請(qǐng)注明出自http://blog.sina.com.cn/itabc] 分享:
Qing