欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
數據庫、表的基本操作(18學(xué)時(shí))
數據庫、表的基本操作(18學(xué)時(shí))

 

一、【教學(xué)目標】

1.     理解并掌握數據庫的創(chuàng )建

2.     理解并掌握數據庫表屬性的設置

3.     掌握數據庫的操作

二、【重點(diǎn)和難點(diǎn)】

重點(diǎn)

1.       數據庫的操作。

2.       數據庫表的操作。

3.       建立排序和索引。自由表的操作。

4.       使用不同工作區表的操作。

 

難點(diǎn)

1.      數據庫表的操作。

2.       索引的建立和使用。

3.        數據完整性的設置。

 

三、【學(xué)法指導】

1.  數據庫和數據表的建立是本章基礎。

2.  編輯表中的數據、記錄修改與刪除,表的索引等操作,是后續章節的基礎。

3.  本章學(xué)習的要點(diǎn)是多做上機練習,熟練掌握數據庫和數據表的操作。

四、【教學(xué)要點(diǎn)】

本章主要介紹數據庫、數據表的基本概念;數據庫和數據表的建立、編輯表中的數據、記錄修改與刪除,表的索引等有關(guān)操作。

2.1 VFP數據庫及其建立

數據庫管理系統是一種極為重要的程序設計語(yǔ)言,它與其他語(yǔ)言的主要差異在于它先天具備組織管理和高效率訪(fǎng)問(wèn)大批量數據的功能。設計一個(gè)功能齊全、結構優(yōu)化的數據庫,是設計數據庫管理系統必不可少的一個(gè)重要環(huán)節。VFP中文版為我們提供兩個(gè)功能強大的數據庫設計工具——數據庫向導和數據庫設計器。數據庫向導能幫助初學(xué)者在很短的時(shí)間內設計出一個(gè)數據庫。而數據庫設計器能設計出滿(mǎn)足用戶(hù)實(shí)際需要的較為復雜的數據庫。它們不僅能設計建立數據庫,而且還提供了一套完善的數據庫管理和維護功能。

2.1.1基本概念

1.數據庫的概念

一定要注意,VISUAL FOXPRO 中數據庫與表是兩個(gè)不同的概念,數據庫文件是各項與數據庫相關(guān)信息的匯集處,數據庫可以管理表,查詢(xún),視圖等數據實(shí)體,又可提供了數據字典,各種數據保護及數據管理功能。

在建立數據庫時(shí),相應的數據庫名稱(chēng)實(shí)際是擴展名為DBC的文件,與之相關(guān)的還會(huì )自動(dòng)建立一個(gè)擴展名DCT的數據庫備注文件和一個(gè)擴展名為DCX的數據庫索引文件.

數據庫建立好后,還只是一空庫,它沒(méi)有任何數據,需要建立或添加數據庫表才能實(shí)現對數據的統一的管理。

2.表的概念

VFP作為關(guān)系型數據庫系統,是用來(lái)管理數據的,而數據以記錄和字段的形式存儲在數據庫中,數據庫就是一個(gè)關(guān)于某一特定主題或目標的信息集合。表是從簡(jiǎn)單數據處理到創(chuàng )建關(guān)系型數據庫,再到設計應用程序的過(guò)程中所用到的基本單位,它是數據庫的基礎,可以說(shuō),表是關(guān)系數據庫系統中的基本結構。如果要保存數據,就應為所需記錄的信息創(chuàng )建一個(gè)表。數據表是由行和列組成的,每一行稱(chēng)為一條記錄,每一列稱(chēng)為一個(gè)字段。

每條記錄可以有若干個(gè)字段,而且每條記錄具有相同結構的字段。相同結構的含義是具有相同的字段名、字段類(lèi)型和字段順序。

2.1.2建立數據庫

數據庫的建立

建立數據庫的常用方法有以下三種:

l         在項目管理器中建立數據庫.

l         通過(guò)”新建”工具或”文件”菜單的”新建”一項實(shí)現.

l         使用命令CREATE  DATABASE建立.

1.在項目管理器中建立數據庫

在項目管理器中建立數據庫首先要打開(kāi)相應的項目, 在”數據”選項卡中選擇”數據庫”,再單擊”新建”按鈕并選擇”新建數據庫”(如圖2.1),


2.1

接著(zhù)通過(guò)創(chuàng )建對話(huà)框提示用戶(hù)輸入數據庫的名稱(chēng)(名稱(chēng)由用戶(hù)自己命名), 如果未命名,則系統默認文件名為”數據1(如圖2.2),相應的擴展名為.DBC.


2.2

2.通過(guò)”新建”對話(huà)框建立數據庫


2.3

單擊工具欄上的”新建”按鈕或者選擇”文件”菜單下的”新建”,打開(kāi)如圖2.3所示的”新建”對話(huà)框.首先在”文件類(lèi)型”組框中選擇”數據庫”,然后單擊”新建文件”按鈕建立數據庫,然后的操作和步驟與在項目管理器中建立數據庫相同,使用這種方法建立的數據庫同樣處于打開(kāi)狀態(tài),同時(shí)打開(kāi)相應的數據庫設計器.如圖2.4

 


2.4

3.使用命令建立數據庫.

建立數據庫的命令格式是:

CREATE  DATABASE [DatabaseName|?]

DatabaseName為用戶(hù)要建立的數據庫名稱(chēng).

如不輸入名稱(chēng)或使用”?”將出現提示用戶(hù)輸入名稱(chēng)對話(huà)框.如圖2.5


2.5

使用該命令所建立的數據庫處于打開(kāi)狀態(tài),不過(guò)相應的數據庫設計器并沒(méi)有打開(kāi),這是與上面兩種方法不同的地方。

     總之,使用以上三種方法都可以建立一個(gè)新的數據庫。如果指定的數據庫已經(jīng)存在,很可能會(huì )覆蓋掉已經(jīng)存在的數據庫。如果系統環(huán)境參數SAFETY被設置為OFF狀態(tài)會(huì )直接覆蓋,否則會(huì )出現警告對話(huà)核框請用戶(hù)確認因此,為安全起見(jiàn)可能先執行SET SATETY ON。

2.1.3數據庫的使用

1.數據庫的打開(kāi)

建立數據庫的目的是管理表中的數據,在使用之前,必須先打開(kāi)數據庫,常用的數據庫打開(kāi)方法有如下三種:

通過(guò)“文件”菜單的“打開(kāi)”功能項打開(kāi)相應的數據庫。如圖2.6所示,這里要注意“文件類(lèi)型”下拉列表選擇“數據庫(*.dbc.


2.6

在“打開(kāi)”對話(huà)框中還有“以只讀方式”和“獨占”兩個(gè)復選框可供選擇,它們的功能將在命令格式中加以介紹。

在項目管理器中打開(kāi)數據庫。

先打開(kāi)數據庫所在的項目,再選擇相應的已存在的數據庫名稱(chēng)。這時(shí)數據庫自動(dòng)打開(kāi),用戶(hù)不必再執行手工打開(kāi)數據庫操作。

使用命令方式打開(kāi)數據庫

打開(kāi)數據庫的命令格式為:

OPEN  DATABASE  [Filename|?][EXCLUSIVE|][NOUPDATE]

參數說(shuō)明:

Filename為要打開(kāi)的數據庫名稱(chēng)

EXCLUSIVE以獨占方式打開(kāi)數據庫,即在同一時(shí)刻不允許多個(gè)用戶(hù)同時(shí)使用。

SHARED以共享方式打開(kāi)數據庫,等同于“打開(kāi)”對話(huà)框中的不選擇“獨占”復選項。

NOUPDATE指定數據庫按只讀方式打開(kāi),等效于在“打開(kāi)” 對話(huà)框中選擇復選項“以只讀方式打開(kāi)”,即不允許對數據庫庫進(jìn)行寫(xiě)操作。數據庫文件打開(kāi)默認的方式是可讀寫(xiě)方式。

2.數據庫的修改

VISUAL FOXPRO中數據庫的修改要通過(guò)“數據庫設計器”來(lái)實(shí)現,所以要想修改數據庫,必須先打開(kāi)“數據庫設計器”,通過(guò)“數據庫設計器”來(lái)完成對數據庫的建立,修改和刪除等操作。

我們前面講過(guò),數據庫一旦打開(kāi),“數據庫設計器”便隨之自動(dòng)打開(kāi),所以我們先要打開(kāi)要修改的數據庫。

如果是通過(guò)“項目管理器”打開(kāi)的數據庫,如圖2.7所示,點(diǎn)擊“修改”按鈕,便打開(kāi)了“數據庫設計器”。


2.7

在命令窗口中打開(kāi)數據庫設計器或修改數據庫的命令格式為:

MODIFY  DATABASE[Databasename|?][NOWAIT][NOEDIT]

說(shuō)明:

Databasename為要打開(kāi)的數據庫名稱(chēng)。

如果使用“?”或不使用Databasename系統將出現提示“打開(kāi)”對話(huà)框,要求用戶(hù)選擇要打開(kāi)的數據庫。

NOWAIT該選項只在程序方式中使用,在命令窗口無(wú)效。

NOEDIT表示允許打開(kāi)數據庫,但不允許修改。

3、數據庫的刪除

在使用中,如果某個(gè)數據庫不再有用,我們可以將其從項目管理器或磁盤(pán)上清除。

從項目管理器中刪除

打開(kāi)項目管理器,選擇“移去”按鈕,出現如圖2.8所示對話(huà)框。


2.8

這時(shí)有三個(gè)選項,這三個(gè)選項的功能如下:

移去:只從項目管理器中刪除數據庫,并沒(méi)有真正從磁盤(pán)中刪除數據庫文件。

刪除:真正從磁盤(pán)中刪除數據庫文件,這時(shí)項目管理器中也一定不存在該文件。

取消:取消當前操作,不對數據庫進(jìn)行刪除。

使用這種方式刪除數據庫,并沒(méi)有將數據庫中的表,視圖等數據庫對象從磁盤(pán)中刪除,因為表,視圖等對象是以文件的形式獨立存在于磁盤(pán)上的,要想在刪除數據庫的同時(shí),刪除相應的表等文件,可以使用命令格式。

刪除數據庫的命令格式為:

DELETE  DATABASE Databasename|?[DELETETABLES][RECYCLE]

說(shuō)明:Databasename為要刪除數據庫的名稱(chēng)。如果未指定名稱(chēng),系統將提示用戶(hù)打開(kāi)相應的數據庫。

DELETETABLES表示在刪除數據庫的同時(shí),刪除數據中的數據庫表。

RECYCLE將刪除的數據庫和數據庫表等文件放入WINDOWS的回收站,需要時(shí)可以再還原。

2.2建立數據庫表

上節介紹了數據庫的基本操作,數據庫實(shí)際是對數據庫表等對象進(jìn)行管理,沒(méi)有表,數據庫的存在也就沒(méi)有多大的意義了。下面介紹如何建立表和數據庫表。

2.2.1在數據庫中建立表

1.應用“文件”菜單的“新建”功能項創(chuàng )建表

單擊“文件”菜單的“新建”選項,在“文件類(lèi)型”對話(huà)框中選擇“表”,再選擇“新建文件”按鈕,輸入要創(chuàng )建的表的名稱(chēng),出現如圖2.9所示對話(huà)框。


2.9

2.應用項目管理器創(chuàng )建表

打開(kāi)相應的項目管理器及數據庫,如圖所示,選擇“表”及“新建”,填入相應的表的名稱(chēng),即出現如圖所示對話(huà)框,這時(shí)所建的表為數據庫表。如果在項目管理器中直接選擇“自由表”一項,建立的表就是自由表。


2.10

這里對表設計器中涉及到的一些基本內容和概念作一解釋。


2.11

1.字段名

記錄中的每一個(gè)字段都是有名稱(chēng)的,但在命名字段時(shí),要遵守如下規則:

1)字段名必須以字母或漢字開(kāi)頭。

2)字段名可以由字母、漢字、下劃線(xiàn)和數字組成。

3)數據庫表字段名最大長(cháng)度不能超過(guò)128個(gè)字符。

4)自由表字段名最大長(cháng)度不能超過(guò)10個(gè)字符。

5)字段名中不能有空格。

2.字段類(lèi)型

字段可以使用的數據類(lèi)型有如下幾種,下面對這幾種數據類(lèi)型分別給予介紹。

字符型Character)。字符型字段通常用于存儲文本數據。如字母、漢字、數字、空格、符號以及標點(diǎn)符號等。字符型字段的寬度最大為254個(gè)字符。

貨幣型Currency)。貨幣單位,如貨物的價(jià)格。

數值型NumeriC)。數值型字段用來(lái)存儲數值數據。它可以包含數字0~9,也可以帶正、負號或小數點(diǎn)。

浮點(diǎn)型Float)。浮點(diǎn)型字段在功能上等價(jià)于數值型字段。其長(cháng)度在表中最長(cháng)可達20位。

日期型Date)。日期型用于存儲由年、月、日組成的日期數據。

日期時(shí)間型DateTime)。日期時(shí)間型用于存儲包含有年、月、日、時(shí)、分、秒的日期和時(shí)間數據。

雙精度型Double)。雙精度型用于存儲精度要求較高、位數固定的數值,或真正的浮點(diǎn)數值。

備注型Memo)。備注型用于存儲不定長(cháng)度的文本數據。當文本數據長(cháng)度不定且長(cháng)度可能大于254,無(wú)法使用字符型字段存儲時(shí),例如個(gè)人簡(jiǎn)歷。備注型字段的字際內容存儲在以.FPT為擴展名的文件中.在內存中占四個(gè)字節。主文件名與表的主文件名相同。

通用型General)。通用型用于存儲OLE 對象數據。通常由字段的鏈接與嵌入實(shí)現。字段寬度固定為4個(gè)字節,用于存儲一個(gè)4個(gè)字節的指針,指向該字段的實(shí)際內容。通用型字段的實(shí)際內容存儲在擴展名為.FPT文件中。如EXCEL電子表格、WORD字處理文檔、圖像或其他多媒體對象等。通用字段存儲數據的大小,取決于相關(guān)對象的OLE服務(wù)程序,并受可用磁盤(pán)空間大小的限制。

整形Integer)。整形用于存儲整數型數據,字段寬度固定為4個(gè)字節。字符型(二進(jìn)制)(Character Binary)。字符型(二進(jìn)制)用于存儲不需要系統代碼頁(yè)頁(yè)維護的字符數據。其他字段特性同字符型字段。

備注型(二進(jìn)制)(Memo Binary)。備注型(二進(jìn)制)用于存儲不需要系統代碼頁(yè)維護的備注字段數據。其他字段特性同備注型字段。

3.字段寬度

每一種數據類(lèi)型都有其規定寬度。

字符型字段的最大寬度為254。

貨幣型字側面寬度固定為8個(gè)字節。

數據型字段的最大寬度為20個(gè)字節,小數位數最大為19。

浮點(diǎn)型字段在功能上等價(jià)于數值型字段。

日期型字段寬度固定為8個(gè)字節。

日期時(shí)間型字段寬度固定為8個(gè)字節。

雙精度型字段寬度固定為8個(gè)字節。

備注型字段寬度固定為4個(gè)字節,用于存儲一個(gè)4個(gè)字節的指針,指向存儲的FPT文件中真正的備注內容。備注字段存儲文本長(cháng)度僅受可用磁盤(pán)空間大小的限制。

通用型字段寬度固定為4個(gè)字節,用于存儲一個(gè)4個(gè)字節的指針,指向該字段的實(shí)際內容。

整型字段寬度固定為4個(gè)字節。

小數位數

當字段類(lèi)型為“Numeric”或“Float”,應在“小數位數”欄中設置小數的位數。

4.空值

是否允許為空(NULL)如果允許字段接受“NULL”欄所在框,則應選中“NULL”欄所在框,否則,不選中該欄,表的字段不允許為NULL值。

5.字段的顯示屬性

 

格式:控制字段在瀏覽窗口、表單、報表等顯示時(shí)的樣式。

輸入掩碼:控制輸入該字段的數據的格式。如:商品編號的格式由一個(gè)字母和一個(gè)五位數字組成,則掩碼可以定義為S99999

 

。

標題:若表結構中字段名用的是英文,則可以在標題中輸入漢字,這樣顯示該字段值時(shí)就比較直觀(guān)了。沒(méi)有設置標題,則將表結構中的字段名作為字段的標題。

 

 

 

 

.字段有效性

 

規則:限制該字段的數據的有效范圍。在規則中輸入:性別="".OR.性別=""。這樣當給性別字段輸入記錄值時(shí)就只能輸入。 訂購數量的有效性規則可以設為:訂購數量>=0 .and.訂購數量<=1000。

 

 

信息:當向設置了規則的字段輸入不符合規則的數據時(shí),就會(huì )將所設置的信息顯示出。

 

默認值:當往表中添加記錄時(shí),系統向該字段預置的值。在性別字段中輸入默認值為。輸入記錄時(shí)只有女生才需要改變默認值,可以減少輸入。字段有效性的設置如圖2.11所示。

 

2.2.2修改表結構

VFP中,表結構可以任意修改:可以增加、刪除字段,可以修改字段的寬度,可以建立、修改、刪除有效性規則、索引等。

1.以項目管理器方式修改:

   在項目管理器窗口中選擇“數據”選項卡,選定“表”,再單擊“修改”按鈕。

修改表結構和建立表的表設計器界面完全一樣。

2.在當前的數據庫設計器中,右擊要修改的表,然后從彈出的捷菜單中選擇修改。

3.在命令窗口中使用命令

命令格式:MODIFY STRUCTURE

修改表結構和建立表的表設計器界面是完全一樣的,目前可以做的修改包括:

修改已有的字段

增加新字段

刪除不用的字段

2.3表的基本操作

2.3.1使用瀏覽器操作表

如果交互對表中的數據進(jìn)行操作,那么最簡(jiǎn)單,方便的方法就是使用Browse瀏覽器,打開(kāi)瀏覽器的方法有多種,常用的方法有:

在項目管理器中將數據庫展開(kāi)至表,并且選擇要操作的表,然后單擊“瀏覽”按扭(如圖2.12所示)。


2.12

在數據庫設計器中選擇要操作的表,然后從“數據庫”菜單中選擇“瀏覽”;或者右鍵單擊要操作的表,然后從彈出菜單中選擇“瀏覽”。

在命令方式下,首先用USE命令打開(kāi)要操作的表,然后鍵入BROWSE命令。

以上各種方式打開(kāi)的BROWSE瀏覽器的界面如圖2.13所示,在該界面中可以瀏覽,添加,刪除和修改記錄等。


2.13

2.3.2增加記錄命令

1. APPEND命令

APPEND命令是在表的尾部增加的記錄,它有兩種格式:APPENDAPPEND BLANK。

使用APPEND命令需要立刻交互輸入新的記錄值,界面如圖3.14所示,一次可以連續輸入多條新的記錄,然后用Ctrl+Esc鍵結束輸入新記錄。

APPEND BLANK是在表的尾部增加一條空白記錄,然后再用EDIT,CHANGEBROWSE命令交互輸入(修改)空白記錄的值,或用REPLACE命令直接修改空白記錄值。

2. INSERT命令

INSERT命令可以在表的任意位置插入新的記錄,命令格是:

INSER[BEFORE][BLANK]

如果不指定BEFORE,則在當前記錄之后插入一條新記錄,否則在當前記錄之前插入一條新記錄。

如果不指定BLANK,則直接出現編輯界面,并交互輸入記錄的值;否則在當前極力之后(或之前)插入一條空記錄,然后再用EDIT,CHANGEBROWSE命令交互輸入(修改)空白記錄的值,或用REPLACE命令直接修改該空白記錄值。

2.3.3刪除記錄命令

1.置刪除標記的命令

邏輯刪除或置刪除標記的命令是DELETE,常用格式如下:

DELETE[FORlExpressionl]

如果不用FOR短語(yǔ)指定邏輯條件,則只邏輯刪除當前一條記錄;如果用FOR短語(yǔ)指定了邏輯表達式lExpressionl,則邏輯刪除使該邏輯表達式為真的所有記錄。

21 邏輯刪除當前表商品名稱(chēng)為夾心餅干的記錄。

Dele for 商品名稱(chēng)="夾心餅干"


2.14

2.恢復記錄的命令

被邏輯刪除的記錄可以恢復,恢復記錄的命令是RECALL,常用格式如下:

         RECALL[FORlExpressionl]

如果不用FOR短語(yǔ)指定邏輯條件,則只恢復當前一條記錄(如果當前記錄沒(méi)有刪除標記,則該命令什么都不做);如果用FOR短語(yǔ)指定了邏輯表達式lExpressionl,則恢復使該邏輯表達式為真的所有記錄。

2.2 將當前表中已經(jīng)刪除的夾心餅干恢復。

Recall for商品名稱(chēng)="夾心餅干"

3.物理刪除有刪除標記的記錄

物理刪除有刪除標記記錄的命令是PACK,執行該命令后所有有刪除標記的記錄將從表中被物理地刪除,并且不可能再恢復。

2.3 將當前表中有刪除標記的記錄物理刪除.

Pack

4.物理刪除表中的全部記錄

使用ZAP命令可以物理刪除表中的全部記錄(不管是否有刪除標記),該命令只是刪除全部記錄,并沒(méi)有刪除表,執行完該命令后表結構依然存在。

2.3.4修改記錄命令

1.交互修改的命令

EDITCHANGE均用于交互對當前的表的記錄進(jìn)行編輯、修改,可通過(guò)鼠標操作快速定位到要修改的記錄,然后直接在原有的基礎上修改。

2.直接修改的REPLACE命令

可以使用命令直接用指定表達式或值修改記錄,

REPLACE命令的常用格式為:

【格式】REPLACE <字段名1> WITH <表達式1> [FOR <邏輯表達式1>]

【功能】用指定表達式的值替換當前表中滿(mǎn)足條件記錄的指定字段的值。

 

 

說(shuō)明:該命令適合對當前庫進(jìn)行成批地、有規律地修改。缺省范圍、條件時(shí),僅替換當前記錄, 該命令回車(chē)后,數據修改自動(dòng)完成。

 

2.4 求出訂購單表中的金額

Replace all 金額 with 單價(jià)*訂購數量

2.3.5顯示記錄的命令

 

格式LIST | DISPLAY [FIELDS <字段名表>][<范圍>] [FOR<條件表達式>]

功能將當前表文件的記錄按照指定的選項進(jìn)行顯示。

 

說(shuō)明DISPLAY命令與LIST命令的功能相似,當表文件的數據記錄較多時(shí),用DISPLAY命令較為方便。

如果同時(shí)缺省<范圍> <條件>子句,DISPLAY命令只顯示當前的一條記錄,而LIST命令則是取默認值ALL而顯示全部記錄。

FIELDS <字段名表>:用來(lái)指定顯示的字段。FOR<條件表達式>:指定對表文件中指定范圍內滿(mǎn)足條件的記錄進(jìn)行操作。

 

 

<范圍>:用來(lái)指定顯示哪些記錄。

范圍有以下四種表示方法:

·

          ALL:所有記錄。

·NEXT  N:從當前記錄開(kāi)始,后面的N條記錄(包括當前記錄)

  

·RECORD N:第N條記錄。

·REST:當前記錄后的全部記錄(包括當前記錄)。

2.5  顯示最后一個(gè)字為“酒”的記錄

  List for right(商品名稱(chēng),2)= ""

2.3.6查詢(xún)定位命令

1.絕對定位

  GO[to][record][<物理記錄號>|<內存變量表達式>]|[top]|[bottom]

  【功能】將記錄指針移動(dòng)到指定的位置

2.相對定位

   skip[±記錄數]

  【功能】從當前記錄開(kāi)始向前或向后移動(dòng)記錄指針。

3.LOCATE命令定位

【格式】LOCATE [<范圍>] [FOR <條件>]

【功能】按順序搜索表,從而找到滿(mǎn)足指定邏輯表達式的第一個(gè)記錄。

參數描述:

[<范圍>]:指定要定位的記錄范圍。只有在范圍內的記錄才被定位。LOCATE命令的默認范圍是ALL。

[FOR <條件>]LOCATE命令按順序搜索當前表以找到滿(mǎn)足邏輯表達式的第一個(gè)記錄。如果讓指針指向下一條滿(mǎn)足條件的記錄上,使用CONTINUE命令。

2.6使指針指向煙酒類(lèi)的記錄

    LOCATE  FOR 類(lèi)別="煙酒"          

    CONTINUE

2.4索引和排序

2.4.1索引概念

數據庫表記錄一般是按照其輸入的順序進(jìn)行顯示的。在處理表記錄的過(guò)程中,通常是按照表中記錄的存儲順序進(jìn)行。當數據庫表中記錄的數據很多時(shí),按照這種方法顯示就不便于用戶(hù)查找自己需要的信息。特別是當需要按照另外的順序處理時(shí),可以使用索引來(lái)改變記錄的順序。

由于索引文件中存儲的是按照某一字段的值排列的一組記錄號,每條記錄號指向一個(gè)待處理的記錄,所以實(shí)際上索引可以理解為根據某一字段的值進(jìn)行邏輯排序的一組指針。在按照索引重新排列的數據庫表中顯示的記錄,VFP將按照指針排列的順序分別讀取每一條記錄,而這些記錄在數據庫中的實(shí)際存儲位置并未改變。

1.索引的結構

VFP中有三種索引:結構復合索引(.CDX)、非結構復合索引(.CDX)、獨立索引(.IDX)。其中結構復合索引是所有索引中最重要的索引。本書(shū)中大多是結構復合索引,它的特點(diǎn)是:

在表打開(kāi)時(shí)自動(dòng)打開(kāi)。

在同一個(gè)索引文件中可以有多種排序方式,具有多個(gè)索引關(guān)鍵字。

在對表進(jìn)行添加、更改、刪除時(shí)索引文件自動(dòng)維護。

2.索引的類(lèi)型

在數據庫中,把用來(lái)確定索引順序的字段稱(chēng)為關(guān)鍵字字段。在VFP中,可以根據關(guān)鍵字字段建立下列四各類(lèi)型索引:主索引、候選索引、普通索引及惟一索引。

主索引:可以確保字段中輸入值的惟一性并決定了處理記錄的順序。在創(chuàng )建數據時(shí),除了紐帶表以外,一般應根據主關(guān)鍵字字段給每一個(gè)表建立主索引。但不能給自由表建立主索引。

候選索引:同主索引一樣也能確保字段值的惟一性,也能根據候選索引決定處理記錄的順序。與主索引不同的是,自由表可以建立候選索引。在數據表中,主索引只能有一個(gè),但候選索引可以有多個(gè)。在創(chuàng )建數據庫時(shí),應根據主關(guān)鍵字字段以外的其他字段建立候選索引。

普通索引:也可以決定記錄的處理順序,但其最大的特點(diǎn)是允許字段中的值可以重復。在創(chuàng )建數據庫時(shí),應在位于一對多關(guān)系的多端的表中建立一個(gè)普通索引。這樣,在根據普通索引排序或查詢(xún)記錄時(shí),系統將列出所有符合條件的記錄。在一個(gè)表中可以加入多個(gè)普通索引。

惟一索引:為了保證與以前版本的兼容性,VFP中可以使用惟一索引。惟一索引允許出現重復,但惟一索引只存儲索引文件中重復值第一次出現的記錄。“惟一”指索引文件對每一個(gè)特定的關(guān)鍵字只存儲一次,而忽略了重復值第二次及以后的記錄。

2.4.2在表設計器中建立索引

對于表,可以對一個(gè)字段或一個(gè)表達式建立索引。為了使索引更為有效,對于那些經(jīng)常用于對表、視圖或報表建立過(guò)濾器的字段最好建立索引。如果用戶(hù)對不經(jīng)常用于過(guò)濾或查詢(xún)的字段建立索引,它有可能降低運行效率。建立索引的操作步驟如下:

在“項目管理器”中,選擇想要加入字段的“表”,然后選擇“修改”按鈕。在所顯示的“表設計器”中,選擇“索引”,。

在“索引名”框中,輸入索引名。

在“類(lèi)型”處,選擇索引類(lèi)型。

在“表達式”框中,輸入“索引表達式”,或單擊右側“…”按鈕,系統進(jìn)入“表達式生成器”對話(huà)框,來(lái)定義表達式。

如果想要選擇記錄,可以在“篩選”框右側,單擊“ … ”按鈕,系統進(jìn)入“表達式生成器”對話(huà)框,建立過(guò)濾器。單擊“確定”按鈕,完成索引的創(chuàng )建。

如果在表中建立一個(gè)主索引或候選索引,輸入記錄時(shí),系統還可以自動(dòng)驗證輸入的記錄是否有重復。如果出現重復值,系統將警告輸入的數據違背了惟一性規定。這時(shí)需要對出現的重復記錄進(jìn)行修改,或者還原記錄的原有內容。

雖然利用索引可以提供數據的排序和查找速度,但是,如果建立很多不常使用的索引,不但不能提高程序的執行速度,相反只能起到負面作用。

使用索引應遵循的原則

按照工作性質(zhì)的不同,用戶(hù)可以應用不同的索引,索引的使用最好遵循以下原則:為了提高顯示、查詢(xún)、打印的速度,用“普通索引”、“候選索引”或“主索引”。為了控制字段的重復值或記錄進(jìn)行排序,對數據庫“表”用“主索引”或“候選索引”,對于“自由表”,用“候選索引”。

2.4.3用命令建立索引

格式INDEX ON <索引關(guān)鍵表達式> TO <索引文件名>/[ TAG] <索引標記名>  [UNIQUE] FOR <條件>[ADDITIVE]

功能對當前表中滿(mǎn)足條件的記錄,按<索引表達式>的值建立一個(gè)索引文件,并打開(kāi)此索引文件,其缺省的文件擴展名為.IDX。

<索引關(guān)鍵表達式>: 用以指定記錄重新排序的字段或表達式。

2.7給商品表按建立索引

   INDEX ON 商品編號 TAG商品編號

2.4.4 使用索引

1.打開(kāi)索引文件

在打開(kāi)表時(shí)打開(kāi)索引文件

格式:USE <表文件名> INDEX <索引文件名表> [ORDER <數值表達式>/ <單索引文件名> [OF <復合索引文件名>]] [ASCENDING/ DESCENDING]

在打開(kāi)表后打開(kāi)索引文件

格式:SET INDEX TO [<索引文件名表>/?] [ORDER <索引號>/<復合索引文件名>/[TAG] <索引標記> [OF <復合索引文件名>]] [ASCENDING/DESCENDING] [ADDITIVE]

2.設置主控索引

格式:SET ORDER TO [<數值表達式>/<單索引文件名>/[TAG] <索引標記> [OF <復合索引文件名>] [ASCENDING/DESCEN-DING]

3.使用索引快速定位

格式:SEEK <表達式> [ORDER <索引號>/<單索引文件名>/ [TAG] <索引標記> [OF <復合索引文件名>] [ASCENDING/ DESCENDING]]

2.8 假設當前使用商品表,將指針定位在商品編號為S10003的記錄上

SEEK "S10003" ORDER 商品編號

4.刪除索引

DELETE TAG 索引名

2.4.5排序

分類(lèi)將關(guān)鍵字段值相同的記錄按順序存放在一起,生成一個(gè)新的表文件。

格式:SORT TO <表文件名> ON <字段名1> [/A | /D] [/C] [,<字段名2> [/A | /D] [/C] ...] [ASCENDING|DESCENDING] [<范圍>] [FOR <邏輯表達式>]

<表文件名>:指定經(jīng)過(guò)排序后所生成的新表的表文件名。 

ON <字段名1>:在當前選定的、要排序的表中指定關(guān)鍵字段,字段的內容和數據類(lèi)型決定了記錄在新表中的順序。

[/A | /D]  [/C]:指定排序順序(升序或降序)。/A指定為按升序排序,/D指定按降序排序。如果在字符型字段名后面包含/C,則忽略大小寫(xiě)??梢园?span lang="EN-US">/C選項與/A/D選項組合起來(lái)。

[ASCENDING]:將所有不帶/D的字段指定為升序排列。

[DESCENDING]:將所有不帶/A的字段指定為降序排列。如果省略ASCENDING DESCENDING參數,則排序默認為升序。

[<范圍>]:指定需要排序記錄的范圍。默認范圍為ALL。

[FOR <邏輯表達式>] :在當前表中指定排序中只包含邏輯條件為“真”的記錄。

2.9 把類(lèi)別表按類(lèi)別排序

    SORT TO 商品1 ON 商品編號

2.5數據完整性

2.5.1 實(shí)體完整性與主關(guān)鍵字

實(shí)體完整性是保證表中記錄唯一的特征,即在一個(gè)表中不允許有重復記錄。在VFP中利用主關(guān)鍵字或候選關(guān)鍵字來(lái)保證表中記錄的唯一,即保證實(shí)體唯一性。

如果一個(gè) 字段的值或幾個(gè)字段的值能夠唯一標識表中的一條記錄,則這樣的字段稱(chēng)為候選主關(guān)鍵字。在一個(gè)表中可能有幾個(gè)具有這種特征字段或字段的組合,這時(shí)從中選擇一個(gè)座位主關(guān)鍵字。

VFP中將主關(guān)鍵字稱(chēng)為主索引,將候選關(guān)鍵字稱(chēng)為候選索引。

2.5.2域完整性與約束規則

域完整性應該是我們最熟悉的了,以前我們所熟知的數據類(lèi)型的定義都是域完整性的范疇。如對于數值型字段,通過(guò)制定不同的寬度說(shuō)明不同范圍的數據類(lèi)型,從而可以限定字段的取值類(lèi)型和取值范圍。但這些對域完整性還遠遠不夠,我們還可以用一些域約束規則來(lái)進(jìn)一步保證域完整性。域約束規則也稱(chēng)作字段的有效性規則,在插入或修改字段值時(shí)被激活,主要用于數據輸入正確性的檢驗。

建立字段有效性規則比較簡(jiǎn)單直接的方法仍然是在表設計器中建立,在表設計器的“字段”選項卡中有一組定義字段有效性的項目,它們是規則、信息、默認值三項。具體操作步驟是:

首先單擊選擇要定義字段的有效性規則的字段。

然后分別輸入和編輯規則、信息及默認值等項目。

字段有效性規則的項目可以直接輸入,也可以單擊輸入旁的按鈕打開(kāi)表達式生成器對話(huà)框編輯、生成相應的表達式。

   以商品進(jìn)貨銷(xiāo)售系統數據庫中的訂購單為例,設訂購單的訂購數量有效性規則在100200之間,當輸入的訂購數量不再此范圍內時(shí)給出出錯提示:訂購數量的默認值是100。

為此,在“規則”框中(或表達式生成器)輸入表達式:

訂購數量>=100.AND.訂購數量<=200

在“信息”框中(表達式生成器)輸入表達式:

“訂購數量輸入錯誤,應該在100—200之間”

在“默認值”框中(或表達式生成器)輸入表達式:100

2.5.3參照完整性與表之間的關(guān)聯(lián)

參照完整性與表之間的關(guān)聯(lián)有關(guān),它的大概含義是:當插入、刪除或修改一個(gè)表中的數據時(shí),通過(guò)參照引用相互關(guān)聯(lián)的另一個(gè)表中的數據,來(lái)檢查對表的數據操作是否正確。假如銷(xiāo)售單記錄有商品編號字段構成,當插入一條這樣的記錄時(shí),如果沒(méi)有參照完整性檢查,則可能會(huì )插入一個(gè)并不存在的商品記錄,這時(shí)插入的記錄肯定是錯誤的,進(jìn)行參照完整性檢查,則可以保證插入記錄的合法性。

參照完整性是關(guān)系數據庫管理系統的一個(gè)很重要的功能。在Visual FoxPro中為了建立參照完整性,必須首先建立表之間的聯(lián)系(在中文版Visual FoxPro中稱(chēng)為關(guān)系)。

在數據庫設計器中設計表之間的聯(lián)系時(shí),要在父表中建立主索引,在子表中建立普通索引,然后通過(guò)父表的主索引和子表的普通索引建立起兩個(gè)表之間的聯(lián)系。


2.15

2.15顯示了數據庫設計器中已經(jīng)建立好的3個(gè)表。在這3個(gè)表中,商品和訂購單之間有一個(gè)一對多的聯(lián)系,連接字段是商品編號;在供應商和訂購單之間有一個(gè)一對多的聯(lián)系,連接字段是供應商號。

我們先建立商品和訂購單之間的一對多聯(lián)系,具體方法是:在圖2.15所示的數據庫設計器中用鼠標單擊選中商品表中的主索引商品編號,按住鼠標左鍵,并拖動(dòng)鼠標到訂購單表的商品編號索引上(鼠標箭頭會(huì )變成小矩形狀),最后釋放鼠標聯(lián)系就建立好了。用同樣的方法可以建立供應商和訂購單之間的聯(lián)系。


2.16

建立好聯(lián)系的表如圖2.16所示(觀(guān)察連接表的符號,這時(shí)默認的是一對多的聯(lián)系)。如果在建立聯(lián)系時(shí)操作有誤,隨時(shí)可以通過(guò)編輯修改聯(lián)系。方法是用鼠標右擊要修改的聯(lián)系,然后從彈出的菜單中選擇“編輯關(guān)系”打開(kāi)“編輯關(guān)系”對話(huà)框,如圖2.17所示。


2.17

到目前為止,只是建立了表之間的聯(lián)系,Visual FoxPro默認沒(méi)有建立任何參照完整性約束。

在建立參照完整性之前必須首先清理數據庫,這時(shí)可以在“數據庫”(只要打開(kāi)數據庫設計器就會(huì )有該菜單項)菜單中選擇“清理數據庫”。

在清理完整數據庫后,用鼠標右擊表之間的聯(lián)系并從彈出菜單選擇“編輯參照完整性”,打開(kāi)的參照完整性生成器如圖2.18所示(注意:不管單擊哪個(gè)聯(lián)系,所有聯(lián)系將都出現在參照完整性生成器中)。

參照完整性規則完整性規則包括更新規則、刪除規則、插入規則。


2.18

26自由表

1.建立數據庫表

要將已建好的自由表添加至某數據庫中,可以先打開(kāi)“數據庫設計器”,點(diǎn)擊右鍵,選擇“添加表”一項,如圖所示。再從出現的窗口中找到相應的表名即可。


2.19

 這時(shí)該表即成為指定數據庫的數據庫表,出現在數據庫設計器中。如下圖所示。


2.20

也可以在建表時(shí),直接建立數據庫表。

打開(kāi)項目管理器,選擇相應數據庫,如圖2.21所示。點(diǎn)擊右側“新建”按鈕,再一次出現上述重復畫(huà)面,這是所建的表是數據庫1的數據庫表。


2.21

2、將數據庫表轉化為自由表

打開(kāi)數據庫設計器,如圖所示,選擇要成為自由表的表,點(diǎn)擊右鍵,選擇“刪除”,出現如圖2.22所示對話(huà)框,


2.22

移去:將表從數據庫中移去,成為自由表。

刪除:將表從盤(pán)上永久刪除,不再可恢復。

取消:取消當前操作。


2.23

2.7多個(gè)表同時(shí)使用

2.7.1多工作區的概念

多表(工作區)的同時(shí)使用

迄今所講述的對表的操作都是在一個(gè)工作區進(jìn)行的,每個(gè)工作區最多只能打開(kāi)一個(gè)表文件,用USE命令打開(kāi)一個(gè)新的表,同時(shí)也就關(guān)閉了前面已打開(kāi)的表。在實(shí)際應用中,用戶(hù)常常需要同時(shí)打開(kāi)多個(gè)表文件,以便對多個(gè)表文件的數據進(jìn)行操作。為了解決這一問(wèn)題,Visual FoxPro引入了工作區的概念。Visual FoxPro允許用戶(hù)在表間建立臨時(shí)關(guān)系和永久關(guān)系。 

1.工作區和當前工作區

VFP 能同時(shí)提供32767個(gè)工作區。系統默認值為1區。在任意時(shí)刻,只有一個(gè)工作區是當前工作區,用戶(hù)只能在當前工作區對打開(kāi)的當前庫進(jìn)行操作。             每一個(gè)工作區都可以并且只能打開(kāi)一個(gè)數據庫文件。同一個(gè)數據庫文件不允許同時(shí)在多個(gè)工作區打開(kāi),但在其它工作區中被關(guān)閉之后,可以在任意一個(gè)工作區中被打開(kāi)。各工作區中打開(kāi)的數據庫彼此相互獨立(指針不受影響)。

2.選擇當前工作區(每一個(gè)工作區用工作區號或別名來(lái)標識)

工作區號

利用數字1~32767來(lái)標識32767個(gè)不同的工作區

別名

10工作區用A~J10個(gè)字母來(lái)標識,11~32767工作區用W11~W32767表示。

采用該工作區中已打開(kāi)的數據表的表名來(lái)作別名

用戶(hù)自己定義

工作區的選擇

當系統啟動(dòng)時(shí),1號工作區是當前工作區,若想改變當前工作區,則可使用SELECT命令來(lái)轉換當前工作區。

【命令格式】SELECT<工作區號>/<工作區別名>

【功能】選擇一個(gè)工作區作為當前工作區。

說(shuō)明:<工作區號> | <工作區別名>:指定當前工作區。選擇工作區時(shí),可以直接指定區號,也可以通過(guò)別名指定工作區,二者是等效的。

別名可以是系統規定的別名,也可以是用戶(hù)規定的別名,甚至可以用已打開(kāi)的表名替代工作區別名。 

執行該命令后,對任何工作區中的表及記錄指針均不發(fā)生影響,僅實(shí)現各個(gè)工作區之間切換。

2.10 1號和2號工作區內分別打開(kāi)商品、供應商和訂購單3個(gè)表,并選擇1號工作區為當前工作區。

SELECT 1          

USE 商品

  SELECT  B

    USE  供應商

   SELECT 3

    USE 訂購單

SELECT 1

或:USE 商品 IN 1        

USE 供應商 IN 2

USE 訂購單 IN 3

3.非當前工作區字段的引用

Visual FoxPro系統對當前工作區上的表可以進(jìn)行任何操作,也可以對其他工作區中的表文件的數據進(jìn)行訪(fǎng)問(wèn)。在主工作區可通過(guò)以下兩種格式訪(fǎng)問(wèn)其他工作區表中的數據。

格式:<工作區別名>-> <字段名>

      <工作區別名>. <字段名>

通過(guò)用工作區別名指定欲訪(fǎng)問(wèn)的工作區,所得到的字段值為指定工作區打開(kāi)的表當前記錄的字段值。

2.11 1號和2號工作區打開(kāi)商品和訂購單,在1號工作區內查看當前記錄的商品編號、商品名稱(chēng)、訂購數量、商品單價(jià)等字段內容。

SELECT A

USE 商品       && 在一號工作區中打開(kāi)商品

SELECT B

USE 訂購單     && 在二號工作區中打開(kāi)訂購單

SELECT A       && 選擇1號工作區為當前工作區

DISPLAY 商品編號,商品名稱(chēng),B.訂購數量B->商品單價(jià)

2.7.2表的關(guān)聯(lián)

表之間的關(guān)聯(lián)

1.關(guān)聯(lián)的概述

      所謂表文件的關(guān)聯(lián)是把當前工作區中打開(kāi)的表與另一個(gè)工作區中打開(kāi)的表進(jìn)行邏輯連接,而不生成新的表。當前工作區的表和另一工作區中的打開(kāi)表建立關(guān)聯(lián)后,當前工作區是表的記錄指針移動(dòng)時(shí),被關(guān)聯(lián)工作區的表記錄指針也將自動(dòng)相應移動(dòng),以實(shí)現對多個(gè)表的同時(shí)操作。

在多個(gè)表中,必須有一個(gè)表為關(guān)聯(lián)表,此表常稱(chēng)為父表,而其他的表則稱(chēng)為被關(guān)聯(lián)表,常稱(chēng)為子表。在兩個(gè)表之間建立關(guān)聯(lián),必須以某一個(gè)字段為標準,該字段稱(chēng)為關(guān)鍵字段。 

2.表文件關(guān)聯(lián)的建立

【格式】SET RELATION TO <關(guān)鍵字段表達式> INTO<別名> |  <工作區號>] [ADDITIVE]

【功能】將當前工作區的表文件與<別名>(或工作區號)指定的工作區中的表文件按<關(guān)鍵字段表達式><數值表達式>建立關(guān)聯(lián)。

【說(shuō)明】當用<關(guān)鍵字段表達式>建立關(guān)聯(lián)時(shí),關(guān)鍵字必須是兩個(gè)表文件共有字段,且別名表文件已按關(guān)鍵字段建立了索引文件,并已指定關(guān)鍵字段為當前索引。

     當父表文件的記錄指針移動(dòng)時(shí),子表文件的記錄指針根據主索引文件指向關(guān)鍵字段值與父表文件相同的記錄。如果子表中沒(méi)有與關(guān)鍵字段值相同的記錄,記錄指針指向文件尾,EOF().T.。

ADDITIVE:表示當前表與其他工作區表己有的關(guān)聯(lián)仍有效,實(shí)現一個(gè)表和多個(gè)表之間的關(guān)聯(lián);否則取消當前表與其他工作區表已有的關(guān)聯(lián),當前表只能與一個(gè)表建立關(guān)聯(lián)。

SET  RELATION  TO則表示取消當前工作區與其他工作區的關(guān)聯(lián)。

2.12 將表文件.DBF和訂購單.DBF以商品編號為關(guān)鍵字段建立關(guān)聯(lián)。

SELECT 2                         && 選擇工作區2

USE  訂購單                      && 打開(kāi)表文件訂購單.DBF

INDEX ON 商品編號 TAG商品編號   && 建立商品編號標識

SET ORDER TO 商品編號            && 指定商品編號為當前索引

SELECT 1                         && 選擇工作區1

USE 商品                         && 打開(kāi)表文件商品.DBF

SET RELATION TO商品編號 INTO 2  && 建立一對一關(guān)聯(lián)

說(shuō)明:在建立關(guān)聯(lián)之前,必須打開(kāi)一個(gè)表(父表),而且還必須在另一個(gè)工作區內打開(kāi)其它表(子表)。相關(guān)的各表通常有一個(gè)相同的字段。父表可以同時(shí)與多個(gè)子表建立關(guān)系,稱(chēng)為“一父多子”的關(guān)系。<關(guān)聯(lián)表達式>可以是字符型、數值型、日期型表達式。如果建立父子關(guān)聯(lián)之前,子表已經(jīng)按照關(guān)聯(lián)條件建立了索引,并將該索引文件指定為主控索引,那么,每當當前工作區父表的記錄指針重新定位時(shí),就檢索子表,將子表的記錄指針定位于<關(guān)聯(lián)表達式>值與<索引表達式>值相同的第一條記錄之上。

    除了可以在一個(gè)工作區中與多個(gè)表建立關(guān)聯(lián)以外,還允許在多個(gè)工作區中建立多個(gè)表之間的關(guān)聯(lián),但關(guān)聯(lián)不能構成循環(huán)。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
數據庫
今天,VF,我不多說(shuō)了.(絕對原創(chuàng ),身邊的誰(shuí)要沒(méi)看到可不怪我沒(méi)通知,睡了ZZZZZZZZZ...
vf判斷(整合后)xls
第三章 VFP數據庫(表)的概念及操作
Foxpro數據庫命令匯總
易語(yǔ)言數據庫應用手冊
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久