VF數(shù)據(jù)庫(kù)實(shí)用講座第二章-第八章.ppt_第1頁(yè)
VF數(shù)據(jù)庫(kù)實(shí)用講座第二章-第八章.ppt_第2頁(yè)
VF數(shù)據(jù)庫(kù)實(shí)用講座第二章-第八章.ppt_第3頁(yè)
VF數(shù)據(jù)庫(kù)實(shí)用講座第二章-第八章.ppt_第4頁(yè)
VF數(shù)據(jù)庫(kù)實(shí)用講座第二章-第八章.ppt_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Visual FoxPro窗口和環(huán)境設(shè)置 項(xiàng)目管理器的應(yīng)用 數(shù)據(jù)庫(kù)的建立及使用,第二章,命令窗,顯示主窗,狀態(tài)行 當(dāng)前表、記錄數(shù),智能菜單 根據(jù)打開(kāi)的窗口不同顯示不同菜單內(nèi)容,VFP的系統(tǒng)界面,VF環(huán)境 配置 在成功地安裝了 Visual FoxPro 之后,需要設(shè)置開(kāi)發(fā)環(huán)境。環(huán)境設(shè)置包括主窗口標(biāo)題、默認(rèn)目錄、項(xiàng)目、編輯器、調(diào)試器及表單工具選項(xiàng)、臨時(shí)文件存儲(chǔ)、拖放字段對(duì)應(yīng)的控件和其他選項(xiàng)。方法:從“工具”菜單選擇“選項(xiàng)”命令,注意:將當(dāng)前設(shè)置保存為默認(rèn)設(shè)置,項(xiàng)目管理器的應(yīng)用,“項(xiàng)目管理器”是 V F 中處理數(shù)據(jù)和對(duì)象的主要組織工具,是 文件、數(shù)據(jù)、文檔和 V F 對(duì)象的集合,其保存文件帶有 .

2、pjx 擴(kuò)展名。 在建立表、數(shù)據(jù)庫(kù)、查詢、表單、報(bào)表以及應(yīng)用程序時(shí),可以用“項(xiàng)目管理器”來(lái)組織和管理文件。 “項(xiàng)目管理器”為數(shù)據(jù)提供了一個(gè)組織良好的分層結(jié)構(gòu)視圖。若要處理項(xiàng)目中某一特定類型的文件或?qū)ο?,可選擇相應(yīng)的選項(xiàng)卡。 “項(xiàng)目管理器”顯示為一個(gè)獨(dú)立的窗口。可以移動(dòng)它的位置、改變它的尺寸或者將它折疊起來(lái)只顯示選項(xiàng)卡。,項(xiàng)目管理器折疊,項(xiàng)目管理器與工具欄合并,“項(xiàng)目管理器”中的項(xiàng)是以類似于大綱的結(jié)構(gòu)來(lái)組織的,可以將其展開(kāi)或折疊,以便查看不同層次中的詳細(xì)內(nèi)容。 創(chuàng)建和修改文件-單擊右上角的向上箭頭,即可折疊,將選項(xiàng)卡拖出來(lái)顯示,如果項(xiàng)目中具有一個(gè)以上同一類型的項(xiàng),其類型符號(hào)旁邊會(huì)出現(xiàn)一個(gè) + 號(hào)

3、。單擊 + 號(hào)可以顯示項(xiàng)目中該類型項(xiàng)的名稱。 若要折疊已展開(kāi)的列表,可單擊列表旁邊的 - 號(hào),例如,如果想把一些已有的擴(kuò)展名為 .dbf 的表添加到項(xiàng)目中,只需在“數(shù)據(jù)”選項(xiàng)卡中選擇“自由表”,然后用“添加”按鈕把它們添加到項(xiàng)目中。 “項(xiàng)目管理器”簡(jiǎn)化了創(chuàng)建和修改文件的過(guò)程,只需選定要?jiǎng)?chuàng)建或修改的文件類型,然后選擇“新建”、“修改”、“添加“或”移去”文件按鈕,V FP 將顯示與所選文件類型相應(yīng)的設(shè)計(jì)工具,選項(xiàng)卡,數(shù)據(jù)”選項(xiàng)卡,數(shù)據(jù)庫(kù)是表的集合,一般通過(guò)公共字段彼此關(guān)聯(lián)。使用“數(shù)據(jù)庫(kù)設(shè)計(jì)器”可以創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)文件的擴(kuò)展名為 .dbc。 數(shù)據(jù)庫(kù)表和自由表都存貯在以 .dbf 為擴(kuò)展名的文

4、件中,但自由表不是數(shù)據(jù)庫(kù)的組成部分。 查詢是檢查存貯在表中的特定信息的一種結(jié)構(gòu)化方法。利用“查詢?cè)O(shè)計(jì)器”,可以設(shè)置查詢的格式,該查詢將按照輸入的規(guī)則從表中提取記錄。查詢被保存為帶 .qpr 擴(kuò)展名的文件。 視圖是特殊的查詢,通過(guò)更改由查詢返回的記錄,可以用視圖訪問(wèn)遠(yuǎn)程數(shù)據(jù)或更新數(shù)據(jù)源。視圖只能存在于數(shù)據(jù)庫(kù)中,它不是獨(dú)立的文件。,數(shù)據(jù)庫(kù)的建立及使用,建立數(shù)據(jù)表 確定表中字段的內(nèi)容 向表中輸入數(shù)據(jù) 修改和瀏覽數(shù)據(jù)表 追加其它表中已有的記錄 按照條件添加記錄,相關(guān)概念: VF中的數(shù)據(jù)庫(kù)是由表(.dbf)構(gòu)成的。 “表”是一個(gè)的二維的表格,也稱為關(guān)系,由行和列組成,表格中的每一行稱為一個(gè)紀(jì)錄,表格中的

5、每一列則稱為一個(gè)字段。 使用“表設(shè)計(jì)器”可以方便、直接地創(chuàng)建表,我們既可以通過(guò)“項(xiàng)目管理器”的“數(shù)據(jù)”選項(xiàng)卡使用“表設(shè)計(jì)器”創(chuàng)建;也可以從“文件”菜單中使用“表設(shè)計(jì)器”創(chuàng)建。 自由表,是指它是孤立存在的,和其他表沒(méi)有發(fā)生聯(lián)系,既不能控制其他表,也不被其他表控制。它獨(dú)立存在于任何數(shù)據(jù)庫(kù)之外。 數(shù)據(jù)庫(kù)表,它是數(shù)據(jù)庫(kù)的一部分,行 記錄 元組,表名 關(guān)系名,字段 屬性 字段名 屬性名 字段值 屬性值,這個(gè)二維表格,又稱關(guān)系,數(shù)據(jù)類型 表中的每一個(gè)字段由于其數(shù)據(jù)代表的意義的不同,因而都有特定的數(shù)據(jù)類型,例如:編號(hào)、姓名、出生年月三個(gè)字段的類型是各不相同的,在VF中,分別是用數(shù)值型(或整型)、字符型、日期

6、型來(lái)表示的。熟悉各種數(shù)據(jù)類型可以幫助我們更快更好地對(duì)表進(jìn)行操作。VF6.0 表中的數(shù)據(jù)類型及簡(jiǎn)單的說(shuō)明如下:,字符型:用于包含字母、漢字、數(shù)字型文本、符號(hào)、標(biāo)點(diǎn)等一種或幾種的字段,其中的數(shù)字一般不是用來(lái)進(jìn)行數(shù)學(xué)計(jì)算的,如電話號(hào)碼、姓名、地址。 貨幣型:貨幣單位,最多可有四位小數(shù),如果小數(shù)部分超過(guò)四位則將通過(guò)四舍五入只保留四位,如商品價(jià)格。 數(shù)值型:整數(shù)或小數(shù)。如:成績(jī)、年齡、 訂貨數(shù)量。如果有小數(shù),需要指定小數(shù)位數(shù),小數(shù)點(diǎn)包含在字段寬度中,占一個(gè)字節(jié)。它還支持十六進(jìn)制數(shù)值。 浮點(diǎn)型:同數(shù)值型。 整 型:不帶小數(shù)點(diǎn)的數(shù)值。,日期型:用來(lái)存放日期數(shù)值,Visual FoxPro 6.0(5.0)支

7、持2000年型的日期數(shù)值。格式為:月/日/年。如:04/28/97。其中的年份如果輸入97,則系統(tǒng)默認(rèn)為1997,將光標(biāo)條移到表中該字段時(shí)就會(huì)顯示“04/28/1997”,如果輸入小于48的數(shù)(如45)則系統(tǒng)默認(rèn)為2045,因此,最好輸入完整的年份。 日期時(shí)間型:格式為:月/日/年 時(shí):分:秒 AM或PM。如:04/28/97 06:26:00 AM。 雙精度型:雙精度數(shù)值,如實(shí)驗(yàn)所要求的高精度數(shù)據(jù)。,邏輯型:當(dāng)存儲(chǔ)的數(shù)據(jù)只有兩種可能時(shí)使用,用True(.T.)和False(.F.)表示。如:是否結(jié)婚。 備注型:又稱內(nèi)存型,它的長(zhǎng)度隨輸入數(shù)據(jù)的長(zhǎng)度而定,它的存儲(chǔ)和表中其他數(shù)據(jù)是分開(kāi)的,存放在擴(kuò)

8、展名為.FPT的文件中。 通用型:可以鏈接或嵌入OLE對(duì)象,如由其他應(yīng)用程序創(chuàng)建的電子表格、WORD文檔、圖片。當(dāng)鏈接OLE對(duì)象時(shí),表中只包含指向數(shù)據(jù)的鏈接和創(chuàng)建OLE對(duì)象的應(yīng)用程序的鏈接;當(dāng)嵌入OLE對(duì)象時(shí),表中包含OLE對(duì)象復(fù)件及指向創(chuàng)建此OLE對(duì)象應(yīng)用程序的鏈接。,創(chuàng)建新表步驟:,選擇新建表,打開(kāi)表設(shè)計(jì)器,建立表結(jié)構(gòu) (也可以用命令:CREATE ) 1、輸入字段名。 2、選擇字段類型。 (注意,字段的數(shù)據(jù)類型應(yīng)與將要存儲(chǔ)在其中的信息類型相匹配) 3、選擇寬度 (字段的寬度足夠容納將要顯示的信息內(nèi)容,一個(gè)漢字需占兩個(gè)字符。) 4、設(shè)置“小數(shù)位數(shù)” 。 5、如果要為字段添加索引,就在“索引

9、”列中選擇一種排序方式。,輸入字段名,選擇字段類型,建立表結(jié)構(gòu),選擇寬度,選擇 小數(shù),建立索引,允許為空,當(dāng)前行 調(diào)整次序,6、如果想讓字段接受 null 值,選中“NULL”。NULL無(wú)明確的值,它不等同于零或空格。按ctrl+0 輸入 字段名前的雙向箭頭表明是當(dāng)前行。一行各項(xiàng)目之間用Tab鍵移動(dòng)。 7、表的結(jié)構(gòu)設(shè)置完畢后, 選取“確定”按鈕,會(huì)詢問(wèn)“現(xiàn)在輸入數(shù)據(jù)嗎?”。此時(shí),可以選擇是立即開(kāi)始輸入記錄,還是在以后準(zhǔn)備好所有記錄后再打開(kāi)表進(jìn)行輸入。,在表中添加記錄,“打開(kāi)”已有的數(shù)據(jù)庫(kù)表,點(diǎn)瀏覽,從“文件”菜單打開(kāi),注意文件位置,注意文件類型,在“瀏覽”窗口中輸入新的記錄Ctrl+y 。當(dāng)輸

10、入內(nèi)容滿一個(gè)字段時(shí), 光標(biāo)會(huì)自動(dòng)跳到下一個(gè)字段。內(nèi)容不滿時(shí),用Tab鍵或回車鍵將光標(biāo)移到下一字段。 當(dāng)編輯備注型(memo)字段時(shí),將光標(biāo)條移到memo上,雙擊它或按Ctrl+Home鍵就可進(jìn)入memo字段的輸入窗口進(jìn)行輸入、修改。完成后,單擊窗口上的關(guān)閉按鈕“X”或按Ctrl+w可以保存并關(guān)閉窗口。如不想保存,則按Esc鍵或Ctrl +Q。 進(jìn)入通用型(gen)字段與備注型方法相同。進(jìn)入編輯窗口后,打開(kāi)“編輯”菜單,選擇“插入對(duì)象”進(jìn)入插入對(duì)象窗口。選擇“新建”可以創(chuàng)建多種格式的圖象。我們選擇“由文件創(chuàng)建”,在“文件”框中輸入插入對(duì)象的文件名,包括路徑。,點(diǎn)擊修改數(shù)據(jù),CTRL+Y, 添加記

11、錄,如果選擇“鏈接”則只存儲(chǔ)該圖象的鏈接,而不把整個(gè)圖象包括進(jìn)通用型字段中。如果選擇“顯示為圖標(biāo)”則可以用圖標(biāo)表示插入的圖象對(duì)象。,通用型字段輸入 為插入對(duì)象,可以新建也可以來(lái)自文件,查看表的信息,可以使用“編輯”窗口或“瀏覽”窗口 瀏覽窗口的技巧: 將鼠標(biāo)指向兩字段名之間,這時(shí)鼠標(biāo)會(huì)變成左右向的雙向箭頭,用左鍵按住它左右拖動(dòng),字段寬度變化了。這只是顯示寬度變化了,并未改變表的結(jié)構(gòu)。 將鼠標(biāo)指向?yàn)g覽窗口最左邊中間的區(qū)域(這里稱為記錄條調(diào)節(jié)線,其上稱為字段名條調(diào)節(jié)線,其下的黑色小豎長(zhǎng)條稱為窗口拆分條),當(dāng)鼠標(biāo)變成上下向雙向箭頭時(shí),按住它上下拖動(dòng),就可以改變記錄條的高度。 當(dāng)鼠標(biāo)在字段名調(diào)節(jié)線上變

12、成雙向箭頭時(shí),上下拖動(dòng)可以改變字段名的高度。,如果我們對(duì)字段名的排列順序不太滿意,如想把字段位置調(diào)換一下,這也很好辦,只要將鼠標(biāo)放在字段名上時(shí),它會(huì)變成一個(gè)黑的向下箭頭,按住想移動(dòng)的字段,拖到合適的位置放開(kāi)。,字段寬度調(diào)節(jié)線,記錄高度 調(diào)節(jié)線,窗格 分割線,字段 選定,表的字段很多,可以拆分窗口。左右窗格可以都為“編輯”窗口或“瀏覽”窗口,也可以一邊是“編輯”窗口,一邊是“瀏覽”窗口。,另外,還可從“顯示”菜單中選擇“網(wǎng)格線”來(lái)隱藏網(wǎng)格線。,表記錄的定位,了解以下幾個(gè)概念:當(dāng)前記錄:對(duì)表中的記錄的操作是一個(gè)一個(gè)的進(jìn)行的,我們把正在操作的記錄叫作當(dāng)前記錄。打開(kāi)一個(gè)表時(shí),第一個(gè)記錄叫當(dāng)前記錄。記錄

13、號(hào)RECNO:按記錄的輸入順序記錄指針:指向當(dāng)前記錄的,并反映了當(dāng)前記錄的記錄號(hào)。 記錄定位:用命令指定當(dāng)前哪一個(gè)記錄為記錄,以便對(duì)其進(jìn)行操作。 記錄的定位方式絕對(duì)定位 goto相對(duì)定位 skip條件定位 locate,表文件的邏輯結(jié)構(gòu),記錄指針,GO TOP,Eof()=.t.,Bof()=.t.,GOTO 2,Goto record n,Goto bottom,(1) 絕對(duì)定位: GOTO 1 記錄號(hào)必須是一個(gè)正整數(shù)(或變量,數(shù)值表達(dá)式)2 還可以如下表示:GOTO TOP 指針指向首記錄 GOTO BOTTOM 指針指向末記錄3 GOTO可以簡(jiǎn)寫(xiě)為GO4 記錄號(hào)為常數(shù)時(shí),GO可以省略,只

14、寫(xiě)記錄號(hào). (2)相對(duì)定位:SKIP +/-功能:在當(dāng)前記錄位置上進(jìn)行記錄指針的相對(duì)移動(dòng).說(shuō)明: 1 +,- 號(hào)只取一個(gè),+ 號(hào)(可以省略)表示當(dāng)前記錄向后移動(dòng),- 號(hào)(不能省略)表示當(dāng)前記錄向前移動(dòng).2 移動(dòng)距離是一個(gè)整數(shù)(可以是數(shù)值表達(dá)式),向后移動(dòng)一個(gè)記錄可以省略 +1。,記錄定位,單擊“作用范圍”下拉框,可以看到有“All ”、“ Next”、“ Record”、“Rest”四個(gè)選項(xiàng)。 默認(rèn)的“All”指全部記錄;“ Next”配合其右邊的數(shù)字(如8),表示對(duì)從當(dāng)前記錄起以下多少個(gè)(如8個(gè))記錄進(jìn)行操作;“ Record”配合其右邊的數(shù)字,作用與上面的“記錄號(hào)”相同;“Rest”表示對(duì)

15、從當(dāng)前記錄開(kāi)始,到文件的最后一個(gè)記錄為止的所有記錄進(jìn)行操作。,如果選擇“定位”,會(huì)彈出下面的對(duì)話框:,“For”、“While”文本框是可選項(xiàng),可以輸入或選擇表達(dá)式,表示操作的條件。其右邊的帶“.”的按鈕是表達(dá)式生成按鈕,單擊它會(huì)彈出對(duì)話框,以方便選擇操作條件。 “For”、“While”雖然都表示操作條件,但也有區(qū)別:For對(duì)滿足表達(dá)式條件的所有記錄進(jìn)行操作;While則從表中的當(dāng)前記錄開(kāi)始向下順序判斷,只要出現(xiàn)不滿足表達(dá)式條件的記錄就終止,而不管理其后是否還有滿足條件的記錄。我們看下面兩條命令: Brow Next 9 For 成績(jī)85 Brow Next 9 While 成績(jī)85 前者表

16、示的是從當(dāng)前記錄后的9個(gè)記錄中所有成績(jī)大于85分的記錄都顯示;而后者則遇到一個(gè)符合條件的顯示一個(gè),當(dāng)遇到成績(jī)不大于85 分的記錄終止,不再向下顯示(其中,Brow是命令,作用是將符合條件的記錄顯示在“瀏覽”窗口中) 相當(dāng)于條件定位命令:LOCATE FOR ,實(shí)例 Use exam Go 5 Disp 7 Goto 7 Skip 5 Skip 7 Locate for 電話號(hào)碼=6666002 continue disp Go bottom ?eof() Skip ?eof,作業(yè)題:模擬建立一個(gè)項(xiàng)目,建立項(xiàng)目:本人姓名 數(shù)據(jù)庫(kù):學(xué)生人員信息庫(kù) 數(shù)據(jù)庫(kù)表:學(xué)生名冊(cè)、成績(jī)表、考勤表等 自由表:通訊

17、錄 (以上各表,字段不少于3個(gè),記錄不少于2個(gè),內(nèi)容自定,看誰(shuí)設(shè)計(jì)的好),第三章修改表,第一節(jié) 1 修改表結(jié)構(gòu) 2 添加記錄 3 刪除記錄 4 編輯記錄,例表:exam.dbf,1 修改已有表的結(jié)構(gòu),在表中增加字段 刪除表中的字段 方法:1 打開(kāi)表設(shè)計(jì)器進(jìn)行操作 2 命令:MODI STRU,實(shí)例,將 exam.dbf 表中 話費(fèi)改為話費(fèi)合計(jì) 增加兩欄 性別,族別(都是c型) 增設(shè)一項(xiàng):備注(備注型) 增設(shè)一項(xiàng):用戶圖片(通用型),表設(shè)計(jì)器,2 添加記錄,1、在“瀏覽”和“編輯”窗口下,選擇“追加新紀(jì)錄”。 2、在“瀏覽”和“編輯”窗口下,選擇“追加紀(jì)錄”,打開(kāi)“追加來(lái)源”對(duì)話窗,進(jìn)行追加,同

18、時(shí)可以選擇追加類型、來(lái)源、和條件。 3、用命令 APPEND . FROM FOR ,選擇追加類型、來(lái)源、和條件,Use exam Append from exam for 營(yíng)業(yè)區(qū)=“市區(qū)” Append Append from exam for 地址=“奎屯鐵路” Append from exam for “奎屯鐵路”$地址 Append from exam for “123”$地址 菜單操作 FLASH課件第三課:按照條件添加記錄,3 刪除記錄,刪除表中的記錄共有兩個(gè)步驟。首先是單擊每個(gè)要?jiǎng)h除記錄左邊的小方框,標(biāo)記要?jiǎng)h除的記錄,標(biāo)記記錄并不等于刪除記錄。要想真正地刪除記錄,還應(yīng)從“表”菜單

19、中選擇“徹底刪除”。 這個(gè)過(guò)程將刪除所有標(biāo)記過(guò)的記錄,并重新構(gòu)造表中余下的記錄。刪除做過(guò)刪除標(biāo)記的記錄時(shí)會(huì)將表關(guān)掉,因此若要繼續(xù)工作,必須重新打開(kāi)該表。 刪除命令: 邏輯刪除 DELETE 邏輯刪除記錄的恢復(fù)命令 RECALL 物理刪除 PACK 刪除所有記錄ZAP 命令,除了通過(guò)鼠標(biāo)單擊做刪除標(biāo)記外,還可以通過(guò)在“刪除”對(duì)話框中設(shè)置條件,有選擇地刪除一組記錄。步驟: 1、從“表”菜單中選擇“刪除記錄”,出現(xiàn)“刪除”對(duì)話框: 在其中輸入刪除條件和范圍。 2、在輸入完刪除條件后,按“刪除”按鈕,就為符合條件的記錄打上了刪除標(biāo)記。 3、從“表”中選擇“徹底刪除”。,刪除標(biāo)記,例子,Use exam

20、 dele for left(電話號(hào)碼,3)=“666” dele for 營(yíng)業(yè)區(qū)=“團(tuán)場(chǎng) Pack 8 Dele next 10 Dele record 10 Dele rest Recall 用戶號(hào)=72411,4 編輯記錄,不管是在“瀏覽”窗口還是在“編輯”窗口中,都可以滾動(dòng)記錄,查找指定的記錄,以及直接修改表的內(nèi)容。 若要改變“字符型”字段、“數(shù)值型”字段、“邏輯型”字段、“日期型”字段或“日期時(shí)間型”字段中的信息,可以把光標(biāo)設(shè)在字段中并編輯信息,或者選定整個(gè)字段并鍵入新的信息。 若要編輯“備注型”字段,在“瀏覽”窗口中雙擊該字段或按下 CTRL+PGDN或 CTRL+HOME。這時(shí)會(huì)

21、打開(kāi)一個(gè)“編輯”窗口,其中顯示了“備注型”字段的內(nèi)容。 通過(guò)雙擊“瀏覽”窗口中的“通用型”字段,在編輯菜單中選插入對(duì)象,也可以直接編輯文檔,也可以雙擊對(duì)象打開(kāi)其父類應(yīng)用程序(生成對(duì)象的應(yīng)用程序,如 Microsoft 畫(huà)筆)來(lái)進(jìn)一步修改對(duì)象。,直接點(diǎn)擊修改,表的字段級(jí)驗(yàn)證規(guī)則和記錄級(jí)驗(yàn)證規(guī)則,字段級(jí)有效性規(guī)則:來(lái)控制用戶輸入到字段中的信息類型,或檢查一個(gè)獨(dú)立于此記錄的其他字段值的字段數(shù)據(jù)。字段級(jí)有效性規(guī)則在字段值改變時(shí)發(fā)生作用,它將把所輸入的值用所定義的規(guī)則表達(dá)式進(jìn)行驗(yàn)證,如果輸入的值不滿足要求,則拒絕該值。 記錄級(jí)有效性規(guī)則:在向表中輸入記錄時(shí),用于比較兩個(gè)以上的字段是否滿足一定的條件,如果

22、不滿足,記錄值被拒絕。,VFP數(shù)據(jù)完整性,VFP有三類完整性:實(shí)體完整性、參照完整性以及用戶自定義完整性。 1、用戶自定義完整性是指由用戶通過(guò)編程實(shí)現(xiàn)對(duì)數(shù)據(jù)完整性的約束。 2、參照完整性是指相關(guān)表之間的數(shù)據(jù)一致性。 3、實(shí)體完整性包括兩級(jí):字段的數(shù)據(jù)完整性和記錄的數(shù)據(jù)完整性。 字段的數(shù)據(jù)完整性是指輸入到字段中的數(shù)據(jù)的類型或值必須符合某個(gè)特定的要求。字段的有效性規(guī)則即用以實(shí)施字段的數(shù)據(jù)完整性。 記錄的數(shù)據(jù)完整性是指為記錄賦于數(shù)據(jù)完整性規(guī)則。記錄的數(shù)據(jù)完整性通過(guò)記錄的有效性規(guī)則加以實(shí)施。,參照完整性(Referential Integrity,簡(jiǎn)稱RI),用來(lái)控制數(shù)據(jù)的一致性,尤其是控制數(shù)據(jù)庫(kù)相關(guān)

23、表之間的主關(guān)鍵字和外部關(guān)鍵字之間數(shù)據(jù)一致性的規(guī)則。一般來(lái)講,具有一對(duì)多關(guān)系的兩張數(shù)據(jù)庫(kù)表要滿足以下三個(gè)規(guī)則: 1、子表中的每一個(gè)記錄在對(duì)應(yīng)的主表中必須有一個(gè)父記錄。 2、在父表中修改記錄時(shí),如果修改了主關(guān)鍵字的值,則子表中相關(guān)記錄的外部關(guān)鍵字值必須同樣修改。 3、在父表中刪除記錄時(shí),與該記錄中相關(guān)的記錄必須全部刪除。 參照完整性規(guī)則包括更新規(guī)則、插入規(guī)則和刪除規(guī)則。每一種規(guī)則又有“級(jí)聯(lián)”、“限制”、“忽略”三個(gè)級(jí)別,表的排序,1 排序文件 是一種特殊的表,所有記錄按照某個(gè)字段的值的大小排序,從小到大,或從大到小排列。 2 排序命令:SORT /C /D ,/D /C TO 功能: 把當(dāng)前打開(kāi)的

24、表,指定表中一個(gè)或一個(gè)以上的字段作為關(guān)鍵字進(jìn)行排序, 結(jié)果得到一個(gè)以.dbf為文件擴(kuò)展名的排序文件, 原文件保留不變.排序文件名與表文件名不能同名。說(shuō)明:1 邏輯型、備注型和通用型字段不能作排序關(guān)鍵字2 文件名由用戶指定,可以不加擴(kuò)展名,但不得與原文件重名。3 缺省/D項(xiàng),則按升序排列,否則按降序排列4 /C項(xiàng)只對(duì)字符型數(shù)據(jù)有效,排序時(shí)不區(qū)分字母的大小寫(xiě)。5 關(guān)鍵字可以取多個(gè),按列舉的先后排序。6 用SORT命令產(chǎn)生的排序文件必須打開(kāi)才能使用。,1.使用一個(gè)關(guān)鍵字進(jìn)行排序的例子 USE d:foxproaddresslist SORT ON 姓名/D TO address1USE d:foxp

25、roaddress1LIST執(zhí)行以上命令的結(jié)果如下: 2.使用兩個(gè)關(guān)鍵字進(jìn)行排序的例子 USE d:foxproaddresslist SORT ON 姓名/D, 出生日期/C TO address2USE d:foxproaddress2LIST,表的索引,1、VFP中 的索引索引和書(shū)中的目錄類似,建立索引是為了快速的查詢,索引是一個(gè)獨(dú)立的文件(以.IDX或.CDX為擴(kuò)展名的文件),也是一個(gè)二維表,至少包含二個(gè)字段:索引字段(該字段從對(duì)應(yīng)的表中確定,并按該字段進(jìn)行排序),表記錄號(hào)字段。依賴這個(gè)字段才能把索引文件(.IDX)和表文件(.dbf)中的記錄對(duì)應(yīng)起來(lái)。 索引并不改變表中所存儲(chǔ)記錄的順

26、序,它只改變了VFP讀取每條記錄的順序??梢詾橐粋€(gè)表建立多個(gè)索引,每一索引代表一種處理記錄的順序。,2. 命令建立索引文件 命令: INDEX ON TO 說(shuō)明: 1 關(guān)鍵字段只能是C、N、D、Y型,不能是 L、M、G型。關(guān)鍵字段可以有多個(gè),按索引的先后順序分別稱人第一、第二、關(guān)鍵字。當(dāng)有多個(gè)索引字段時(shí),必須把N、D、Y型的字段轉(zhuǎn)換成C型,用+號(hào)連在一起。2 文件名用戶指定??梢院驮硗?,不用加擴(kuò)展名,系統(tǒng)自動(dòng)加上擴(kuò)展名(IDX)3 剛用INDEX命令建立的索引文件是打開(kāi)的。例:INDEX ON 姓名 TO address1,3. 在表設(shè)計(jì)器中建立索引文件,主索引:可確保字段中輸入值的唯一性

27、并決定了處理記錄的順序。可以為數(shù)據(jù)庫(kù)中的每一個(gè)表建立一個(gè)主索引。如果某個(gè)表已經(jīng)有了一個(gè)主索引,可以繼續(xù)添加候選索引。 候選索引:象主索引一樣要求字段值的唯一性并決定了處理記錄的順序。在數(shù)據(jù)庫(kù)表和自由表中均可為 普通索引:也可以決定記錄的處理順序,但是允許字段中出現(xiàn)重復(fù)值。在一個(gè)表中可以加入多個(gè)普通索引。 唯一索引:為了保持同早期版本的兼容性,還可以建立一個(gè)唯一索引,以指定字段的首次出現(xiàn)值為基礎(chǔ),選定一組記錄,并對(duì)記錄進(jìn)行排序。,數(shù)據(jù)的導(dǎo)入和導(dǎo)出,VFP可以進(jìn)行多種數(shù)據(jù)導(dǎo)入、數(shù)據(jù)導(dǎo)出,包括EXCEL數(shù)據(jù)表,也可以直接追加各種表的數(shù)據(jù),第四章,VFP常用命令 VFP的常量 VFP的變量 VFP的函

28、數(shù) 表達(dá)式,打開(kāi)庫(kù) OPEN DATABASE 打開(kāi)表命令: USE 表文件名 關(guān)閉表命令:USE 、CLOSE ALL 輸出命令: ?和? 列表和顯示命令 List 分屏顯示 Display 建表命令 CREAT 例如:CREAT TABLE 選課表(學(xué)號(hào) C(8),課程號(hào) C(4),成績(jī) N(3),VFP常用命令,添加數(shù)據(jù) APPEND Use exam Append (追加數(shù)據(jù)總是在表的最后) 插入數(shù)據(jù) INSERT Go 5 Insert 瀏覽數(shù)據(jù) BROWSE 編輯修改數(shù)據(jù) EDIT,替換命令: REPLACE 字段1 WITH 表達(dá)式1,字段2 WITH 表達(dá)式2 范圍FOR Re

29、place all 營(yíng)業(yè)區(qū) with “奎屯市區(qū)” for 營(yíng)業(yè)區(qū)=“市區(qū)” Replace 工資 with 工資+100 for 職稱=“教授” 菜單操作見(jiàn)圖,VFP的常量,1、常量:在程序運(yùn)行過(guò)程中其值不變化的數(shù)據(jù),具有字符型(C)、數(shù)值型(N)、日期型(D)、邏輯型(L)、日時(shí)型(D)和貨幣型(Y)六種數(shù)據(jù)類型。數(shù)值型常數(shù):分為整數(shù)和實(shí)數(shù),有兩種表示形式:常用表示形式、指數(shù)表示形式。例如: 常用表示形式:1024,3.14,-0.25 指數(shù)表示形式:0.6E10表示0.6乘以10的6次方, 字符型常數(shù):也稱字符串,包括可打印的ASCII字符,漢字,符號(hào)。字符常量必須用界限符 、 、 把它

30、們括起來(lái) 123 01/03/45 流氓免 fox日期型常數(shù):用于表示日期。是D、T型常量的界限符,或用CTOD()GO 表示:CTOD(“01/02/98”)1998/01/02 或用-連接1998-01-02邏輯型常數(shù):用 .T.或 .t. 來(lái)表示真,用 .F.或 .f.來(lái)表示假。日期時(shí)間型常數(shù):用于表示日期和時(shí)間。是D、T型常量的界限符,或用CTOD()來(lái)表示:CTOT(“01/02/98 12:00:11 AM”)1998/01/02 12:00:11 a 貨幣型常數(shù):用于表示貨幣。,VFP的變量,變量:在程序運(yùn)行過(guò)程中用于表示其值發(fā)生變化的數(shù)據(jù),變量的方法:表示必須以漢字或字母開(kāi)頭且

31、僅由英文字母、漢字、數(shù)字和下劃線組成。內(nèi)存變量:是一些臨時(shí)變量,它在內(nèi)存中存貯數(shù)據(jù),以便在需用時(shí)引用它的內(nèi)容。當(dāng)退出VFP或斷電時(shí)數(shù)據(jù)將自動(dòng)消失。內(nèi)存變量可以有C、N、L、D、T、Y六種類型。它的具體類型與此時(shí)內(nèi)存變量中的值的類型一致。內(nèi)存變量長(zhǎng)度 TO 例:STORE 0 TO X1,X2,Y1,Y2內(nèi)存變量的顯示例如我們?cè)诿畲翱谥休斎?B=4后:? B+2, B*5 結(jié)果在下一行顯示 ? B/2 結(jié)果在當(dāng)前行顯示,字段變量:字段變量即每一個(gè)記錄的某個(gè)屬性字段名,它的值隨著不同的記錄而變化。 字段變量的值隨著表文件的打開(kāi)而開(kāi)始,關(guān)閉表文件后,字段變量的值消失。字段變量名=10個(gè)字符,必須以

32、漢字或字母開(kāi)頭且僅由英文字母、漢字、數(shù)字和下劃線組成。例如:在上表中,當(dāng)前記錄號(hào)為2時(shí),字段變量“姓名”的值為“李四”,當(dāng)我們把記錄指針指向3時(shí),字段變量“姓名”的值為“王五”內(nèi)存變量與字段變量的區(qū)別:內(nèi)存變量獨(dú)立存在,字段變量隸屬于數(shù)據(jù)庫(kù),不能獨(dú)立存在;內(nèi)存變量的類型和長(zhǎng)度可隨所賦值的不同而變化,字段變量的類型和長(zhǎng)度在建庫(kù)時(shí)已定義好,除非修改庫(kù)結(jié)構(gòu),否則不能改變;內(nèi)存變量為單值變量,字段變量為多值變量;,練習(xí): 下面列出的數(shù)據(jù)哪些是變量,哪些是常量?是常量說(shuō)出其數(shù)據(jù)類型。1 姓名 “講師” ASCII 12.56 .Y. 12.56 .F. T A_12 CTOD(“05/06/98”),V

33、FP的表達(dá)式,表達(dá)式:通過(guò)運(yùn)算符,操作符及括號(hào)把常量和變量、函數(shù)等連起來(lái) 1、數(shù)值表達(dá) 運(yùn)算順序()-、*-*、/、%-+、- ?(1/60-3/56)*18.4500 2、字符表達(dá)式 +和- A=“奎屯市 ” B=“電信局 ” ?A+B,A-B,3、日期時(shí)間表達(dá)式 +和- 日期+天數(shù) 日期-天數(shù) 日期-日期 日期時(shí)間+秒數(shù) 日期時(shí)間-秒數(shù) 日期時(shí)間-日期時(shí)間 ?DATE()-2000-01-01 ?year(date()-year(2000-01-01),4、關(guān)系表達(dá)式 : = ,#,!= 不等于 = = 精確等于 $ 子串包含,例子 Use exam ?“李”“王” ?“趙”$用戶名 ?沈

34、$用戶名 dele for 市$營(yíng)業(yè)區(qū) Locate for “市”$營(yíng)業(yè)區(qū) Locate for “123”$地址 cont,5、邏輯表達(dá)式 : 邏輯運(yùn)算三個(gè):與.and. 或.or. 非.not.或! 例:查詢地址在123團(tuán)使用小靈通的用戶 LOCATE FOR 設(shè)備類型=小靈通 .AND. 地址=123團(tuán) 統(tǒng)計(jì)地址在123團(tuán)使用小靈通的用戶 COUNT FOR 設(shè)備類型=小靈通 .AND. 地址=123團(tuán) TO X ?X 篩選出市區(qū)的固話用戶 COPY TO 市區(qū)固話 FOR 設(shè)備類型=固話 .AND. 營(yíng)業(yè)區(qū)=市區(qū) 思考:統(tǒng)計(jì)話費(fèi)大于1000元的用戶 1,VFP的函數(shù),函數(shù)計(jì)算實(shí)際上是

35、對(duì)于指定的函數(shù)名和自變量(參數(shù)表)執(zhí)行事先編好的程序。每個(gè)函數(shù)必然有一個(gè)具有確定數(shù)據(jù)類型的返回值(函數(shù)值);函數(shù)值可作為一個(gè)數(shù)據(jù)再和其他數(shù)據(jù)進(jìn)行運(yùn)算; 送給函數(shù)的自變量的數(shù)據(jù)類型必須與該函數(shù)要求自變量的數(shù)據(jù)類型一致;否則將出現(xiàn)語(yǔ)法錯(cuò)誤。 大多數(shù)函數(shù)都要使用一個(gè)或多個(gè)參數(shù),但有若干個(gè)函數(shù)是無(wú)參數(shù)的 函數(shù)名只寫(xiě)前四個(gè)字符即可。,數(shù)值處理函數(shù) (1)平方根函數(shù):SQRT(X) ?sqrt(81) (2)取整函數(shù):INT(X) ?Int(3.14259)(3) 四舍五入函數(shù):ROUND(X,I) X=345.234 ?round(345.345,2),round(x,0), round(x,-2) (

36、4) 取模函數(shù):MOD(X,Y) 余數(shù)的正負(fù)號(hào)和除數(shù)相同,x,y同號(hào),結(jié)果為其余數(shù),否則為其余數(shù)在加除數(shù)的值。 ?mod(10,3), mod(-10,3), mod(10,-3), mod(-10,-3) 1 -2 2 -1 Mod()函數(shù)相當(dāng)于求運(yùn)算符% ?15%4,15%-4 3 -1,(5) 求最大值函數(shù):MAX(X,Y) ?max(“康樂(lè)園60幢21”,“飛鴻里21幢24”) ?max(.t.,.f.) (6) 求最小值函數(shù):MIN(X,Y) ?min(“飛機(jī)”,“大炮”,“汽車”) ?min(2006-01-02,2001-05-15) 誰(shuí)大誰(shuí)小,根據(jù)字符串的排列順序,從菜單里的工

37、具選項(xiàng)數(shù)據(jù)-排列順序中有三種順序可選:拼音,機(jī)內(nèi)碼,筆劃(見(jiàn)下圖) (7)求和 SUM,求平均AVER 統(tǒng)計(jì)COUNT 例 SUM 月租費(fèi) TO S FOR 設(shè)備類型=小靈通 ?S,排序選擇,字符處理函數(shù) (1) 變大寫(xiě)函數(shù):UPPER(S) (2) 變小寫(xiě)函數(shù) :LOWER(S)?lower(Xly2A),upper(n=1) (3) 字符串長(zhǎng)度函數(shù) :LEN(S) ?LEN(n=5+1) (4)求子串位置函數(shù) :AT(S1,S2)功能:給出S1在S2中的起始位置(數(shù)值)。說(shuō)明:若S2不包含S1時(shí),則函數(shù)返回0值。 ?AT(Xl,XXl=1) 練習(xí) UPPE(AB3cd)LOWE(AB3cd

38、)LEN(A B新3cd)AT(A,RSDA.DBF),(5)取子串函數(shù):SUBSTR(S,I,N)功能:取字符串S中第I個(gè)字符開(kāi)始的N個(gè)字符。說(shuō)明:N為可選項(xiàng)。若省略N,則一直取到末尾。 (6) 左取子串函數(shù):LEFT(S,N)功能:取字符串S左邊第一個(gè)字符起的N個(gè)字符。(7) 右取子串函數(shù):RIGHT(S,N)功能:取字符串S右邊的N個(gè)字符。(8)產(chǎn)生空格函數(shù) SPACE:SPACE(N)功能:產(chǎn)生N個(gè)空格。 SUBS(ASDFGHJK,2,2) SUBSTR(“潘長(zhǎng)江”,1,2) USE EXAM DELE FOR left(姓名,1,2)=“張” LEFT(COMP,3) RIGH(C

39、OMP,3),(9) 宏替換函數(shù) &格式:&功能:將存貯在字符型內(nèi)存變量中的字符串替換出現(xiàn)。即把該變量所代表的字符串去掉字符串定界符后重新放到該函數(shù)所在位置上.當(dāng)宏替換之后還有內(nèi)容時(shí),用一個(gè)圓點(diǎn)表示內(nèi)存變量名到此為止。若宏替換函數(shù)中字符型變量后跟有非空格字符時(shí),則宏替換函數(shù)與其后字符必須用“.”間隔,以明確內(nèi)存變量名結(jié)束。宏替換函數(shù)符號(hào)與內(nèi)存變量名之間不能有空格 例:A=*?5&A.6作用: 1、可把數(shù)字字符組成的字符串轉(zhuǎn)變?yōu)閿?shù)值;C1=“34.98” INT(&C1)+ROUND(&C1,1) 2、用以替換命令中需要重復(fù)書(shū)寫(xiě)較長(zhǎng)的部分。A=“LIST FOR 職稱=”&A“高工”&A“工程師

40、”,日期和時(shí)間處理函數(shù) (1)系統(tǒng)日期函數(shù):DATE()系統(tǒng)時(shí)間函數(shù):time() (2) 系統(tǒng)日時(shí)函數(shù) :DATETIME()功能:返回當(dāng)前的系統(tǒng)時(shí)間。(默認(rèn)格式為MM/DD/YY HH:MM:SS AM|PM)沒(méi)有自變量 ?date() ?datetime() (3) 求年份函數(shù) :YEAR(X)功能:返回日期或日時(shí)X的4位數(shù)年份值。例:復(fù)制裝機(jī)日期大于5年的用戶 Copy to 5年戶 for year(date()-year(裝機(jī)參考日)=5,(4) 求月份函數(shù) MONTH和CMONTH格式:MONTH(X)和CMONTH(X)功能:返回日期X的月份值。 (5) 求日期函數(shù) :DAY(X)功能: 返回日期X的日子是幾號(hào) (6)求星期幾函數(shù)DOW和CDOW格式:DOW(X)和CDOW(X)功能: 返回日期X是星期幾.(7)系統(tǒng)時(shí)間函數(shù) :TIME()功能:返回

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論