考點1 查詢設(shè)計器
1查詢的概念 查詢是從指定的表或視圖中提取滿足條件的記錄,然后按照想得到的輸出類型定向輸出查詢結(jié)果。查詢以擴展名為QPR的文件保存在磁盤上的,這是一個文本文件,它的主體是SQL SELECT語句。 2查詢的建立 建立查詢可以使用“查詢設(shè)計器”,但它的基礎(chǔ)是SQL SELECT語句。建立查詢的方法有以下幾個方面 。 (l)可以利用CREATE QUERY命令打開查詢設(shè)計器建立查詢。 (2)可以利用“新建”對話框打開查詢設(shè)計器建立查詢。 (3)可以在項目管理器的“數(shù)據(jù)”選項卡中打開查詢設(shè)計器建立查詢。 (4)可直接編輯QPR文件建立查詢。 建立查詢時,首先進入如圖6-1所示的界面選擇用于建立查詢的表或視圖,選擇表或視圖后,單擊“添加”按鈕。最后單擊“關(guān)閉”按鈕,進入如圖6-2所示的查詢設(shè)計器界面。
 圖6-1 為查詢選擇表或視圖 查詢設(shè)計器中的各選項卡和SQL SELECT語句的各短語是相對應(yīng)的,對應(yīng)關(guān)系如下。 “字段”――SELECT短語,用于指定要查詢的數(shù)據(jù) “連接”――JOIN ON短語,用于編輯連接條件。 “篩選”――WHERE短語,用于指定查詢條件。 “排序依據(jù)”――ORDER BY短語,用于指定排序字段和排序方式。 “分組依據(jù)”――GROUP BY短語和HAVING短語,用于分組。
 圖6-2 查詢設(shè)計器 3查詢的運行 運行查詢有下列兩種方法。 (1)可以在項口管理器的“數(shù)據(jù)”選項卡中,展開“查詢”選項,然后選擇要運行的查詢文件,單擊“運行”按鈕,可查看查詢結(jié)果。 (2)在命令窗門執(zhí)行命令DO QueryFile。 注意:此處的查詢文件名是全名,包括擴展名QPR。 4查詢?nèi)ハ?BR> 設(shè)計查詢的目的不只是完成一種查詢功能,在查詢設(shè)計器中可以根據(jù)需要為查詢輸出定位查詢?nèi)ハ。通過“查詢”菜單卜的“查詢?nèi)ハ颉,或在“查詢設(shè)計器”工具欄中單擊“查詢?nèi)ハ颉卑粹o。“查詢?nèi)ハ颉睂υ捒蛉鐖D6-3所示
 圖6-3 “查詢?nèi)ハ颉睂υ捒?BR> 各去向的含義如下。 (1)瀏覽:在“瀏覽" (BROWSE)窗口中顯示查詢結(jié)果,這是默認的輸出去向。 (2)臨時表:將查詢結(jié)果存儲于一個命名的臨時只讀表中。 (3)表:將結(jié)果保存在一個命名的數(shù)據(jù)表文件中。 (4)圖形:查詢結(jié)果可以用于Microsoft Graph。 (5)屏幕:在Visual FoxPro主窗口或當前活動輸出窗口中顯示查詢結(jié)果。 (6)報表:將結(jié)果輸出到一個報表文件。 (7)標簽:將結(jié)果輸出到一個標簽文件。
小提示: 在7種輸出去向中,只有“瀏覽”和“屏幕”兩種輸出去向才能直接看到查詢結(jié)果。
6.2 視圖
考點2 視圖的概念與建立
1視圖的概念 視圖是操作表的一種手段,通過視圖可以查詢表,也可以更新表。視圖是根據(jù)表定義的,因此視圖基于表,而視圖可以使應(yīng)用更靈活,因此它又超越表。視圖是數(shù)據(jù)庫中的一個特有功能,只有在包含視圖的數(shù)據(jù)庫打開時才能使用。 視圖兼有“表”和“查詢”的特點,與查詢相類似的地方是可以用來從一個或多個相關(guān)聯(lián)的表中提取有用信息;與表類似的地方是可以用來更新其中的信息,并將結(jié)果永久性保存在磁盤上。 2視圖的建立 (l)用CREATE VIEW命令打開視圖設(shè)計器建立視圖。 (2)利用“新建”對話框打開視圖設(shè)計器建立視圖。 (3)在項目管理器的“數(shù)據(jù)”選項卡中打開視圖設(shè)計器建立視圖。 (4)利用SQL命令CREATE VIEW... AS...建立視圖。 3視圖設(shè)計象 視圖設(shè)計器(如圖6一所示)與查詢設(shè)計器基本上一樣,主要有以下幾點不同。 (1)視圖的結(jié)果保存在數(shù)據(jù)庫中,在磁盤上找不到類似的文件。 (2)視圖可以用來更新數(shù)據(jù),因此在設(shè)計器中多了一個“更新條件”選項卡。 (3)在視圖中沒有“查詢?nèi)ハ颉钡膯栴}。
 圖6-4 視圖設(shè)計器
考點3 遠程視圖與連接
為了建立遠程視圖,必須首先建立連接遠程數(shù)據(jù)庫的“連接”,“連接”是Visual FoxPro數(shù)據(jù)庫中的一種對象。 1定義數(shù)據(jù)源和連接 數(shù)據(jù)源一般是ODBC數(shù)據(jù)源,開放數(shù)據(jù)庫互連ODBC是一種連接數(shù)據(jù)庫的通用標準。為了定義ODBC數(shù)據(jù)源,必須首先安裝ODBC驅(qū)動程序。 2建立連接 建立連接的方法有以下幾種。 (1)用CREATE CONNECTION命令打開“連接設(shè)計器”,或完全用命令方式建立連接。 (2)通過“新建”對話框建立連接。 (3)在項目管理器的“數(shù)據(jù)”選項卡中建立連接。 3設(shè)計遠程視圖 利用數(shù)據(jù)源或連接建立的遠程視圖的SQL語法要符合遠程數(shù)據(jù)庫的語法,例如,SQL Server的語法和Visual FoxPro的語法就有所區(qū)別。
考點4 視圖與數(shù)據(jù)更新
視圖是根據(jù)基本表派生出來的,所以把它叫做虛擬表為了通過視圖能夠更新基本表中的數(shù)據(jù),需要在視圖設(shè)計器的“更新條件”選項卡中的左下角選中“發(fā)送SQL更新”復選框。 1指定可更新的表 如果視圖是基于多個表的,默認可以更新“全部表”的相關(guān)字段,如果要指定只能更新某個表的數(shù)據(jù),則可以通過“表”下拉列表框選擇表 2指定可更新的字段 在“字段名”列表框中列出了與更新有關(guān)的字段,在字段名左側(cè)有兩列標志,“鑰匙”表示關(guān)鍵字,“鉛筆”表示更新通過單擊相應(yīng)列可以改變相關(guān)的狀態(tài),默認可以更新所有非關(guān)鍵字字段,并且通過基本表的關(guān)鍵字完成更新,即Visual FoxPro用這些關(guān)鍵字字段來唯一標識那些已在視圖中修改過的基本表中的記錄建議不要改變關(guān)鍵字的狀態(tài),不要試圖通過視圖來更新基本表中的關(guān)鍵字字段值,如有必要,可以指定更新非關(guān)鍵字字段值 3檢查更新的合法性 如圖6-1所示,“SQL WHERE子句包括”框中的選項決定哪些字段包含在UPDATE或DELETE語句的WHERE子句中,Visual FoxPro正是利用這些語句將在視圖中修改或刪除的記錄發(fā)送到遠程數(shù)據(jù)源或基本表中,WHERE子句就是用來檢查自從提取記錄用于視圖中后,服務(wù)器上的數(shù)據(jù)是否已經(jīng)改變。 “SQL WHERE子句包括”框中各選項的含義如下。 (l)關(guān)鍵字段:當基本表中的關(guān)鍵字字段被改變時,更新失敗。 (2)關(guān)鍵字和可更新字段:當基本表中任何標記為可更新的字段被改變時,更新失敗。 (3)關(guān)鍵字和已修改字段:當在視圖中改變的任一字段的值在基本表中已被改變時,更新失敗。 (4)關(guān)鍵字和時間戳:當遠程表上記錄的時間戳在首次檢索之后被改變時,更新失敗。 4使用更新方式 “使用更新”框的選項決定當向基本表發(fā)送SQL更新時的更新方式。 (1)SQL DELETE然后INSERT:先用SQL DELETE命令刪除基本表中被更新的舊記錄,再用SQL INSERT命令向基本表中插入更新后的記錄。 (2)SQL UPDATE:使用SQL UPDATE命令更新基本表。
考點5 使用視圖
視圖建立后,不但可以用它來顯示和更新數(shù)據(jù),而且可以通過調(diào)整它的屬性來提高性能,它的使用類似于表。 1視圖操作 (1)在數(shù)據(jù)庫中使用USE命令打開或關(guān)閉視圖。 (2)在“瀏覽器”窗口中顯示或修改視圖中的記錄。 (3)使用SQL語句操作視圖。 (4)在文本框、表格控件、表單或報表中使用視圖作為數(shù)據(jù)源。 2使用視圖 視圖一經(jīng)建立就基本可以像基本表一樣使用,適用于基本表的命令基本都可以用于視圖。比如在視圖上也可以建立索引,此索引當然是臨時的,視圖一關(guān)閉,索引自動刪除,多工作區(qū)時也可以建立聯(lián)系等。但視圖不可以用MODIFY STRUCTURE命令修改結(jié)構(gòu)。因為視圖畢竟不是獨立存在的基本表,它是由基本表派生出來的,只能修改視圖的定義。
小提示: 查詢與視圖的區(qū)別是:查詢可以定義輸出去向,可以將查詢的結(jié)果靈活地應(yīng)用于表單、報表、圖形等各種場合,但是利用查詢不可以修改數(shù)據(jù);而利用視圖可以修改數(shù)據(jù),可以利用SQL將對視圖的修改發(fā)送到基本表,特別是對于遠程表的操作,利用視圖是非常有效的。
|