VFP課件-查詢與視圖_第1頁
VFP課件-查詢與視圖_第2頁
VFP課件-查詢與視圖_第3頁
VFP課件-查詢與視圖_第4頁
VFP課件-查詢與視圖_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學習要點1、查詢向導和查詢設計器的使用方法;2、單表查詢3、查詢設計器中各選項卡的功能和使用方法;4、本地視圖和遠程視圖;5、視圖向導和視圖設計器的使用方法;5、使用視圖。查詢與視圖 9/15/20221查詢與視圖 用查詢向導設計查詢 用查詢設計器設計查詢 創(chuàng)建視圖 數據庫視圖的操作 小 結 返回退出利用視圖更新數據 9/15/20222用查詢向導設計查詢設計單表查詢 返 回退 出9/15/20223查詢 查詢:是從指定的表或視圖中提取滿足條件的記錄,然后按照想得到的輸出類型定向輸出查詢結果。查詢的結果是以擴展名.QPR的文件存在磁盤上,是一種文本形式的文件。創(chuàng)建查詢的方法: 菜單或工具欄 C

2、REATE QUERY9/15/20224設計單表查詢 查詢向導可以引導用戶快速設計一個查詢。下面將示例使用查詢向導設計一個簡單的單表查詢:從GXGLXT數據庫的Student表中查詢系部代號為“04”且是99級的所有學生的信息。 操作過程如下:首先從“項目管理器”開始,選擇【數據】卡片中的“查詢”,然后單擊【新建】按鈕,則出現設計查詢的方式選擇對話框。 單擊9/15/20225 選擇GXGLXT數據庫中的Student表,并將該表中的所有字段添加到“選定字段”列表框中。 單擊查詢向導字段選取9/15/20226從中選擇Student.系部代號0在此輸入值4取默認值從中選擇“包含”在此輸入值9

3、8單擊單擊【預覽】按鈕可以顯示查詢結果。根據要求,設置條件如上圖。其中,雖然表中沒有年級字段,但可通過“學號”得到年級(學號的前二位為年級)。 查詢向導篩選記錄9/15/20227選擇排序字段單擊【添加】選擇排序方式調整排序順序移動按鈕單擊查詢向導記錄排序9/15/20228查詢向導限制記錄限制查詢結果中所包含的記錄數說明:查詢結果中所包含的記錄數限制共有四種方式:1、“部分類型”中選擇“所占記錄百分比”,“數量”中選擇“所有記錄”,查詢結果集中包含全部記錄。2、“部分類型”中選擇“所占記錄百分比”,“數量”中選擇“部分值”,再在“微調框”中設置數值,查詢結果集中包含指定數值百分數的記錄。 3

4、、“部分類型”中選擇“記錄號”,“數量”中選擇“所有記錄”,查詢結果集中包含全部記錄。4、 “部分類型”中選擇“記錄號”,“數量”中選擇“部分值”,再在“微調框”中設置數值,查詢結果集中包含指定數值的記錄數。單擊取默認值,查詢結果集中包含全部記錄9/15/20229查詢向導完成將查詢以文件的形式(.QPR)保存到一個指定的目錄中。 將查詢保存到一個指定的目錄中并運行該文件。 利用查詢向導設計的查詢功能有限,可以使用查詢設計器修改它。 單擊,可以查看查詢結果集中的全部數據打開幫助文件取消所建立的查詢返回到向導的上一步結束向導,完成查詢設計。單擊9/15/202210保存設計的查詢目錄選擇下拉列表

5、框文件名輸入文本框文件類型選擇下位列表框在“文件名輸入文本框”中輸入“Stud_query”后,單擊【保存】按鈕,結束查詢設計過程。在項目管理器中的“數據”選項中的查詢項下產生了一個查詢文件返回9/15/202211用查詢設計器設計查詢 確定各表間的聯(lián)接關系 退 出選定查詢字段 篩選記錄 查詢結果排序 建立分組查詢 雜項的設置 定向輸出查詢結果 運行查詢 返 回9/15/202212用查詢設計器設計查詢 前面學習了如何使用VFP中文版提供的查詢向導快速的設計一個查詢。但是在實際應用中,查詢向導設計的查詢往往不能滿足需求。這時還可以采用查詢設計器方便靈活的設計各種查詢,也可以先用查詢向導設計一個

6、簡單的查詢,再在查詢向導中打開并修改它。 將上一節(jié)建立的查詢,用“查詢設計器”進行修改,使用之包含盡可能少的空欄??梢酝ㄟ^以下所提供的多種方法之一來打開查詢設計器:從“項目管理器”啟動查詢設計器 1、在“項目管理器”中選擇“數據”選項卡,再選取“查詢”項,再單擊【新建】,進入查詢設計方式選擇對話框后單擊【新建查詢】,則啟動“查詢設計器”。 2、在“項目管理器”中選擇“數據”選項卡,從“查詢”項中選擇一個已存在的查詢文件,再單擊【修改】,也啟動“查詢設計器”。 9/15/202213從【文件】菜單啟動查詢設計器選擇系統(tǒng)菜單中的【文件】|【新建】命令,在“新建”對話框中選中“文件類型”下的“查詢”

7、單選項,再單擊右邊的【新建文件】按鈕,也可啟動“查詢設計器”;使用CREATE QUERY命令也可啟動“查詢設計器”現采用新建方式啟動“查詢設計器”9/15/202214查詢設計器下部分的窗口中有幾個選項卡,其含義簡介如下:(1)“字段”:用來選定包含在查詢結果中的字段;(2)“排序依據”:用來決定查詢結果輸出中記錄或行的排列順序;(3)“聯(lián)接”:用來確定各數據表或視圖之間的聯(lián)接關系;(4)“篩選”:相當于命令SET FILTER TO,利用過濾的方法查找一個特定的數據子集;(5)“分組依據”:所謂分組就是將一組類似的記錄壓縮成一個結果記錄,這樣就可以完成基于一組的計算。要設計一個查詢文件,首

8、先必須明確查詢的目的是什么,即想要得到哪些數據,并以什么方式存在;或者想要得到滿足某些條件的特定記錄,或者想要知道某些記錄的字段值組合成的表達式按某一方式輸出。明確了輸出的數據后,就可以開始設計查詢了,一般要通過以下幾個步驟進行:(1)啟動查詢設計器;(2)選擇出現在查詢結果中的字段;(3)設置選擇條件來查找可給出所需結果的記錄;(4)設置排序或分組選項來組織查詢結果;(5)選擇查詢結果的輸出類型:表、報表、瀏覽等;(5)運行查詢。 返回9/15/202215篩選記錄 選擇表中符合條件的一部分記錄而不是全部記錄是查詢的重要任務。此例要求從所有學生的信息中選出“學號”前四位為“9904”和“98

9、04”的所有男生,可以利用查詢設計器中的“篩選”選項卡?!昂Y選”選項卡可確定用于選擇記錄的字段和比較準則,以及輸入與該字段進行比較的示例值。 選擇篩選字段設置篩選條件輸入篩選實例設置條件邏輯是否區(qū)分大小寫 在字段名下的下拉選擇框中選擇“Student.性別”,在“條件”下的下拉選擇框中選擇“=”,在“實例”下的文本框中輸入.T.,則查詢所有的男生。返回9/15/202216在“邏輯”下的下拉選擇框中選擇“AND”,然后再在字段名下的下拉選擇框中選擇“Student.學號”,在“條件”下的下拉選擇框中選擇“In”,在“實例”下的文本框中輸入“9904,9804”(請注意中間的“,”是En狀態(tài)下輸

10、入的)。查詢結果排序 排序決定了查詢輸出結果中記錄或行的先后順序,我們可以通過“排序依據”選項卡設置查詢的排序次序,方法同在用查詢向導設計查詢介紹的一樣,首先從“選定字段”框中選定要使用的字段返回9/15/202217并把它們移到“排序條件”框中,然后利用“排序選項”(從中選擇升序或降序)來設置排序條件。本例中設置Student.學號,升序為排序依據。選擇一個字段單擊【添加】選定的字段列表 如果還需要添加用于排序的字段,可以重復以上的操作步驟。返回9/15/202218篩選條件練習對books表建立如下查詢,查詢結果包括所有字段1、查詢顯示“計算機”類書籍,kind字段名顯示為“類別”,查詢名

11、為1.qpr2、查詢書名中有“設計”2字的書籍,查詢名為2.qpr3、查詢書名以“計算機”開始的書籍,查詢名為3.qpr4、查詢顯示99年以后書籍,查詢名為4.qpr5、查詢顯示99年6月1日后出版的書籍,查詢名為5.qpr6、查詢已借出的書籍,查詢名為6.qpr7、查詢印數大于800并且價格大于30的書籍,查詢名為7.qpr建查詢8.qpr,查詢achievement.dbf表中系別為12的記錄,no字段第3、4位為系別。9/15/202219建立分組查詢 所謂分組就是將一組類似的記錄壓縮成一個結果記錄,這樣就可完成基于一組記錄的計算。分組在與某些累計功能聯(lián)合使用時效果最好,例如SUM(),

12、COUNT(),AVG()等。如果不想壓縮結果記錄,則不必設置它。在此例中不設分組查詢。如果想求各門課程的平均成績,可以用“課程名”進行分類查詢。選擇一個字段單擊【添加】選定的字段列表9/15/202220操作步驟如下:(1)在查詢設計器的“字段”選項卡中,單擊“函數和表達式”右邊的按鈕,出現“表達式”生成器;(2)在“數學”下拉式列表框中雙擊AVG(expN),在“來源于表”下拉框中選擇Grade表,在“字段”列表框中雙擊“課程成績”,單擊【確定】。即在“函數和表達式”框中自動生成了“AVG(Grade.課程成績)”這個表達式,用以計算Grade表中課程成績的平均值。(3)單擊“添加”按鈕,

13、該表達式被添加到“選定字段”列表框中。將來查詢結果中就會有一列數據求平均值;(4)單擊“分組依據”選項卡,進入“分組依據”窗口,在“可用字段”中選擇Grade.課程名稱,再單擊【添加】按鈕,該字段即成為分組字段。 運行查詢后的結果返回9/15/202221分組查詢練習建查詢9.qpr,查詢結果為achievement.dbf表中各學生的學號、grade總和,字段名顯示為“學號”、“總成績”9/15/202222雜項的設置 經過以上五個步驟,基本上已生成了一個比較全面的查詢。接下來還可以通過查詢設計器中的“雜項”選項卡做最后處理。單擊“雜項”選項卡,可以看到其間包括“無重復記錄”、“交叉數據表”

14、、“全部”、“百分比”這四個復選框和一個微調按鈕。選中“無重復記錄”復選框表示對于查詢結果如果存在重復記錄,則只取相同記錄中的一個。選中此項,在查詢生成器的SQL語句中會自動加上限定詞Distinct,表示去掉重復記錄。9/15/202223定向輸出查詢結果 查詢檢索的信息,可以輸出到不同的目的地,以用作不同的用途。如果沒有選定輸出的目的地,查詢結果將顯示在瀏覽窗口中。查詢輸出目的可以是瀏覽窗口、臨時表、表、圖形、屏幕、報表、標簽等。選擇結果的去向方法如下: 單擊“查詢設計器工具”中的【查詢去向】按鈕,或者從【查詢】菜單中選擇【查詢去向】,可看到如圖所示的“查詢去向”對話框。 對話框中的按鈕含

15、義如下: 9/15/202224 【瀏覽】:在瀏覽窗口中顯示查詢結果,這是查詢缺省設置; 【臨時表】:將查詢結果存儲在一個臨時只讀表中。多次查詢的結果可放在不同的表內。該表可用于瀏覽數據,制作報表等,直到用戶關閉它們;【表】:將查詢的結果保存在一個命名的表(.DBF )中,此時查詢的結果是真正的存放到磁盤上的,多次查詢的結果可放在不同的表內;【圖形】:使查詢結果可用于Microsoft Graph(包含在VFP5中的一個獨立的應用程序)中制作圖表;【屏幕】:在VFP主窗口或當前活動輸出窗口中顯示查詢結果;【報表】:將輸出送到一個報表文件(.FRX)中;【標簽】:將輸出送到一個標簽文件(.LBX

16、)中。 選定一個去向,按一定的步驟設置一些屬性,然后單擊【確定】按鈕,系統(tǒng)就將按意圖放置查詢結果。 假設本例將查詢結果保存到臨時表中,取臨時表名為“查詢1”。 返回9/15/202225運行查詢 在完成了查詢的設計工作并指定了結果輸出去向后,可通過以下五種方式之一運行查詢:在查詢設計器區(qū)域內單擊右鍵,在彈出菜單中選擇“運行查詢”;在“項目管理器”中選定查詢的名稱,然后選定“運行”按鈕;在“查詢”菜單中選擇“運行查詢”:在命令窗口中鍵入DO 查詢名.qpr。單擊系統(tǒng)常用菜單上的“運行”按鈕。 本例中按前述步驟設置后,單擊系統(tǒng)菜單上的“運行”按鈕運行查詢,并將查詢結果保存到臨時表“查詢1”中,然后

17、再在瀏覽窗口中單擊【顯示】|【瀏覽“查詢1”】,結果如右表。返回9/15/202226創(chuàng)建視圖 創(chuàng)建本地視圖 用已有的SQL SELECT語句創(chuàng)建視圖 返回退出9/15/202227視圖 是從一個或多個數據庫表中導出的“表”視圖中的數據是存儲在原來的數據庫表中視圖是一個“虛表”視圖依賴于某一數據庫而存在只有打開與視圖相關的數據庫才能創(chuàng)建和使用視圖視圖兼有“表”和“查詢”的特點視圖類型:本地視圖、遠程視圖創(chuàng)建視圖的方法: 菜單或工具欄 CREATE VIEW命令 使用SQL命令 CREATE VIEW AS 與查詢的區(qū)別:視圖設計器中有“更新條件”選項卡視圖設計器中沒有“查詢去向”問題9/15/

18、202228創(chuàng)建本地視圖 視圖可以通過向導和設計器兩種方法來創(chuàng)建。1、 利用向導創(chuàng)建本地視圖用本地視圖向導創(chuàng)建本地視圖,可采取以下方式:方式一:(1)在主窗口下打開【工具】菜單,選擇【向導】菜單命令。(2)再選擇【全部】菜單,出現【向導選取】對話框,如圖 單擊滑動按鈕選擇“本地視圖向導”單擊【確定】進入到“本地視圖向導步驟1字段選取”9/15/202229方式二:(1)在主窗口下打開【文件】菜單,選擇【新建】菜單命令。(2)選擇“視圖”,再單擊【向導】,將彈出【本地視圖向導】對話框。(3)然后按照向導屏幕上的指示操作。方式三:(1)在項目管理器中選定數據庫。(2)選定本地視圖,單擊【新建】按鈕

19、。(3)單擊【視圖向導】按鈕 (4)然后按照向導屏幕上的指示操作。方式四:(1)打開數據庫設計器,打開【數據庫】菜單。(2)選擇【新建本地視圖】,再單擊【視圖向導】按鈕。(3)然后按照向導屏幕上的指示操作。 9/15/202230本地視圖向導:步驟1字段選取說明:按照上述幾種方式,可以快速建立本地視圖,但要強調的是,在項目管理器中創(chuàng)建或使用視圖時,項目管理器會自動打開數據庫。如果要使用項目以外的表或視圖,則必須先打開數據庫或事先確認數據庫在作用范圍內。 本地視圖向導對話框如圖,可以看到,創(chuàng)建視圖大體要經過以下步驟:(1)字段選取。選擇數據庫,數據庫中的表和表中的字段。如果當前已經打開了一個數據

20、庫,則第一步的對話框中顯示的9/15/202231是創(chuàng)建當前數據庫的視圖,也可以選擇其它的數據庫。(2)關聯(lián)表。建立數據庫中表與表之間的關系。(3)包含記錄。指定包含表中的全部記錄還是僅匹配的記錄。(4)篩選記錄。選定符合條件的記錄。(5)排序記錄。為選定的記錄按照某一字段進行排序。 (5)限定記錄。定制顯示一定數量的記錄。(7)完成視圖。選擇保存視圖后瀏覽還是修改。 例:創(chuàng)建包含Grade表和Courses表的本地視圖“視圖1”。選擇表Grade單擊全部添加按鈕選擇Courses表單擊單個添加按鈕,添加課程名、學時數、學分數9/15/202232與設計多表查詢不相同的部分更新條件視圖的最大特

21、點在于能用視圖更新數據,這也是建立視圖與建立查詢的主要區(qū)別,也是視圖的重點所在。視圖設計器中的“更新條件”選項卡可以用來設置允許視圖更新表字段的條件。 9/15/202233“更新條件”選項卡選項包括如下內容:“表”:指定視圖所使用的哪些表可以修改。選擇這個下拉列表框中的選項,可以確定哪些表中的字段可以在“字段名”列表框中,以便設置更新條件。此列表中所顯示的表都包含了“字段”選項卡“選定字段”列表中的字段?!局刂藐P鍵字】:這個按鈕作用是從每個表中選擇主關鍵字字段作為視圖的關鍵字字段。每個主關鍵字字段是在“字段名”列表中的、在鑰匙符號下面打一個對鉤的字段,關鍵字字段可9/15/202234可用來

22、使視圖中的修改與表中的原始記錄相匹配。【全部更新】:可以從字段名文本框中看到一些字段前的鉛筆符號下打了一個對鉤,這表明這些字段可以更新。在這個按鈕中可以選擇除了關鍵字字段以外的所有字段來進行更新,并在“字段名”列表的鉛筆符號下打一個對鉤?!鞍l(fā)送SQL更新”:指定是否將視圖記錄中的修改傳送給原始表。如果選擇了這個復選框,將把在視圖中對記錄字段的修改返回到源表中。“字段名”列表框:顯示了從“表”列表框中所選的表中的字段、并用來輸出這些字段,不過這些字段都是可以更新的。在字段文本框中共有下列3種方式字段:關鍵字段(使用鑰匙符號作標記),指定該字段是否為關鍵字段??筛伦侄危ㄊ褂勉U筆符號作標記),指定

23、該字段是否為可更新字段。字段名,顯示可標志為關鍵字字段或可更新字段的輸出字段名。 9/15/202235 “SQL WHERE 子句包括”:“關鍵字段”:如果在原始表中有一個關鍵字字段被改變,設置WHERE子句來檢測沖突,對于由另一用戶對表中原始記錄的其他字段所做修改不進行比較。“關鍵字和可更新字段”:設置WHERE子句來檢測由某一用戶修改了任何可更新的字段的沖突?!瓣P鍵字和已修改字段”:如果從視圖首次檢索(默認)以后,關鍵字字段或原始表記錄的已修改字段中,某個字段做過修改,設置WHERE子句來檢測沖突?!瓣P鍵字段和時間戳”:如果自原始表記錄的時間戳首次檢索以后,它被修改過,設置WHERE子句

24、來檢測沖突。只有當遠程表有時間戳列時,此選項才有效?!笆褂酶隆保捍藛芜x按鈕組用于指定字段如何在后端服務器上進行更新?!癝QL DELETE然后INSERT”:指定先刪除原始表記錄后,再創(chuàng)建一個新的在視圖中被修改的記錄?!癝QL UPDATE”:指定用視圖字段中的內容來修改原始表中的字段。返回9/15/202236用已有的SQL SELECT語句創(chuàng)建視圖 同查詢一樣,可用SELECTSQL語言創(chuàng)建視圖。若用SELECTSQL建立視圖,則可用下列SELECTSQL語句(只要求看懂簡單的SELECTSQL語句): 格式:SELECT ALL | DISTINCT TOP nExpr PERCENT

25、 Alias. Select_Item AS Column_ Name , Alias. Select_Item AS Column_Name . FROM FORCE DatabaseName! Table AS Local_Alias INNER|LEFT OUTER| RIGHT OUTER |FULL OUTER JOINDatabaseName! Table AS Local_Alias ON JoinCondition INTO Destination|TO FILE ADDITIVE|TO PRINTER PROMPT|TO SCREEN PREFERENCE Preferenc

26、eName NOCONSOLE PLAIN NOWAIT WHERE JoinCondition .AND. JoinCondition . .AND.|.OR. FilterCondition .AND.|.OR. FilterCondition . GROUP BY GroupColumn , GroupColumn . HAVING FilterCondition UNION ALL SELECTCommand ORDER BY Order_Item ASC|DESC , Order_Item ASC|DESC .9/15/202237功能:從一個或多個表中檢索數據。參數描述:SELEC

27、T:用SELECT子句指定在查詢結果中包含的字段、常量和表達式。ALL:在查詢結果中包含所有的行(包括重復值)。它是系統(tǒng)的默認設置。DISTINCT:在查詢結果中刪除重復行。TOP nExpr PERCENT:在符合查詢條件的所有記錄中,選取指定數量或百分比的記錄。TOP子句必須與ORDER BY子句同時使用。ORDER BY子句指定按哪個字段排序,TOP子句根據此排序選定開始的nExp個 或nExp %的記錄??梢灾付ㄟx取132757條記錄。Alias.:限定匹配項的名稱。Select-Item指定的每一項在查詢結果中都生成一列,如果多個項具有相同的名稱,則應在這些項前加上表的別名和一個句點

28、號,以防止出現重復的列。Select_Item :指定包含在查詢中的一個項。一個項可以是:9/15/202238FROM子句中所包含的表中的字段名稱。一個常量,查詢結果中的每一行都出現這個常量值。一個表達式,可以是用戶自定義函數名。AS Column_Name:指定查詢結果中的列標題。當Select-Item是一個表達式或一個字段函數時,如果要給此列取一個有意義的名稱可用這個子句。它可以是一個表達式。FROM:列出所有從中檢索數據的表。如果沒有打開表,VFP會顯示“打開”對話框以便指定文件位置,表打開以后直到查詢結束才關閉。FORCE:如果包含了此子句,VFP在建立查詢時會嚴格按照在FROM子

29、句中申明的順序建立聯(lián)接,否則會試圖對查詢進行優(yōu)化。避免優(yōu)化過程,可能會加快查詢執(zhí)行的速度。DatabaseName!:當包含表的數據庫不是當前的數據庫時,此子句指定數據庫的名稱。如果數據庫不是當前數據庫,就必須指定包含表的數據庫名稱,注意其后應加上“!”號。Table AS Local_Alias:為Table中的表指定一個臨時名稱。9/15/202239如果指定了本地別名,那么在整個Select語句中都必須用這個別名代替表名。INNER JOIN:只有在其它表中包含對應記錄(一個或多個)的記錄才出現在查詢結果中。LEFT OUTER JOIN:在查詢結果中包含JOIN左側表中的所有記錄,以及

30、右側表中匹配的記錄。這是左聯(lián)接。RIGHT OUTER JOIN:在查詢結果中包含JOIN右側表中的所有記錄,以及左側表中匹配的記錄。這是右聯(lián)接。FULL OUTER JOIN:在查詢結果中包含JOIN兩側表中的所有記錄,這是完全聯(lián)接。DatabaseName!Table AS Local_Alias:指定和當前表建立聯(lián)接的表所在的數據庫及表名或本地表別名。ON JoinCondition:指定聯(lián)接條件。INTO Destination:指定在何處保存查詢結果。如果在同一個查詢中同時包含了INTO子句和TO子句,則TO子句不起作用。如果沒有包含INTO子句,查詢結果顯示在“瀏覽”窗口中。9/1

31、5/202240Destination可以是下列子句之一:ARRAY ArrayName:將查詢結果保存到數組中。如果查詢結果中不包含任何記錄,則不創(chuàng)建這個數組。CURSOR CursorName:將查詢結果保存到臨時表中。如果指定了一個已打開表的名稱,則VFP產生錯誤信息。執(zhí)行完SELECT語句后,臨時表仍然保持打開、活動,但只讀。一旦關閉臨時表,則自動刪除它。DBF TableName|TABLE TableName:將查詢結果保存到一個表中,如果指定的表已經打開,并且SET SAFETY設置為OFF,則VFP在不給出任何警告信息的情況下改寫該表。執(zhí)行完SELECT語句后,臨時表仍然保持打

32、開活動狀態(tài)。TO FILE ADDITIVE | TO PRINTER PROMPT | TO SCREEN:如果命令中包含了TO子句,但沒有包括INTO子句,則查詢結果定向輸出到名為的ASCII碼文件、打印機或主窗口。包含ADDITIVE子句使查詢結果追加到所指定的文本文件的內容后面。9/15/202241PREFERENCE PreferenceName:如果查詢結果送往瀏覽窗口,就可以使用該子句保存瀏覽窗口的屬性和選項以備后用。NOCONSOLE:不顯示送到打印機、文件、或VFP主窗口的查詢結果。PLAIN:防止列標題出現在顯示的查詢結果中。NOWAIT:打開瀏覽窗口并將結果輸出到這個窗

33、口后繼續(xù)程序的執(zhí)行。WHERE:告訴VFP只在查詢結果中包含一定的記錄。從多表檢索中查找數據時需要用到該子句。JoinCondition:指定一個字段,該字段聯(lián)接FROM子句中的表。如果查詢中包括不止一個表就應該為第一個表后的每一個表指定聯(lián)接條件。聯(lián)接多個查詢條件必須使用.AND.。每個聯(lián)接都是這樣的形式:FieldName1 Comparison FieldName2其中:FieldName1是一個表的字段名,FieldName2是另一個表的字段名。Comparison是下列的某一操作符:9/15/202242=、=、LIKE、,!=,#、=、=FilterCondition:指定包含在查詢

34、結果中的記錄必須滿足條件。篩選條件的數目沒有限制,只要將它們用.AND.或.OR.操作符連接起來即可。也可以使用操作符.NOT.對邏輯表達式取反,或使用EMPTY()函數檢查字段是否為空等。GROUP BY GroupColumn:按列的值對查詢結果進行分組。GroupColumn 可以是常規(guī)的表字段名,也可以是一個包含SQL字段函數的字段名,還可以是一個數值表達式指定查詢結果表中的列位置。HAVING FilterCondition:指定包含在查詢結果中的組必須滿足的條件。它應和GROUP BY GroupColumn一起使用。UNION ALL SELECTCommand:把一個SELEC

35、T語句的最后查詢結果同另一個SELECT語句最后的查詢結果組合起來。ALL防止UNION刪除組合結果中的重復行。ORDER BY Order_Item :根據列的數據對查詢結果進行排序。每個Order_Item都必須對應查詢結果中的一列。 9/15/202243用SELECTSQL命令完成上節(jié)的設計任務:SELECT Department.系部名稱, Classzc.班級名稱, Student.學號, ; Student.姓名, Course.課程名, Grade.課程成績; FROM gxglxt!department INNER JOIN gxglxt!classzc; INNER JOI

36、N gxglxt!student; INNER JOIN gxglxt!grade; INNER JOIN gxglxt!course ; ON Grade.課程代號 = Course.課程代號 ; ON Student.學號 = Grade.學號 ; ON Classzc.班級代號 = Student.班級代號 ; ON Department.系部代號 = Classzc.系部代號; WHERE Classzc.系部代號 = 04; .AND. Grade.開課學期 = 第1學期; ORDER BY Student.學號;INTO CURSOR 視圖19/15/202244 運行該SELEC

37、T語句后,選擇【顯示】|【瀏覽“視圖1”】屏幕顯示如圖:返回9/15/202245數據庫視圖的操作 使用視圖 退 出顯示視圖結構 重新命名視圖 刪除視圖 返 回9/15/202246使用視圖 建立視圖后,不但可以用它來顯示和更新數據,而且還可以通過調整它的屬性來提高性能。處理視圖類似處理表,可以:使用USE命令并指定視圖名來打開一個視圖。使用USE命令關閉視圖。在【瀏覽】窗口中顯示視圖。在【查看】窗口中顯示已打開的視圖的別名。將視圖作為數據源,供表單或表格控件使用。若要使用一個視圖,可采取如下方法:在項目管理器中先選擇一個數據庫,再選擇視圖名,然后單擊【瀏覽】按鈕,在【瀏覽】窗口中顯示視圖。使

38、用編程的方式訪問視圖。下面的代碼在【瀏覽】窗口中顯示存放在c:gxglxt目錄下gxglxt數據庫中的視圖1:open database c:gxglxtgxglxtuse 視圖19/15/202247browse 在使用一個視圖時,視圖將作為臨時表在自己的工作區(qū)打開。如果此視圖基于本地表,則VFP5會在另一個工作區(qū)同時打開基表??梢酝ㄟ^選擇系統(tǒng)菜單上的【窗口】|【數據工作期】打開“數據工作期”窗口。但有一個例外,如果視圖是基于遠程表,則基表將不在工作區(qū)中打開。而只在【查看】窗口中顯示遠程視圖的名稱。 返回9/15/202248有時用戶只想了解視圖的結構,而不關心視圖中的數據。這樣可以使用帶NODATA子句的USE命令來快速顯示視圖的結構。例如:open database c:gxglxtgxglxtuse 視圖1 nodata in 0Select 視圖1browse 通過運行上面的命令語句,將在【瀏覽】窗口中看到沒有記錄的視圖1。因為使用NODATA子句時,VFP5為視圖1創(chuàng)建一個永遠返回.F. 值的WHERE子句,而數據源上沒有記錄匹配WHERE子句的條件,所以沒有記錄被選擇。 顯示視圖結

溫馨提示

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

評論

0/150

提交評論