電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a10_第1頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a10_第2頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a10_第3頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a10_第4頁
電子教案數(shù)據(jù)庫原理與應(yīng)用(第3版)a10_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第10章 視圖與查詢 學(xué)習(xí)要點1、 視圖設(shè)計器2、 遠(yuǎn)程視圖3、 視圖的更新4、 視圖的定制和使用5、 查詢的創(chuàng)建和運(yùn)行第10章 視圖與查詢10.1 創(chuàng)建本地視圖10.2 創(chuàng)建遠(yuǎn)程視圖10.3 用視圖更新數(shù)據(jù)10.4 定制和使用視圖10.5 創(chuàng)建和運(yùn)行查詢習(xí)題及參考答案第10章 視圖與查詢 在數(shù)據(jù)庫中,除了保存表之外,還可保存視圖。視圖是引用一個或多個表或其它視圖的虛擬表定義。視圖分為本地視圖和遠(yuǎn)程視圖。本地視圖訪問的是本地數(shù)據(jù)庫中的表或視圖,使用Visual FoxPro SQL語法從視圖或表中選擇信息;遠(yuǎn)程視圖訪問的是遠(yuǎn)程數(shù)據(jù)服務(wù)器中的表,遠(yuǎn)程視圖使用遠(yuǎn)程服務(wù)器的SQL語法從遠(yuǎn)程數(shù)據(jù)源表中

2、選擇信息。視圖與數(shù)據(jù)庫及表的區(qū)別如下: 視圖和數(shù)據(jù)庫:視圖是數(shù)據(jù)庫的一部分,訪問視圖前必須先打開所在的數(shù)據(jù)庫。 視圖和表:視圖是基于一個或多個基表的虛擬表,本身不含數(shù)據(jù),其數(shù)據(jù)是在打開視圖時臨時從基表中提取的。第10章 視圖與查詢 Visual FoxPro的查詢功能可以檢索存儲在表和視圖中的信息。查詢中可以指定檢索的字段和檢索記錄時的篩選條件,也可以根據(jù)需要對這些記錄排序和分組,查詢結(jié)果可以有多種輸出形式。 查詢只是從基表中提取數(shù)據(jù),不能對基表中的數(shù)據(jù)更新;使用視圖則既可以從基表中提取數(shù)據(jù),又可更新基表中的數(shù)據(jù)。10.1 創(chuàng)建本地視圖 創(chuàng)建本地視圖前,須先打開基表所在的數(shù)據(jù)庫。 創(chuàng)建本地視圖

3、有以下方法: 使用本地視圖向?qū)А?使用視圖設(shè)計器。 采用命令方式。10.1.1 視圖設(shè)計器 打開視圖設(shè)計器可以采用以下方法之一。 在項目管理器中選擇一個數(shù)據(jù)庫,選擇“本地視圖”,并單擊“新建”按鈕,然后單擊“新建視圖”按鈕。 在數(shù)據(jù)庫打開時,選擇“文件”菜單中的“新建”選項,然后選擇“視圖”并且單擊“新建文件”按鈕。 在數(shù)據(jù)庫打開時,使用命令Create SQL View或者M(jìn)odify View。10.1.1 視圖設(shè)計器圖10-1 “添加表或視圖”對話框10.1.1 視圖設(shè)計器圖10-2 “視圖設(shè)計器”窗口10.1.1 視圖設(shè)計器 單表視圖 當(dāng)在添加表或視圖對話框中選擇一個表或視圖后,就可基

4、于此表創(chuàng)建一個單表視圖。 選擇字段。使用視圖設(shè)計器窗口底部的“字段”選項卡,可以選取需要包含在視圖中的字段。10.1.1 視圖設(shè)計器10.1.1 視圖設(shè)計器10.1.1 視圖設(shè)計器 設(shè)置篩選條件。使用“篩選”選項卡。可以設(shè)定視圖從基表中檢索記錄時的篩選條件,從而檢索需要的記錄集合,而不是全部記錄。10.1.1 視圖設(shè)計器 設(shè)置排序依據(jù)。經(jīng)過以上兩項設(shè)置,此視圖能夠從基表中檢索出滿足條件的記錄集合。對此結(jié)果中的記錄,還可進(jìn)一步進(jìn)行排序和分組。10.1.1 視圖設(shè)計器 設(shè)置分組依據(jù)。 所謂分組就是將一組類似的記錄壓縮成一個結(jié)果記錄,這樣就可完成基于一組記錄的計算。10.1.1 視圖設(shè)計器 圖10-

5、8 “滿足條件”對話框10.1.1 視圖設(shè)計器設(shè)置其他項。10.1.1 視圖設(shè)計器 保存視圖。完成以上的設(shè)置之后(或設(shè)置過程中),要對視圖進(jìn)行保存。單擊工具欄中的“保存”按鈕或選擇“文件”菜單中的“保存”菜單項實現(xiàn)視圖保存,視圖未命名時系統(tǒng)會提示用戶給視圖命名。 預(yù)覽視圖。在視圖設(shè)置過程中,隨時可以預(yù)覽視圖的運(yùn)行結(jié)果。選擇“查詢”菜單中的“運(yùn)行查詢”或單擊工具欄中的“運(yùn)行”按鈕,可以看到視圖的記錄集合,如圖10-10所示。10.1.1 視圖設(shè)計器查看SQL語句。視圖是使用SQL語句從基表中提取數(shù)據(jù)的。 圖10-10 視圖預(yù)覽窗口 圖10-11 SQL語句顯示窗口10.1.1 視圖設(shè)計器 多表視

6、圖 當(dāng)一個視圖需要從多個表或視圖中獲取數(shù)據(jù)時,就要創(chuàng)建多表視圖。首先要將所用的表或視圖添加到視圖設(shè)計器中。 若“添加表或視圖”對話框未打開,則單擊“視圖設(shè)計器”工具欄中的“添加表”按鈕。 在“添加表或視圖”對話框中,先選擇“表”或“視圖”選項,再選擇需要添加的表或視圖,單擊“添加”按鈕。 創(chuàng)建或修改表之間的聯(lián)接條件。 單擊“添加表或視圖”對話框的“關(guān)閉”按鈕。10.1.2 命令方式創(chuàng)建本地視圖 在數(shù)據(jù)庫打開的情況下,直接使用帶AS子句的CREATE SQL VIEW命令就可定義本地視圖,定義的視圖自動加入到打開的數(shù)據(jù)庫中。 例10-1 以命令方式建立單表視圖 OPEN DATABASE tea

7、chersj CREATE SQL VIEW teacher1 AS ; SELECT 教師代碼,姓名 FROM teacher10.1.2 命令方式創(chuàng)建本地視圖 例10-2 以命令方式建立多表視圖 OPEN DATABASE teachersj CREATE SQL VIEW tea_sk AS; SELECT teacher.姓名,sk.課程名稱 FROM teacher,sk; WHERE teahcer.教師代碼=sk.教師代碼 例10-3 將一條SQL SELECT語句存入temp_sql變量,用它創(chuàng)建一個新視圖。 temp_sql=SELECT * FROM sk WHERE 總學(xué)

8、時60 CREATE SQL VIEW temp_view AS & temp_sql 視圖建立后,可用DBGETPROP()函數(shù)查看其屬性,用DBSETPROP()函數(shù)設(shè)置其屬性。10.2 創(chuàng)建遠(yuǎn)程視圖 使用遠(yuǎn)程視圖,無須將所有記錄下載到本地計算機(jī)上即可提取遠(yuǎn)程ODBC(Open DataBase Connectivity)服務(wù)器上的數(shù)據(jù)子集,且可以在本地機(jī)上操作這些選定的記錄,然后把更改或添加的值返回遠(yuǎn)程數(shù)據(jù)源中。 ODBC是Microsoft公司的數(shù)據(jù)庫接口標(biāo)準(zhǔn),應(yīng)用程序可以通過該接口訪問支持此接口標(biāo)準(zhǔn)的數(shù)據(jù)庫。目前,大多數(shù)數(shù)據(jù)庫系統(tǒng)都提供對ODBC的支持。10.2 創(chuàng)建遠(yuǎn)程視圖 遠(yuǎn)程視

9、圖有兩種連接遠(yuǎn)程數(shù)據(jù)源的方法。 直接訪問在機(jī)器上注冊的ODBC數(shù)據(jù)源。ODBC數(shù)據(jù)源指采用ODBC標(biāo)準(zhǔn)訪問的數(shù)據(jù)庫和訪問該數(shù)據(jù)庫所須的信息。例如,一個SQL Server數(shù)據(jù)庫由SQL Server數(shù)據(jù)庫、數(shù)據(jù)庫所在的服務(wù)器以及用以訪問服務(wù)器的網(wǎng)絡(luò)組成。在操作系統(tǒng)中,控制面板中的ODBC管理器可以用來創(chuàng)建ODBC數(shù)據(jù)源。 使用命名連接。命名連接指存儲在數(shù)據(jù)庫中的一個數(shù)據(jù)源的定義,可供創(chuàng)建遠(yuǎn)程視圖時按其名稱引用。當(dāng)激活一個遠(yuǎn)程視圖時,此視圖的連接成為通向遠(yuǎn)程數(shù)據(jù)源的管道。 10.2.1 創(chuàng)建命名連接 如果想為服務(wù)器創(chuàng)建定制的連接即命名連接,可以使用連接設(shè)計器,創(chuàng)建的連接將作為數(shù)據(jù)庫的一部分保存起

10、來。 打開連接設(shè)計器 在“項目管理器”中,從“數(shù)據(jù)庫”列表中選擇“連接”,然后單擊“新建”按鈕,如圖10-14所示。10.2.1 創(chuàng)建命名連接圖10-14 連接設(shè)計器10.2.1 創(chuàng)建命名連接 打開數(shù)據(jù)庫,然后在“命令”窗口中輸入CREATE CONNECTION連接名命令。 設(shè)置連接選項 指定數(shù)據(jù)源。 指定顯示ODBC登錄提示的時刻。 設(shè)置數(shù)據(jù)處理方式。 設(shè)置超時間隔。 單擊“驗證連接”按鈕,可對剛輸入了內(nèi)容的連接進(jìn)行檢查。 用“文件”菜單的“保存“選項,對此連接命名保存。10.2.2 創(chuàng)建遠(yuǎn)程視圖 在建立有效的數(shù)據(jù)源或命名連接后,就可使用項目管理器或以編程方式來創(chuàng)建遠(yuǎn)程視圖。遠(yuǎn)程視圖與本地

11、視圖類似,只是在定義它時需要加入連接名稱或數(shù)據(jù)源名稱。遠(yuǎn)程視圖的SQL語句使用相應(yīng)服務(wù)器上的語法,而非Visual FoxPro SQL語法。 遠(yuǎn)程視圖設(shè)計器 使用遠(yuǎn)程視圖設(shè)計器創(chuàng)建遠(yuǎn)程視圖的步驟有以下3步。 在“項目管理器”中選擇一個數(shù)據(jù)庫,選擇“遠(yuǎn)程視圖”命令,然后單擊“新建”按鈕;或者在“命令”窗口中鍵入CREATE SQL VIEW REMOTE命令,則打開“選擇連接或數(shù)據(jù)源”對話框,如圖10-15所示。10.2.2 創(chuàng)建遠(yuǎn)程視圖圖10-15 “選擇連接或數(shù)據(jù)源”對話框 在“選擇連接或數(shù)據(jù)源”對話框中,選擇可用的數(shù)據(jù)源或命名連接并且單擊“確定”按鈕。 如果需要的話,提示輸入用戶標(biāo)識和口

12、令。 一旦連接成功,將彈出選擇遠(yuǎn)程數(shù)據(jù)庫中表的對話框。選擇表后,將顯示視圖設(shè)計器。使用視圖設(shè)計器創(chuàng)建遠(yuǎn)程視圖與創(chuàng)建本地視圖的其他步驟相同。10.2.2 創(chuàng)建遠(yuǎn)程視圖 編程方式創(chuàng)建視圖 創(chuàng)建遠(yuǎn)程視圖的命令格式如下: CREATE SQL VIEW REMOTE CONNECTION SHARE CONNECTION AS 10.3 用視圖更新數(shù)據(jù) 本地或遠(yuǎn)程視圖都可用于更新數(shù)據(jù)。在“視圖設(shè)計器”中,選擇“更新條件”選項卡,如圖10-16所示,設(shè)置可更新的表和字段,也可控制數(shù)據(jù)的修改(更新、刪除、插入)方式。10.3 用視圖更新數(shù)據(jù)圖10-16 “更新條件”選項卡10.3.1 指定更新字段指定可更

13、新表指定關(guān)鍵字段指定可更新字段。設(shè)置“發(fā)送SQL 更新”選項10.3.2 控制更新沖突 若在一個多用戶環(huán)境中工作,服務(wù)器上的數(shù)據(jù)可被多個用戶同時訪問。為使Visual FoxPro能夠檢查視圖操作的數(shù)據(jù)在更新之前是否被別的用戶修改過,必須設(shè)置合理的沖突控制方式。 “關(guān)鍵字段”選項:當(dāng)表中的關(guān)鍵字段被改變時,使更新失敗。 “關(guān)鍵字和可更新字段”選項:當(dāng)源表中任何標(biāo)記為可更新的字段被改變時,使更新失敗。 “關(guān)鍵字和已修改字段”選項:當(dāng)在本地改變的任一字段在源表中已被改變時,使更新失改。 “關(guān)鍵字和時間戳”選項:當(dāng)遠(yuǎn)程表上記錄的時間戳在首次檢索之后被改變時,使更新失敗。10.3.3 控制更新方法 當(dāng)

14、記錄中的關(guān)鍵字更新時,利用“使用更新”區(qū)中的選項決定發(fā)送到服務(wù)器或源表中的更新語句使用什么SQL語句。 “SQL DELETE 然后 INSERT”選項:指定先刪除記錄,然后使用在視圖中輸入的新值取代原值(先發(fā)送SQL DELETE語句然后發(fā)INSERT語句)。 “SQL UPDTAE”選項:指定使用服務(wù)器支持的SQL UPDATE語句改變服務(wù)器上的記錄。10.4 定制和使用視圖 10.4.1 控制字段顯示和數(shù)據(jù)輸入 因為視圖是數(shù)據(jù)庫的一部分,所以可像數(shù)據(jù)庫表中設(shè)置字段屬性一樣,設(shè)置視圖中字段的屬性,例如可以分配標(biāo)題、輸入注釋、設(shè)置控制數(shù)據(jù)輸入的有效性規(guī)則等。 在“視圖設(shè)計器”的“字段”選項卡

15、中,從“選定字段”列表中選擇一個字段,并單擊“屬性”按鈕,則打開“視圖字段屬性”對話框,如圖10-17所示。10.4.1 控制字段顯示和數(shù)據(jù)輸入圖10-17 “視圖字段屬性”對話框10.4.1 控制字段顯示和數(shù)據(jù)輸入 在“字段有效性”框、“顯示”框和“匹配字段到類”框中,所設(shè)置的內(nèi)容與方法同數(shù)據(jù)庫表中字段的定義相同,在此不再重復(fù)。 在“數(shù)據(jù)匹配”框中,設(shè)置遠(yuǎn)程視圖中字段的數(shù)據(jù)類型與源表中數(shù)據(jù)類型的對應(yīng)關(guān)系。數(shù)據(jù)類型指定此字段可以包含的數(shù)據(jù)類型;寬度指定此字段可包含的字符個數(shù);小數(shù)位數(shù)(對于數(shù)值型數(shù)據(jù)類型)指定此字段可以包括的小數(shù)點右側(cè)的小數(shù)位數(shù)。 在“注釋”框中,設(shè)置遠(yuǎn)程視圖中字段注釋。10.

16、4.2 在視圖中添加表達(dá)式 在視圖中除可以用函數(shù)和表達(dá)式作為選定字段外,也可以在篩選條件中使用表達(dá)式。若要在視圖的篩選條件中添加表達(dá)式,先在“篩選”選項卡的“字段名”框中選擇“表達(dá)式”,如圖10- 18 所示,再在彈出的“表達(dá)式生成器”對話框中創(chuàng)建表達(dá)式,然后輸入篩選條件中的其他項。 當(dāng)視圖基于遠(yuǎn)程數(shù)據(jù)源時,在“表達(dá)式生成器”中選用的函數(shù)必須是遠(yuǎn)程服務(wù)器所支持的函數(shù)。Visual FoxPro不對構(gòu)造的表達(dá)式做語法分析,而是將它們直接發(fā)送到遠(yuǎn)程服務(wù)器上。10.4.2 在視圖中添加表達(dá)式圖10-18 篩選條件中的表達(dá)式10.4.3 創(chuàng)建參數(shù)化視圖 參數(shù)化視圖就是在視圖的SQL SELECT語句的

17、篩選條件中加入?yún)?shù),參數(shù)值可在運(yùn)行時傳遞,也可通過編程方式傳遞。使用參數(shù)化視圖可以避免為每取一部分記錄都單獨(dú)創(chuàng)建一個視圖的情況,也可用來限定視圖的作用范圍。參數(shù)化視圖僅下載那些符合WHERE子句中篩選條件的記錄,其中的篩選條件是根據(jù)所提供的參數(shù)值建立的。 若要創(chuàng)建參數(shù)化視圖,首先打開“視圖設(shè)計器”,然后在“篩選”選項卡中添加新的篩選條件或選擇已有的篩選條件,在“實例”框中輸入一個以“?”開頭的變量名作為參數(shù)。圖10-19所示創(chuàng)建了一個參數(shù)化視圖,這個視圖將對教師記錄進(jìn)行篩選,只有教師代碼與參數(shù)值(teaID)相匹配的記錄才能在視圖中出現(xiàn)。10.4.3 創(chuàng)建參數(shù)化視圖圖10- 19 參數(shù)化視圖1

18、0.4.4 使用視圖 視圖建立后,就可用它顯示和更新數(shù)據(jù)。視圖的使用類似于數(shù)據(jù)庫表,可以使用USE視圖名命令打開一個視圖,使用USE命令關(guān)閉視圖。在Browse窗口中,可以顯示視圖記錄和修改記錄。 下面的代碼在瀏覽窗口中顯示tea_view視圖。 OPEN DATABASE teachersj USE tea_view & 打開視圖 BROWSE10.4.4 使用視圖 一個視圖在使用時,將作為臨時表在自己的工作區(qū)中打開。如果此視圖基于本地表,則在Visual FoxPro的另一個工作區(qū)中同時打開基表。視圖的基表是指由SELECT-SQL語句訪問的表。在前面的示例中,打開視圖的同時,teache

19、r表也自動打開。 視圖中的數(shù)據(jù)是在打開時從基表中提取的。打開后,基表中數(shù)據(jù)的變化不能立即反映到視圖中,但可使用REQUERY(nWorkArea | cTableAlias)函數(shù)重新提取數(shù)據(jù),該函數(shù)的參數(shù)為視圖名或所在的工作區(qū)號。 10.4.5 視圖的優(yōu)點 1. 視圖提高了數(shù)據(jù)庫應(yīng)用的靈活性 2. 視圖減少了用戶對數(shù)據(jù)庫物理結(jié)構(gòu)的依賴 3. 視圖可支持網(wǎng)絡(luò)應(yīng)用10.5 創(chuàng)建和運(yùn)行查詢 除了直接使用SELECT語句檢索數(shù)據(jù)外,還可創(chuàng)建查詢實現(xiàn)數(shù)據(jù)檢索。一個查詢就是一個包含SELECT語句的文件。10.5.1 創(chuàng)建查詢 創(chuàng)建一個新的查詢時,先要打開相應(yīng)的數(shù)據(jù)庫,然后使用“查詢向?qū)А被颉安樵冊O(shè)計器”

20、創(chuàng)建查詢。“查詢向?qū)А钡氖褂帽容^簡單,在此不做介紹。下面介紹“查詢設(shè)計器”的使用方法。 “查詢設(shè)計器”建立查詢的步驟如下: 啟動“查詢設(shè)計器”,添加查詢所需要的表或視圖。 選擇想要出現(xiàn)在查詢結(jié)果中的字段。 設(shè)置篩選條件,篩選所需要的記錄。 設(shè)置排序或分組選項,組織查詢結(jié)果。 選擇查詢結(jié)果的輸出類型:表、報表、瀏覽等。 保存查詢,從而生成一個查詢文件(擴(kuò)展名為.qpr)。10.5.1 創(chuàng)建查詢 啟動“查詢設(shè)計器”有以下三種方法。 在“項目管理器”的“數(shù)據(jù)”選項卡中選擇“查詢”菜單命令,并且單擊“新建”按鈕,然后單擊“新建查詢”按鈕。 從“文件”菜單中選擇“新建”菜單命令,在“新建”對話框中選“查

21、詢”單選按鈕,然后單擊“新建文件”按鈕。 在“命令”窗口中輸入CREATE QUERY 查詢名命令。10.5.1 創(chuàng)建查詢圖10- 22 “查詢設(shè)計器”窗口10.5.2 運(yùn)行查詢 在完成了查詢設(shè)計后,可以指定查詢結(jié)果輸出目的地,并可以用“運(yùn)行”按鈕啟動該查詢的執(zhí)行,Visual FoxPro執(zhí)行“查詢設(shè)計器”產(chǎn)生的SQL SELECT語句,并把輸出結(jié)果送到指定的目的地。若尚未選定輸出目的地,結(jié)果將顯示在“瀏覽”窗口中。 運(yùn)行查詢的方法 在“項目管理器”窗口中選定查詢的名稱,然后單擊“運(yùn)行”按鈕。 在“命令”窗口中輸入命令:DO 查詢名。 在“查詢設(shè)計器”打開時,單擊工具欄中的“運(yùn)行”按鈕。10.5.2 運(yùn)行查詢指定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論