第四章數(shù)據(jù)庫(kù)及其操作_第1頁(yè)
第四章數(shù)據(jù)庫(kù)及其操作_第2頁(yè)
第四章數(shù)據(jù)庫(kù)及其操作_第3頁(yè)
第四章數(shù)據(jù)庫(kù)及其操作_第4頁(yè)
第四章數(shù)據(jù)庫(kù)及其操作_第5頁(yè)
已閱讀5頁(yè),還剩102頁(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)介

第四章數(shù)據(jù)庫(kù)及其操作第一頁(yè),共一百零七頁(yè),2022年,8月28日第一節(jié)項(xiàng)目、數(shù)據(jù)庫(kù)與表第二節(jié)表中記錄的操作第三節(jié)排序、索引與查詢第四節(jié)多表的操作本章考點(diǎn)返回第二頁(yè),共一百零七頁(yè),2022年,8月28日第一節(jié)項(xiàng)目、數(shù)據(jù)庫(kù)與表一、項(xiàng)目的操作二、數(shù)據(jù)庫(kù)的操作三、表的操作第三頁(yè),共一百零七頁(yè),2022年,8月28日一、項(xiàng)目的操作1.項(xiàng)目:文件、數(shù)據(jù)、文檔和VisualFoxpro對(duì)象的集合2.項(xiàng)目管理器:軟件開發(fā)工作中,管理和組織所需文件、數(shù)據(jù)、文檔和VFP對(duì)象的工具。3.項(xiàng)目的操作:(1)新建:建立的項(xiàng)目在計(jì)算機(jī)中保存為擴(kuò)展名為.pjx的文件。例如:建立一個(gè)名為“學(xué)生管理.pjx”的項(xiàng)目文件,操作方法如下:第四頁(yè),共一百零七頁(yè),2022年,8月28日菜單:?jiǎn)螕簟拔募?,新建”文件類型選擇“項(xiàng)目”單擊“新建文件”注意:a)保存時(shí),一定指定文件名及保存在計(jì)算機(jī)中的位置。b)不指定保存位置,系統(tǒng)自動(dòng)保存在默認(rèn)目錄設(shè)置的文件夾中。第五頁(yè),共一百零七頁(yè),2022年,8月28日默認(rèn)目錄的設(shè)置:?jiǎn)螕簟肮ぞ?,選項(xiàng)”單擊“文件位置”選項(xiàng)卡(2)打開:使用前必須先打開操作方法:?jiǎn)螕簟拔募?,打開”選擇要打開的文件所在文件夾及文件,單擊“確定”按鈕。(3)關(guān)閉:?jiǎn)螕繇?xiàng)目管理器右上角的關(guān)閉按鈕。第六頁(yè),共一百零七頁(yè),2022年,8月28日當(dāng)關(guān)閉一個(gè)空項(xiàng)目文件時(shí),出現(xiàn)提示對(duì)話框,單擊“刪除”,將刪除該空項(xiàng)目文件;單擊“保持”,將保存該空項(xiàng)目文件。(4)項(xiàng)目管理器的選項(xiàng)卡:項(xiàng)目管理器有6個(gè)選項(xiàng)卡,其中“數(shù)據(jù)”、“文檔”、“類”、“代碼”、“其他”5個(gè)選項(xiàng)用于分類顯示各種被管理的文件,“全部”選項(xiàng)卡用于顯示所有文件。第七頁(yè),共一百零七頁(yè),2022年,8月28日a)“數(shù)據(jù)”選項(xiàng)卡:包含項(xiàng)目中所有的數(shù)據(jù)文件—數(shù)據(jù)庫(kù)、自由表、查詢b)“文檔”選項(xiàng)卡:包含處理數(shù)據(jù)時(shí)所用的三類文件—表單、報(bào)表、標(biāo)簽c)“類”選項(xiàng)卡:包含用戶自定義控件d)“代碼”選項(xiàng)卡:包含三類程序—程序、API庫(kù)、應(yīng)用程序e)“其它”選項(xiàng)卡:包含菜單、文本文件、其他文件第八頁(yè),共一百零七頁(yè),2022年,8月28日f(shuō))“全部”選項(xiàng)卡:顯示以上所有類型的文件(5)使用項(xiàng)目管理器在項(xiàng)目管理器右側(cè)同時(shí)顯示6個(gè)按鈕,但是根據(jù)用戶選定文件類型的不同,會(huì)顯示不同的按鈕,從而進(jìn)行不同的操作。第九頁(yè),共一百零七頁(yè),2022年,8月28日在項(xiàng)目管理中我們可以建立數(shù)據(jù)庫(kù)文件,所建立的數(shù)據(jù)庫(kù)由該項(xiàng)目管理。沒(méi)有項(xiàng)目時(shí),也可以建立數(shù)據(jù)庫(kù)即非項(xiàng)目數(shù)據(jù)庫(kù)。1、新建數(shù)據(jù)庫(kù)建立后,在計(jì)算機(jī)中保存為擴(kuò)展名為.dbc的文件,同時(shí)生成兩個(gè)輔助文件,擴(kuò)展名為.dct和.dcx。

二、數(shù)據(jù)庫(kù)的操作第十頁(yè),共一百零七頁(yè),2022年,8月28日操作方法:(1)項(xiàng)目管理器在項(xiàng)目管理器中,選中“數(shù)據(jù)”選項(xiàng)卡中的“數(shù)據(jù)庫(kù)”文件類型,單擊“新建”按鈕,在打開的“創(chuàng)建”對(duì)話框中輸入數(shù)據(jù)庫(kù)文件名并保存。(2)菜單:?jiǎn)螕簟拔募?,新建”單擊文件類型“?shù)據(jù)庫(kù)”單擊“新建文件”按鈕,其他操作同方法一。第十一頁(yè),共一百零七頁(yè),2022年,8月28日(3)命令:

CREATEDATABASE[數(shù)據(jù)庫(kù)名|?]

用命令創(chuàng)建數(shù)據(jù)庫(kù)后,只是打開數(shù)據(jù)庫(kù)、不打開數(shù)據(jù)庫(kù)設(shè)計(jì)器。2.打開操作方法:

(1)使用項(xiàng)目管理器(項(xiàng)目數(shù)據(jù)庫(kù))選擇項(xiàng)目管理器中的數(shù)據(jù)選項(xiàng)卡,選中要打開的數(shù)據(jù)庫(kù)文件,單擊“打開”按鈕。第十二頁(yè),共一百零七頁(yè),2022年,8月28日(2)菜單:?jiǎn)螕簟拔募?打開”選擇文件類型“數(shù)據(jù)庫(kù)”、文件所存放位置、文件名,單擊“確定”。(3)命令:

OPENDATABASE[數(shù)據(jù)庫(kù)文件名|?][EXCLUSIVE|SHARED]說(shuō)明:a)不指定數(shù)據(jù)庫(kù)文件名或使用?,將顯示打開對(duì)話框。第十三頁(yè),共一百零七頁(yè),2022年,8月28日b)EXCLUSIVE:以獨(dú)占方式打開數(shù)據(jù)庫(kù),即不允許其它用戶在同一時(shí)刻使用該數(shù)據(jù)庫(kù)。c)SHARED:以共享方式打開,允許其它用戶在同一時(shí)刻共享使用該數(shù)據(jù)庫(kù)。(4)當(dāng)前數(shù)據(jù)庫(kù)的設(shè)置:

VFP可以同時(shí)打開多個(gè)數(shù)據(jù)庫(kù),但在同一時(shí)刻只能對(duì)其中一個(gè)數(shù)據(jù)庫(kù)操作,該數(shù)據(jù)庫(kù)稱為當(dāng)前數(shù)據(jù)庫(kù)。

第十四頁(yè),共一百零七頁(yè),2022年,8月28日設(shè)置方法:a)命令:SETDATABASETO[數(shù)據(jù)庫(kù)文件名]b)工具欄:?jiǎn)螕舫S霉ぞ邫谏系臄?shù)據(jù)庫(kù)下拉列表按鈕,選擇指定數(shù)據(jù)庫(kù)為當(dāng)前數(shù)據(jù)庫(kù)。3.關(guān)閉數(shù)據(jù)庫(kù)命令:CLOSEALL|DATABASE說(shuō)明:ALL—關(guān)閉所有對(duì)象

DATABASE—關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)第十五頁(yè),共一百零七頁(yè),2022年,8月28日4.修改:修改數(shù)據(jù)庫(kù)不是修改數(shù)據(jù)庫(kù)文件,而是打開數(shù)據(jù)庫(kù)設(shè)計(jì)器后對(duì)數(shù)據(jù)庫(kù)對(duì)象的操作。(1)打開數(shù)據(jù)庫(kù)設(shè)計(jì)器:a)項(xiàng)目管理器b)菜單打開數(shù)據(jù)庫(kù)c)命令MODIFYDATABASE[數(shù)據(jù)庫(kù)文件名|?]第十六頁(yè),共一百零七頁(yè),2022年,8月28日

在VisualFoxpro中根據(jù)表與數(shù)據(jù)庫(kù)之間的關(guān)系,可以把表分為數(shù)據(jù)庫(kù)表和自由表。數(shù)據(jù)庫(kù)表是被一個(gè)數(shù)據(jù)庫(kù)文件管理的表,而自由表是不屬于任何數(shù)據(jù)庫(kù)管理的表文件。1.新建表建立表文件分兩步:一、打開表設(shè)計(jì)器設(shè)計(jì)表結(jié)構(gòu)二、向表中輸入記錄

三、表的操作第十七頁(yè),共一百零七頁(yè),2022年,8月28日(1)打開表設(shè)計(jì)器有四種方法:①數(shù)據(jù)庫(kù)設(shè)計(jì)器:在數(shù)據(jù)庫(kù)設(shè)計(jì)器空白處右擊“新建表”或單擊菜單“數(shù)據(jù)庫(kù)→新建表”或單擊“數(shù)據(jù)庫(kù)設(shè)計(jì)器”工具欄的“新建表”按鈕,彈出“新建表”對(duì)話框,單擊“新建表”按鈕。②項(xiàng)目管理器:第十八頁(yè),共一百零七頁(yè),2022年,8月28日在項(xiàng)目管理器的“數(shù)據(jù)”選項(xiàng)卡中,若創(chuàng)建自由表則選中“自由表”,單擊“新建”按鈕;若創(chuàng)建數(shù)據(jù)庫(kù)表,則單擊指定數(shù)據(jù)庫(kù)文件前面的“+”,選中“表”,單擊“新建”按鈕。③菜單:?jiǎn)螕簟拔募毙陆ā边x擇文件類型“表”單擊“新建文件”。④命令:CREATE[表文件名]

說(shuō)明:用后兩種方法建立表文件時(shí),如果有當(dāng)前數(shù)據(jù)庫(kù),則建立的表是數(shù)據(jù)庫(kù)表;否則是自由表。第十九頁(yè),共一百零七頁(yè),2022年,8月28日(2)設(shè)計(jì)步驟第一步:設(shè)計(jì)表結(jié)構(gòu)即確定表的列數(shù)及各列屬性。表中每列稱為字段變量,簡(jiǎn)稱字段。

①字段名:符合標(biāo)識(shí)符的定義,自由表中的字段名最多選用10個(gè)字符,數(shù)據(jù)庫(kù)表可選用128個(gè)。②字段類型:該列數(shù)據(jù)的類型。根據(jù)具體情況從以下數(shù)據(jù)類型中選擇。第二十頁(yè),共一百零七頁(yè),2022年,8月28日字符型(C)、貨幣型(Y)、數(shù)值型(N)、日期型(D)、日期時(shí)間型(T)、整型(I)、邏輯型(L)、備注型(M)、通用型(G)③寬度:表示該字段所允許存放數(shù)據(jù)的最大寬度。④小數(shù)位:小數(shù)點(diǎn)后保留的位數(shù)。⑤NULL:是否允許空值。第二十一頁(yè),共一百零七頁(yè),2022年,8月28日注意:對(duì)于數(shù)據(jù)庫(kù)表,還有顯示、字段有效性等屬性的設(shè)置。⑥字段有效性規(guī)則:指定一個(gè)邏輯表達(dá)式,限制該字段的取值范圍。信息:指定一個(gè)字符串,當(dāng)輸入了不符合規(guī)則的數(shù)據(jù),將顯示所設(shè)置的信息默認(rèn)值:輸入數(shù)據(jù)時(shí),系統(tǒng)自動(dòng)為該字段設(shè)置的值。第二十二頁(yè),共一百零七頁(yè),2022年,8月28日第二步:輸入記錄1)按照各種類型數(shù)據(jù)的格式及定義的要求,逐個(gè)輸入各條記錄的各字段內(nèi)容。(空值Ctrl+0)2)備注型字段輸入時(shí)雙擊memo,在打開的窗口中輸入內(nèi)容,最后關(guān)閉窗口3)通用型字段輸入時(shí)雙擊gen,打開窗口后單擊“編輯→插入對(duì)象”。第二十三頁(yè),共一百零七頁(yè),2022年,8月28日4)表中備注型和通用型字段內(nèi)容存放在一個(gè)備注文件中,主文件名和表名相同,擴(kuò)展名為.fpt。2.打開表操作方法:菜單:?jiǎn)螕簟拔募蜷_”,選擇文件類型“表”,單擊文件名,選擇打開方式:“獨(dú)占”或“只讀方式”,單擊“確定”。第二十四頁(yè),共一百零七頁(yè),2022年,8月28日命令USE[盤符][路徑]<表文件名>說(shuō)明:省略盤符和路徑,則打開默認(rèn)目錄指定文件夾中保存的表。3.關(guān)閉表①打開另一個(gè)表打開另一表文件時(shí),系統(tǒng)自動(dòng)將先前打開的表文件關(guān)閉。第二十五頁(yè),共一百零七頁(yè),2022年,8月28日②USE命令格式:USE功能:關(guān)閉當(dāng)前表。③命令:CLOSEALL|DATABASE4.數(shù)據(jù)庫(kù)表與自由表之間的轉(zhuǎn)換可以把自由表添加到數(shù)據(jù)庫(kù)中轉(zhuǎn)換成數(shù)據(jù)庫(kù)表;也可以把數(shù)據(jù)庫(kù)表移出數(shù)據(jù)庫(kù),轉(zhuǎn)換為自由表。第二十六頁(yè),共一百零七頁(yè),2022年,8月28日操作方法如下:

(1)使用數(shù)據(jù)庫(kù)設(shè)計(jì)器

自由表→數(shù)據(jù)庫(kù)表在數(shù)據(jù)庫(kù)設(shè)計(jì)器空白處右擊,選擇“添加表”或單擊菜單“數(shù)據(jù)庫(kù)添加表”或單擊數(shù)據(jù)庫(kù)設(shè)計(jì)器工具欄“添加表”按鈕,在彈出的“打開”對(duì)話框中選擇要添加的表文件,即可把該表轉(zhuǎn)換為數(shù)據(jù)庫(kù)表。第二十七頁(yè),共一百零七頁(yè),2022年,8月28日一個(gè)表只能屬于某一個(gè)數(shù)據(jù)庫(kù),如果需要用另外一個(gè)數(shù)據(jù)庫(kù)管理該表文件,必須把該表從數(shù)庫(kù)中移出,轉(zhuǎn)換為自由表,然后才能把它添加到另一個(gè)數(shù)據(jù)庫(kù)中。

數(shù)據(jù)庫(kù)表→自由表在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,右擊要轉(zhuǎn)換的表文件,單擊“刪除移去”或選中要轉(zhuǎn)換的表,單擊菜單“數(shù)據(jù)庫(kù)移去”或單擊數(shù)據(jù)庫(kù)設(shè)計(jì)器工具欄的“移去表”按鈕,彈出對(duì)話框,單擊“移去”按鈕。第二十八頁(yè),共一百零七頁(yè),2022年,8月28日說(shuō)明:在彈出的對(duì)話框中,單擊“移去”按鈕,選中的表移出數(shù)據(jù)庫(kù),變?yōu)樽杂杀?表文件仍保存在原目錄中;單擊“刪除”按鈕,選中的表移出數(shù)據(jù)庫(kù),并且將該表文件從磁盤上徹底刪除,表及表中數(shù)據(jù)將不存在。第二十九頁(yè),共一百零七頁(yè),2022年,8月28日(2)命令:自由表→數(shù)據(jù)庫(kù)表:addtable

表名數(shù)據(jù)庫(kù)表→自由表:removetable

表名5.修改表結(jié)構(gòu)在實(shí)際應(yīng)用中,我們需要對(duì)表結(jié)構(gòu)修改,如:添加、刪除字段,修改字段名、字段類型、字段寬度,建立、修改、刪除索引,建立、修改、刪除有效性規(guī)則。第三十頁(yè),共一百零七頁(yè),2022年,8月28日修改表結(jié)構(gòu)首先要打開表設(shè)計(jì)器(1)打開表后使用命令

MODIFYSTRUCTRUE

或單擊菜單“顯示表設(shè)計(jì)器”(2)在數(shù)據(jù)庫(kù)設(shè)計(jì)器中右擊要修改的表,單擊“修改”然后進(jìn)行修改操作。

1)添加字段(追加和插入)

2)刪除字段

3)修改字段屬性(字段名、類型、寬度、小數(shù)位、有效性、顯示)第三十一頁(yè),共一百零七頁(yè),2022年,8月28日第二節(jié)記錄的操作表中數(shù)據(jù)集合成記錄,記錄的操作是經(jīng)常使用的數(shù)據(jù)處理方式。通過(guò)前面知識(shí)的學(xué)習(xí),大家知道完成一個(gè)操作,可以使用命令,也可以使用菜單。我們必須掌握命令。本節(jié)將介紹很多相關(guān)的命令,大家一定要記住常用的命令。第三十二頁(yè),共一百零七頁(yè),2022年,8月28日一、記錄操作命令概述二、記錄的顯示三、記錄的定位四、記錄的添加五、記錄的刪除六、記錄的修改七、記錄與數(shù)組間數(shù)據(jù)的傳遞第三十三頁(yè),共一百零七頁(yè),2022年,8月28日1.格式:<命令動(dòng)詞>[范圍][條件][字段名表]2.說(shuō)明:(1)范圍:指定要操作的記錄。表示方法:①ALL:所有記錄②NEXTN:從當(dāng)前記錄開始,后面的N條記錄(包括當(dāng)前記錄)③RECORDN:第N條記錄。一、記錄操作命令概述第三十四頁(yè),共一百零七頁(yè),2022年,8月28日④REST:當(dāng)前記錄后的全部記錄(包括當(dāng)前記錄)(2)字段名表:指定操作的字段格式:FIELDS<字段名列表>(3)條件:指定操作的記錄應(yīng)滿足的條件格式:FOR|WHILE<邏輯表達(dá)式>返回第三十五頁(yè),共一百零七頁(yè),2022年,8月28日說(shuō)明:a)FOR<條件>默認(rèn)范圍ALL。WHILE<條件>默認(rèn)范圍REST,而且找到第一條不滿足條件的記錄就停止操作。b)兩種條件格式可以同時(shí)使用,WHILE條件優(yōu)先。第三十六頁(yè),共一百零七頁(yè),2022年,8月28日二、記錄的顯示1.命令LIST|DISPLAY[FIELDS<字段名表>][<范圍>][FOR<邏輯表達(dá)式>][OFF][TOFILE<文件名>]說(shuō)明:1)省略FIELDS<字段名表>顯示全部字段。2)省略范圍、條件時(shí),LIST顯示全部記錄,DISPLAY顯示當(dāng)前記錄。第三十七頁(yè),共一百零七頁(yè),2022年,8月28日3)OFF不顯示記錄號(hào),省略則在各記錄前顯示記錄號(hào)。4)TOFILE<文件名>:顯示結(jié)果存入指定的文本文件。例:(1)顯示所有職工的全部信息(2)顯示所有職工的職工號(hào),姓名和基本工資(3)顯示已婚(未婚)職工的所有信息第三十八頁(yè),共一百零七頁(yè),2022年,8月28日(4)顯示姓“王”的職工的所有信息(5)顯示名字中含有“明”這個(gè)字的職工信息(6)顯示職工號(hào)的尾數(shù)字是偶數(shù)的所有信息(7)顯示在1992年之前參加工作的職工信息(8)顯示基本工資大于500的女職工的姓名、性別和基本工資(9)顯示第5條記錄第三十九頁(yè),共一百零七頁(yè),2022年,8月28日2.菜單打開表后,單擊“顯示瀏覽或編輯”。3.數(shù)據(jù)庫(kù)設(shè)計(jì)器(1)雙擊要顯示的表。(2)右擊要顯示的表,選擇“瀏覽”。返回第四十頁(yè),共一百零七頁(yè),2022年,8月28日在實(shí)際應(yīng)用中,我們經(jīng)常會(huì)對(duì)某條記錄進(jìn)行操作,操作之前我們需要先定位到該記錄上。1.相關(guān)概念(1)記錄號(hào):系統(tǒng)按照用戶輸入的先后順序,給每一條記錄一個(gè)唯一的標(biāo)號(hào),用于標(biāo)識(shí)記錄輸入時(shí)的先后順序。三、記錄的定位第四十一頁(yè),共一百零七頁(yè),2022年,8月28日(2)記錄指針:是一個(gè)指示器,它始終指向當(dāng)前表中正在操作處理的那條記錄,此記錄稱為當(dāng)前記錄。(3)定位:通過(guò)移動(dòng)記錄指針改變當(dāng)前記錄的操作。2.絕對(duì)定位相對(duì)定位3.絕對(duì)定位:直接將表中的一條記錄定位成當(dāng)前記錄。分類第四十二頁(yè),共一百零七頁(yè),2022年,8月28日(1)命令格式:GO記錄號(hào)GOTOP:首記錄設(shè)置為當(dāng)前記錄。GOBOTTOM:尾記錄設(shè)置為當(dāng)前記錄。(2)菜單打開表,單擊“顯示→瀏覽”,單擊“表→轉(zhuǎn)到記錄→記錄號(hào)”補(bǔ)充函數(shù):recno()當(dāng)前記錄號(hào)。

reccount()表中記錄個(gè)數(shù)。第四十三頁(yè),共一百零七頁(yè),2022年,8月28日4.相對(duì)定位:從當(dāng)前開始,向前或向后移動(dòng)記錄指針,改變當(dāng)前記錄。(1)命令:SKIP[數(shù)值表達(dá)式]說(shuō)明:

1)數(shù)值表達(dá)式值為整數(shù),正數(shù)向后移動(dòng),負(fù)數(shù)向前移動(dòng)。

2)省略默認(rèn)1。(2)菜單:打開表,單擊“顯示瀏覽”,再單擊“表轉(zhuǎn)到記錄上一個(gè)或下一個(gè)”。第四十四頁(yè),共一百零七頁(yè),2022年,8月28日補(bǔ)充函數(shù):BOF(),EOF()1.BOF()

功能:測(cè)試當(dāng)前表中的記錄指針是否指向第一條記錄的前面位置,若是就返回.T.;否則返回.F.。若沒(méi)有打開表文件,函數(shù)返回.F.;若打開的表文件沒(méi)有記錄,函數(shù)返回.T.。返回第四十五頁(yè),共一百零七頁(yè),2022年,8月28日2.EOF()

功能:測(cè)試當(dāng)前表中的記錄指針是否指向最后一條記錄的后面位置,若是就返回.T.;否則返回.F.。若沒(méi)有打開表文件,函數(shù)返回.F.;若打開的表文件沒(méi)有記錄,函數(shù)返回.T.。第四十六頁(yè),共一百零七頁(yè),2022年,8月28日四、記錄的添加1.追加:在表的尾部添加記錄操作方式

(1)命令:格式:APPEND[BLANK]

說(shuō)明:選用BLANK在尾部添加一條空白記錄

(2)菜單:打開表,單擊“顯示瀏覽”,再單擊“表追加新記錄”,用戶輸入數(shù)據(jù)。第四十七頁(yè),共一百零七頁(yè),2022年,8月28日2.從另一個(gè)表中選取數(shù)據(jù)追加記錄操作方法:(1)命令格式:APPENDFROM<表文件名>[FIELDS<字段名表>][FOR<邏輯表達(dá)式>]功能:從指定的表文件中讀入數(shù)據(jù),并添加到當(dāng)前表文件的末尾。第四十八頁(yè),共一百零七頁(yè),2022年,8月28日說(shuō)明:1)被添加的數(shù)據(jù)來(lái)源于FROM后指定的表,先將要追加記錄的表打開,再使用命令。2)追加時(shí)根據(jù)同名原則進(jìn)行,把FROM后指定表中的字段與當(dāng)前表的字段進(jìn)行比較,同名則將符合條件的數(shù)據(jù)追加。(2)菜單:打開表,單擊“顯示瀏覽”,再單擊“表追加記錄”

第四十九頁(yè),共一百零七頁(yè),2022年,8月28日3.插入空白記錄格式:INSERT[BEFORE][BLANK]說(shuō)明:1)指定BEFORE在當(dāng)前記錄前插入記錄,否則在當(dāng)前記錄后插入記錄2)BLANK插入一條空白記錄

返回第五十頁(yè),共一百零七頁(yè),2022年,8月28日五、記錄的刪除記錄的刪除也是表維護(hù)的一項(xiàng)經(jīng)常性的工作,因?yàn)閯h除意味著數(shù)據(jù)的消失,所以對(duì)記錄的刪除操作比較慎重。VFP的刪除可分為邏輯刪除和物理刪除兩種操作,邏輯刪除可以恢復(fù),而物理刪除不能恢復(fù)。1.邏輯刪除:就是給指定的記錄作刪除標(biāo)記“*”,記錄仍存在,又稱假刪除。第五十一頁(yè),共一百零七頁(yè),2022年,8月28日(1)命令格式:DELETE[<范圍>][FOR<邏輯表達(dá)式>]功能:對(duì)當(dāng)前表中指定范圍內(nèi)滿足條件的記錄作刪除標(biāo)記說(shuō)明:省略范圍和條件僅邏輯刪除當(dāng)前記錄。(2)菜單:打開表,單擊“顯示瀏覽”,單擊“表刪除記錄”,在對(duì)話框中設(shè)置各項(xiàng)內(nèi)容。第五十二頁(yè),共一百零七頁(yè),2022年,8月28日2.恢復(fù)邏輯刪除:將記錄的刪除標(biāo)記去掉,恢復(fù)為正常記錄。(1)命令格式:RECALL[<范圍>][FOR<條件>]功能:把當(dāng)前表中指定范圍內(nèi)滿足條件的記錄的刪除標(biāo)記去掉說(shuō)明:省略范圍和條件僅恢復(fù)邏輯刪除的當(dāng)前記錄第五十三頁(yè),共一百零七頁(yè),2022年,8月28日(2)菜單:打開表,單擊“顯示瀏覽”,單擊“表恢復(fù)記錄”,在對(duì)話框中設(shè)置各項(xiàng)內(nèi)容3.物理刪除:將當(dāng)前表被邏輯刪除的記錄真正清除,不能再恢復(fù)。(1)命令格式:PACK第五十四頁(yè),共一百零七頁(yè),2022年,8月28日(2)菜單:打開表,單擊“顯示瀏覽”,單擊“表徹底刪除”,單擊“是”4.全刪除格式:ZAP功能:將當(dāng)前表中的所有記錄真正刪除,不能恢復(fù)。相當(dāng)于:DELETEALLPACK返回第五十五頁(yè),共一百零七頁(yè),2022年,8月28日

1.瀏覽修改:在瀏覽窗口操作(1)命令格式:BROWSE[FIELDS<字段名表>][FOR<邏輯表達(dá)式>](2)菜單:打開表,單擊“顯示瀏覽”注意:打開瀏覽窗口后,用戶可直接修改。六、記錄的修改第五十六頁(yè),共一百零七頁(yè),2022年,8月28日2.替換修改:大量數(shù)據(jù)有規(guī)律的修改(1)命令格式:REPLACE<字段名1>WITH<表達(dá)式1>[,<字段名2>WITH<表達(dá)式2>]...[<范圍>][FOR<邏輯表達(dá)式>]功能:用指定表達(dá)式的值替換當(dāng)前表中滿足條件記錄的指定字段的值。第五十七頁(yè),共一百零七頁(yè),2022年,8月28日說(shuō)明:1)省略范圍、條件,僅替換修改當(dāng)前記錄。2)命令執(zhí)行后,修改自動(dòng)完成,適用于程序設(shè)計(jì)。3)指定表達(dá)式的類型必須與字段類型相同(2)菜單:打開表,單擊“顯示瀏覽”單擊“表替換字段”,指定對(duì)話框要求的內(nèi)容第五十八頁(yè),共一百零七頁(yè),2022年,8月28日1.表結(jié)構(gòu)的復(fù)制格式:COPYSTRUCTURETO<表文件名>[FIELDS<字段名表>]功能:復(fù)制當(dāng)前表文件的結(jié)構(gòu)作為新表文件的結(jié)構(gòu)。說(shuō)明:(1)命令執(zhí)行前,必須打開被復(fù)制的表。(2)執(zhí)行后,生成一個(gè)新的自由表,只有結(jié)構(gòu)。(3)FIELDS<字段名表>:確定新表結(jié)構(gòu)。省略,則新表和原表結(jié)構(gòu)相同。七、表的復(fù)制第五十九頁(yè),共一百零七頁(yè),2022年,8月28日2.表的復(fù)制格式:COPYTO<表文件名>[FIELDS<字段名表>][<范圍>][FOR|WHILE<邏輯表達(dá)式>]功能:將當(dāng)前打開的表文件全部或部分記錄復(fù)制生成一個(gè)新的自由表。說(shuō)明(1)命令執(zhí)行前,必須打開被復(fù)制的表。(2)生成的新表是自由表。FIELDS<字段名表>決定表的結(jié)構(gòu)。記錄由條件和范圍決定。若全部省略,新表和原表完全相同。第六十頁(yè),共一百零七頁(yè),2022年,8月28日1.表的當(dāng)前記錄復(fù)制到數(shù)組格式:SCATTER[FIELDS<字段名>|FIELDSLIKE|EXCEPT<通配符字段名表>][MEMO]TO<數(shù)組名>[BLANK]說(shuō)明:(1)選用BLANK表示建立一組空內(nèi)存變量。(2)用TO<數(shù)組名>,自動(dòng)建立數(shù)組或自動(dòng)擴(kuò)大雖已存在但不夠大的數(shù)組。(3)省略FIELDS子句,只傳送除備注型字段外的所有字段,若要傳送,用MEMO選項(xiàng)。八、記錄與數(shù)組間數(shù)據(jù)的傳送第六十一頁(yè),共一百零七頁(yè),2022年,8月28日2.數(shù)組數(shù)據(jù)復(fù)制到表的當(dāng)前記錄格式:GATHERFROM<數(shù)組名>[FIELDS<字段名>|FIELDSLIKE|EXCEPT<通配符字段名表>][MEMO]說(shuō)明:(1)操作時(shí)先確定當(dāng)前記錄。(2)數(shù)組元素多于字段數(shù),則多的不傳;如果少,多出的值不變。(3)若使用FIELDS子句,僅對(duì)其中所列字段替換。(4)省略MEMO,將忽略M型字段。第六十二頁(yè),共一百零七頁(yè),2022年,8月28日第三節(jié)排序、索引與查詢

之前我們使用的表的記錄,是根據(jù)用戶輸入的順序排列。有時(shí),我們需要按另一種順序,這可通過(guò)排序?qū)崿F(xiàn);在數(shù)據(jù)資源的管理過(guò)程中,使用最頻繁的操作莫過(guò)于查詢滿足一定條件的一系列數(shù)據(jù),從而為日常決策提供足夠的判斷依據(jù),為了提高查詢速度,VFP提供了索引。第六十三頁(yè),共一百零七頁(yè),2022年,8月28日1.概念:將表中記錄按指定字段值的大小重新排列。2.操作方法命令:SORTTO<新表文件名>ON<字段1>[/A|/D][/C][,<字段2>[/A|/D][/C]...][ASCENDING|DESCENDING][<范圍>][FOR|WHILE<邏輯表達(dá)式1>][FIELDS<字段名表>]一、排序第六十四頁(yè),共一百零七頁(yè),2022年,8月28日說(shuō)明:(1)排序操作不能改變?cè)碇杏涗浀拇鎯?chǔ)位置,結(jié)果保存在新的自由表。(2)/A表示升序,/D表示降序,/C表示不區(qū)分大小寫(3)當(dāng)有多個(gè)排序字段時(shí),先按字段1的值排列,值相同的,再按字段2的值排列。(4)ASCENDING或DESCENDING指除用/A或/D指明了排序方式的字段外,所有其他字段排序順序。第六十五頁(yè),共一百零七頁(yè),2022年,8月28日

學(xué)號(hào)姓名性別年齡分?jǐn)?shù)101李小明男1881102張紅女1790103趙偉華男2074104沈小慧女1985學(xué)號(hào)姓名性別年齡分?jǐn)?shù)101李小明男1881104沈小慧女1985102張紅女1790103趙偉華男2074記錄號(hào)1234記錄號(hào)1423按姓名升序排序二、索引第六十六頁(yè),共一百零七頁(yè),2022年,8月28日1.索引概述①索引:按照索引關(guān)鍵字的值排列的對(duì)應(yīng)記錄號(hào)的序列。②索引文件:存放索引的文件。③索引文件的分類:根據(jù)索引文件中存放索引的數(shù)目,分為:?jiǎn)嗡饕募阂粋€(gè)索引,文件擴(kuò)展.idx復(fù)合索引文件:多個(gè)索引,文件擴(kuò)展名.cdx第六十七頁(yè),共一百零七頁(yè),2022年,8月28日復(fù)合索引文件的分類根據(jù)復(fù)合索引文件與表的關(guān)系,分為:

結(jié)構(gòu)復(fù)合索引文件:文件名由系統(tǒng)自動(dòng)指定,主名與表名同名。

獨(dú)立復(fù)合索引文件:文件名由用戶自定義。為了區(qū)分、使用復(fù)合索引文件中的索引,給每個(gè)索引定義索引名,命名規(guī)則及要求和字段名相同。第六十八頁(yè),共一百零七頁(yè),2022年,8月28日⑤索引的分類指定索引時(shí),根據(jù)表以及索引關(guān)鍵字的特點(diǎn),索引分以下四類:1)主索引:索引關(guān)鍵字無(wú)重復(fù)值,一個(gè)數(shù)據(jù)庫(kù)表只能指定一個(gè)。2)候選索引:索引關(guān)鍵字無(wú)重復(fù)值,數(shù)據(jù)庫(kù)表或自由表均可指定多個(gè)。3)唯一索引:不是指索引關(guān)鍵字值唯一,而是指關(guān)鍵字的值相同的一組記錄第六十九頁(yè),共一百零七頁(yè),2022年,8月28日,只取第一次出現(xiàn)的記錄的記錄號(hào)。數(shù)據(jù)庫(kù)表和自由表均可指定多個(gè)。4)普通索引:對(duì)索引關(guān)鍵字沒(méi)有特別要求,數(shù)據(jù)庫(kù)表和自由表均可指定多個(gè)。⑥使用索引的目的:提高查詢速度。2.索引的建立:指定索引關(guān)鍵字,索引名,索引順序,索引類型,索引文件類型。第七十頁(yè),共一百零七頁(yè),2022年,8月28日(1)使用命令建立索引格式:INDEXON<索引關(guān)鍵字表達(dá)式>TO<單索引文件>|TAG<標(biāo)識(shí)名>[OF<獨(dú)立復(fù)合索引文件名>][FOR<邏輯表達(dá)式>][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]第七十一頁(yè),共一百零七頁(yè),2022年,8月28日說(shuō)明:①索引關(guān)鍵字表達(dá)式:指定建立索引的關(guān)鍵字,可以是單一字段名,也可以是多個(gè)字段組成的字符型表達(dá)式。②TAG<索引名>:此選項(xiàng)只對(duì)建立復(fù)合索引文件時(shí)有效,指定建立或追加索引的標(biāo)識(shí)名。第七十二頁(yè),共一百零七頁(yè),2022年,8月28日③OF<獨(dú)立復(fù)合索引文件>:指定獨(dú)立復(fù)合索引文件名。若有此選項(xiàng),表示在指定的獨(dú)立復(fù)合索引文件中追加一個(gè)索引,若指定的獨(dú)立復(fù)合索引文件不存在,系統(tǒng)將自動(dòng)建立指定的文件。若沒(méi)有此選項(xiàng),表示在結(jié)構(gòu)復(fù)合文件中追加一個(gè)索引標(biāo)識(shí),若結(jié)構(gòu)復(fù)合索引文件不存在,系統(tǒng)將自動(dòng)建立結(jié)構(gòu)復(fù)合索引文件。④FOR<邏輯表達(dá)式>:表示只對(duì)滿足條件的記錄建立索引。第七十三頁(yè),共一百零七頁(yè),2022年,8月28日⑤ASCENDING|DESCENDING:ASCENDING按升序建立索引,DESCENDING按降序建立索引。缺省時(shí),按按升序建立索引。該選項(xiàng)對(duì)單索引文件無(wú)效。⑥UNIQUE:表示建立的是唯一索引。CANDIDATE:表示建立的是候選索引。二者省略默認(rèn)建立普通索引。⑦新建的索引文件自動(dòng)打開,并開始起作用。⑧命令不能建立主索引。第七十四頁(yè),共一百零七頁(yè),2022年,8月28日例4.6

對(duì)STUD.DBF表文件建立出生日期單索引文件STUD.IDX。USESTUDINDEXON出生日期TOSTUD例4.7

對(duì)表文件STUD.DBF,建立一個(gè)基于出生日期字段的結(jié)構(gòu)復(fù)合索引文件。USESTUDINDEXON出生日期TAG出生日期DESCENDING

第七十五頁(yè),共一百零七頁(yè),2022年,8月28日例4.8

在表文件STUD.DBF的結(jié)構(gòu)復(fù)合索引文件中,按學(xué)號(hào)和姓名各追加一個(gè)標(biāo)識(shí)。USESTUDINDEXON學(xué)號(hào)TAG學(xué)號(hào)例4.9

在表文件STUD.DBF的結(jié)構(gòu)復(fù)合索引文件中,先按性別再按學(xué)號(hào)追加一個(gè)標(biāo)識(shí)。USESTUDINDEXON性別+學(xué)號(hào)TAG性別學(xué)號(hào)第七十六頁(yè),共一百零七頁(yè),2022年,8月28日例4.10

在表文件STUD.DBF中,先按性別再按學(xué)號(hào)建立一個(gè)獨(dú)立復(fù)合索引文件SXBTY.CDX。USESTUDINDEXON性別+學(xué)號(hào)TAG性別學(xué)號(hào)OFSXBTY第七十七頁(yè),共一百零七頁(yè),2022年,8月28日(2)菜單方式建立索引①打開表②打開表設(shè)計(jì)器后操作。注意:用表設(shè)計(jì)器建立的索引默認(rèn)保存在結(jié)構(gòu)復(fù)合索引文件。第七十八頁(yè),共一百零七頁(yè),2022年,8月28日3.索引的使用:(1)索引文件的打開(了解)結(jié)構(gòu)復(fù)合索引隨表自動(dòng)打開,但是非結(jié)構(gòu)索引文件(單索引文件、獨(dú)立復(fù)合索引文件)必須在使用前先打開。格式1:USE<表文件名>INDEX<索引文件名>功能:打開指定的表文件及相關(guān)的索引文件。第七十九頁(yè),共一百零七頁(yè),2022年,8月28日格式2:SETINDEXTO[<索引文件名表>]功能:在已打開表文件的前提下,打開相關(guān)索引文件。第八十頁(yè),共一百零七頁(yè),2022年,8月28日(2)設(shè)置當(dāng)前索引索引文件打開后,要使用某個(gè)索引前,必須將其設(shè)置為當(dāng)前索引(命令建立的自動(dòng)設(shè)置為當(dāng)前索引)格式:SETORDERTO[[TAG]索引名][ASCENDING|DESCENDING]第八十一頁(yè),共一百零七頁(yè),2022年,8月28日說(shuō)明:①不管索引是按升序或降序建立的,在使用時(shí)都可以用ASCENDING或DESCENDING重新指定升序或降序。②命令SETORDERTO將不設(shè)置任何索引為當(dāng)前索引。第八十二頁(yè),共一百零七頁(yè),2022年,8月28日4.索引文件的關(guān)閉(了解):索引文件隨表的關(guān)閉自動(dòng)關(guān)閉,但是在表不關(guān)閉情況下,若關(guān)閉索引文件可以使用如下操作。格式:SETINDEXTO功能:關(guān)閉當(dāng)前打開的所有單索引文件和獨(dú)立復(fù)合索引文件。第八十三頁(yè),共一百零七頁(yè),2022年,8月28日5.索引文件的刪除(1)單索引文件(了解)格式1:DELETEFILE<索引文件名>

格式2:ERASE<索引文件名>

說(shuō)明:同自由表的刪除第八十四頁(yè),共一百零七頁(yè),2022年,8月28日(2)復(fù)合索引文件刪除文件中的各索引,相應(yīng)索引文件自動(dòng)刪除。方法一:表設(shè)計(jì)器中操作。方法二:

DELETETAG<索引標(biāo)識(shí)名>[OF獨(dú)立復(fù)合索引文件名>]或

DELETETAGALL[OF獨(dú)立復(fù)合索引文件名>]第八十五頁(yè),共一百零七頁(yè),2022年,8月28日1.順序查詢格式:LOCATEFOR|WHILE<邏輯表達(dá)式>[<范圍>]功能:在表指定范圍中查找滿足條件的記錄。說(shuō)明:①命令在表指定范圍中查找滿足條件的第一條記錄。②省略<范圍>默認(rèn)ALL。③找到第一條滿足條件的記錄后,記錄指針指向該記錄,將定位成當(dāng)前記錄。否則,記錄指針指向<范圍>的末尾。三、查詢第八十六頁(yè),共一百零七頁(yè),2022年,8月28日④CONTINUE命令:LOCATE找到第一條滿足條件的記錄后,它可繼續(xù)查找下一個(gè)滿足條件的記錄。它必須在LOCATE命令之后使用,否則出錯(cuò)。在CONTINUE命令中實(shí)際隱含了前一個(gè)LOCATE命令中的條件。⑤使用命令LOCATE或CONTINUE找到滿足條件后,函數(shù)FOUND()(用于檢測(cè)是否找到滿足條件的記錄)返回.T.,否則返回.F,并在狀態(tài)欄給出提示信息“已到定位范圍末尾”。第八十七頁(yè),共一百零七頁(yè),2022年,8月28日2.索引查詢:先建立索引,再用規(guī)定的命令查詢;找到第一個(gè)滿足條件的記錄后,使用skip和display命令查找下一個(gè),不能用found()函數(shù)和continue命令。第八十八頁(yè),共一百零七頁(yè),2022年,8月28日(1)FIND命令格式:FIND<字符串>|<數(shù)值常量>功能:在表文件的主控索引中查找關(guān)鍵字值與<字符串>或<數(shù)值常量>相匹配的第一個(gè)記錄。說(shuō)明:①查詢字符串,不用定界符,但前后有空格的,則必須要用。②查詢常數(shù),必須使用索引關(guān)鍵字的完整值。第八十九頁(yè),共一百零七頁(yè),2022年,8月28日(2)SEEK命令格式:SEEK<表達(dá)式>功能:在表文件的索引中查找關(guān)鍵字值與<表達(dá)式>值相匹配的第一個(gè)記錄。說(shuō)明:①SEEK命令可以查找C型、N型、D型、L型表達(dá)式的值。②SEEK命令中的表達(dá)式的類型必須與索引表達(dá)式的類型相同。③表達(dá)式為字符串時(shí),必須用定界符括起來(lái)。

第九十頁(yè),共一百零七頁(yè),2022年,8月28日

數(shù)據(jù)庫(kù)是數(shù)據(jù)的集合,集合中最基本的數(shù)據(jù)形式是表,集合中的表往往不是一個(gè),這些表之間還有聯(lián)系,因此我們最后學(xué)習(xí)多表操作。第九十一頁(yè),共一百零七頁(yè),2022年,8月28日第四節(jié)多表的操作數(shù)據(jù)庫(kù)是數(shù)據(jù)的集合,集合中最基本的數(shù)據(jù)形式是表。集合中的表往往不是一個(gè),這些表之間還有聯(lián)系,因此我們最后學(xué)習(xí)多表操作。前面我們講過(guò),我們無(wú)法同時(shí)打開多個(gè)表。VFP為了解決這個(gè)問(wèn)題,引入了工作區(qū)的概念。第九十二頁(yè),共一百零七頁(yè),2022年,8月28日

一、多表操作的相關(guān)知識(shí)二、表之間的聯(lián)系三、數(shù)據(jù)完整性第九十三頁(yè),共一百零七頁(yè),2022年,8月28日一、多表操作的相關(guān)知識(shí)1.工作區(qū):系統(tǒng)將可用的內(nèi)存空間分成若干個(gè)單元,其中每一單元是一個(gè)工作區(qū),一個(gè)工作區(qū)只能打開一個(gè)表。VFP最多提供32767個(gè)工作區(qū)。2.當(dāng)前工作區(qū):在任意時(shí)刻,用戶只能對(duì)一個(gè)工作區(qū)操作,該工作區(qū)為當(dāng)前工作區(qū)。系統(tǒng)默認(rèn)為1區(qū)為當(dāng)前工作區(qū)。第九十四頁(yè),共一百零七頁(yè),2022年,8月28日3.選擇當(dāng)前工作區(qū)(1)工作區(qū)的標(biāo)識(shí):每一個(gè)工作區(qū)用工作區(qū)號(hào)或別名來(lái)標(biāo)識(shí)①工作區(qū)號(hào)數(shù)字1~32767②別名a)前10個(gè)工作區(qū)用A—J10個(gè)字母。后面的使用W11,W12…W32767b)采用該工作區(qū)中已打開表文件名作別名。第九十五頁(yè),共一

溫馨提示

  • 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)論