正文 第五章 數據庫基礎與操作(三)(1 / 3)

5.6數據查詢

前麵學習過的查詢命令LOCATE,是將記錄指針定位於符合條件的第一條記錄,然後用CONTINUE命令繼續查找符合條件的第二條記錄,直至文件結束。在查詢大型數據庫時,這樣從頭至尾地順序查找速度很慢。若建立了索引,則可進行快速查詢,又稱索引查詢。FoxPr0還支持一種更方便快捷的RQBE——對話式範例關聯查詢。此外,過濾查詢也是常用的一種方法。

一、簡單索引查詢

簡單索引查詢是利用簡單索引文件或按複合索引文件進行快速查詢。在查詢之前應先打開庫文件(若有複合索引文件將同時打開),然後打開簡單索引文件。要查詢某字段的數據,就要把以該字段為索引關鍵字段的索引文件(或複合索引文件中的該索引標誌)設為主控索引。例如:查詢ZGDA.DBF中的職工號為0102的記錄,操作步驟如下:

(1)在命令窗口輸入命令:

USEZGDA

SETORDERTOTAGZGHOFZGDA.CDX

打開ZGDA.DBFH後,把同時打開的複合索引文件ZGDA.CDX中的ZGH設為主控索引。

(2)選Record下拉菜單中的Seek項,將出現Expression Builder對話框。

(3)在Valueto Seek(查詢的字段值)文本框中輸入0102。

注意:

待查值必須與索引關鍵字段數據類型相同,字符型數據要加引號;數值型隻需輸入實數或整數;日期型待查值必須寫成CTOD(“年年/月月/日Et”)(年月日均寫滿兩位),查56年5月2日寫成:CTOD(“56/05/02”)或{56/05/02}

(4)單擊0K按鈕,係統開始查找,查不到,在主菜單窗口下部狀態條顯示Nofind;查到,狀態條上顯示Record:查到的記錄號,記錄總數。與步驟(2)。(4)等效的鍵盤方式命令是:SEEK“0102”Seek命令格式為:Seek待查字段值。

二、複雜索引查詢

為縮小查詢範圍,可設置查詢的條件(待查值)多一些,前提是先要建立以這些待查字段為索引字段的複雜索引文件。打開庫文件並打開該索引文件且設為主控文件後,就可以進行複雜索引查詢。例:查詢一車間、基本工資為260.00元、出生日期為70年9月20日的職工情況(前已建立了按BM+JBGZ+CSRQ索引的複雜索引文件ZGDA4.IDX),操作步驟如下:

(1)輸入命令:USEZGDAINDEXZGDA4.IDX。

(2)選Record下拉菜單中的Seek項,將出現Expression Builder對話框。

(3)在Valueto SEEK文本框中輸入待查表達式:一車間+STR(260.00,7,2)+“70/09/20”。

注意:待查字符型字段值可加引號;數值型寫成STR(待查值,字段寬度,小數位);日期型寫成“年年,月月,日日”。若幹個待查值用“+”號連接。

(4)單擊0K按鈕,係統開始查找,窗口底部狀態條上顯示Record:2/8,表示查到符合條件的2號記錄,它是當前記錄。

(5)選Record下拉菜單項Chan9,頁式顯示記錄內容。光帶覆蓋在0102上,為當前記錄。

三、過濾查詢

過濾查詢能將符合條件的記錄留下作為操作對象,合條件的記錄“過濾”掉,從而加快查詢及操作的速度。

過濾查詢的命令格式:

四、RQBE關聯查詢

RQBE,意即對話式範例關聯查詢,是一種先進的數據查詢工具,它能按照查詢條件從數據庫提取符合條件的數據,以瀏覽、報表等各種直觀的形式輸出。它既能設定輸出字段的多少、對字段進行排序查詢、按設定條件查詢,還能控製查詢結果輸出到另一個庫文件保存、輸出到屏幕顯示或者輸出到報表文件以便打印。

1.RQBE查詢的操作界麵

例:對ZGDA.DBF進行一次無查詢條件對話式範例關聯查詢。

(1)打開數據庫ZGDA.DBF。

(2)選File下拉菜單中的New選項,出現New對話框。

(3)選File Type按鈕組件的Query按鈕,然後單擊New按鈕,出現RQBE對話框。

RQBE對話框各項的含義是:

·Tables列表框裏有正打開的可供選擇進行查詢的數據庫名;

·Output Fields列表框列出待輸出的字段名,其右的Fields…、0rderBy…複選框用來對字段作增減或排序等調整;

·Output指輸出形式,默認為Browse。單擊下箭頭彈出下拉列表,從中還可選擇報表、數據庫、圖形等輸出形式。

·Name是輸出到文件時對文件的命名。

·Selection Criteria是輸入查詢條件表達式的區域。

·Do Query所有參數及條件設置好後,單擊該按鈕開始查詢。

(4)單擊Do Query按鈕,屏幕出現瀏覽窗口。

因係統默認輸出屏幕瀏覽,故出現瀏覽窗口。

(5)關閉瀏覽窗口回到RQBE—United對話框。

(6)單擊對話框左上角控製框,單擊“關閉”項,係統提問是否保存到查詢文件?本次操作不需保存,單擊№按鈕,返回菜單窗口。

2.按條件查詢

例:查詢ZGDA.DBF中財務科的職工情況,操作步驟如下:

(1)操作如前所述,到出現RQBE對話框。

(2)在Selection Criteria框裏輸入查詢條件,即單擊Field Name下箭頭,從其下拉列表中選Zgda.bm,使它出現在字段名框中。

(3)Not下的文本區出現lake,即“像或相等”之意。它的下拉列表還有More than(大於)、Less than(小於)、Between(在兩者之間)、Exactly like(精確相等)等,可供其他條件選擇。

(4)單擊Example輸入框,輸入“財務科”。

(5)單擊Do Query,完成查詢,出現瀏覽窗口。

(6)關閉瀏覽窗口,返回RQBE對話框,再返回主窗口。

例:查詢一車間基本工資250元以上、300元以下的職工記錄。這是多個條件查詢問題,操作方法如下: