一.查詢:所謂查詢,就是從數據庫的一個表或關聯的多個表中,檢索出符合條件的信息,并可對查詢結果分組或排序存儲于指定的文件中.查詢文件的擴展名為.qpr.查詢只能從表中提取數據,但不能修改數據.如果既要查詢數據,又要修改數據,可使用視圖.
二.查詢的創建: 創建查詢的方法有三種:一是使用查詢向導,二是使用查詢設計器,三是直接編寫select-sql語句.不管用查詢向導還是用查詢設計器,其結果都是生成一條select-sql語句,在本質上是select-sql命令的可視化設計方法.我們這里介紹使用查詢設計器創建查詢.
1.使用查詢設計器創建查詢的基本步驟:
(1).啟動查詢設計器
(2).添加表
(3).設置表間關聯
(4).選擇顯示字段
(5).設置篩選記錄條件
(6).排序,分組查詢結果
(7).設置查詢輸出類型
2.啟動查詢設計器:
(1)在項目管理器中選擇"數據"或"全部"選項卡,選擇"查詢"文件類型,然后單擊"新建"按鈕,單出"新建查詢"對話框,如圖52
Visual FoxPro基礎教程完整版
(2)在"新建查詢"對話框中單擊"新建查詢"按鈕,彈出"查詢設計器"窗口,如圖53所示
3.查詢設計器介紹:
(1)數據環境:查詢設計器的上半部分是數據環境顯示區,用于顯示所選擇的表或視圖,可右擊其空白處,選"添加表"或"移動表"命令向數據環境添加或移動表.如果是多表查詢,還可在表之間可視化的連線建立關系.
(2)"字段"選項卡:在"查詢設計器"中,選擇"字段"選項卡, 在"可用字段"列表中列出了查詢數據環境中選擇的數據表的所有字段;在"選定字段"框中設置在查詢結果中要輸出的字段或表達式;"函數和表達式"框用于建立查詢結果中輸出的表達式."選定字段"框中行的順序就是查詢結果中列的順序.
在"可用字段"框和"選定字段"框之間有4個按鈕:"添加","全部添加","移動"和"全部移動"按鈕,用于選擇或取消選定字段.
在"函數和表達式"框中,可以用來輸入一個表達式,或單擊"…按鈕,打開"表達式生成器"對話框,生成一個表達式,單擊"添加"按鈕,表達式就出現在"選定字段"框中.還可以給選定的字段或表達式起一個別名,方法是在"函數和表達式"框中字段名或表達式后輸入"AS 別名",查詢結果中就以別名作為該列的標題.
例如,在"職工檔案"表中有出生時間字段,為了輸出年齡,可以在"選定字段"框中加入下列表達式:
year(date())-year(職工檔案!出生時間)+1 AS 年齡
在該表達式中,用當前系統日期的年份減去出生時間的年份,得到了職工的年齡,并給該表達式起了一個別名"年齡"
(3)"聯接":進行多表查詢時,需要把所有有關的表或視圖添加到查詢設計器的數據環境中,并為這些表建立聯接.這些表可以是數據表,自由表或視圖.
當向查詢設計器中添加多張表時,如果新添加的表與已存在的表之間在數據庫中已經建立永久關系,則系統將以該永久關系作為默認的聯接條件.否則,系統會打開"聯接條件"對話框,并以兩張表的同名字段作為默認的聯接條件,如圖54所示。
在該對話框中有四種聯接類型:內部聯接(inner join),左聯接(left outer join),右聯接(right outer join)和完全聯接(full join),其意義下表.系統默認的聯接類型是"內部聯接",可在"聯接條件"對話框中更改表之間的聯接類型.
聯接類型 | 說明 |
內部聯接 | 兩個表中的字段都滿足聯接條件,記錄才選入查詢結果 |
左聯接 | 聯接條件左邊的表中的記錄都包含在查詢結果中,而右邊的表中的記錄只有滿足聯接條件時,才選入查詢結果 |
右聯接 | 聯接條件右邊的表中的記錄都包含在查詢結果中,而左邊的表中的記錄只有滿足聯接條件時,才選入查詢結果 |
完全聯接 | 兩個表中的記錄不論是否滿足聯接條件,都選入查詢結果 |
兩表之間的聯接條件也可以通過"查詢設計器"的"聯接"選項卡來設置和修改,如圖55所示