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

下載本文檔

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

文檔簡介

1、學(xué)習(xí)要點1、查詢向?qū)Ш筒樵冊O(shè)計器的使用方法;2、單表查詢3、查詢設(shè)計器中各選項卡的功能和使用方法;4、本地視圖和遠程視圖;5、視圖向?qū)Ш鸵晥D設(shè)計器的使用方法;5、使用視圖。查詢與視圖 第1頁,共56頁。8/3/20221Visual FoxPro 6.0程序設(shè)計查詢與視圖 用查詢向?qū)гO(shè)計查詢 用查詢設(shè)計器設(shè)計查詢 創(chuàng)建視圖 數(shù)據(jù)庫視圖的操作 小 結(jié) 返回退出利用視圖更新數(shù)據(jù) 第2頁,共56頁。8/3/20222Visual FoxPro 6.0程序設(shè)計用查詢向?qū)гO(shè)計查詢設(shè)計單表查詢 返 回退 出第3頁,共56頁。8/3/20223Visual FoxPro 6.0程序設(shè)計查詢 查詢:是從指定的

2、表或視圖中提取滿足條件的記錄,然后按照想得到的輸出類型定向輸出查詢結(jié)果。查詢的結(jié)果是以擴展名.QPR的文件存在磁盤上,是一種文本形式的文件。創(chuàng)建查詢的方法: 菜單或工具欄 CREATE QUERY第4頁,共56頁。8/3/20224Visual FoxPro 6.0程序設(shè)計設(shè)計單表查詢 查詢向?qū)Э梢砸龑?dǎo)用戶快速設(shè)計一個查詢。下面將示例使用查詢向?qū)гO(shè)計一個簡單的單表查詢:從GXGLXT數(shù)據(jù)庫的Student表中查詢系部代號為“04”且是99級的所有學(xué)生的信息。 操作過程如下:首先從“項目管理器”開始,選擇【數(shù)據(jù)】卡片中的“查詢”,然后單擊【新建】按鈕,則出現(xiàn)設(shè)計查詢的方式選擇對話框。 單擊第5頁

3、,共56頁。8/3/20225Visual FoxPro 6.0程序設(shè)計 選擇GXGLXT數(shù)據(jù)庫中的Student表,并將該表中的所有字段添加到“選定字段”列表框中。 單擊查詢向?qū)ё侄芜x取第6頁,共56頁。8/3/20226Visual FoxPro 6.0程序設(shè)計從中選擇Student.系部代號0在此輸入值4取默認(rèn)值從中選擇“包含”在此輸入值98單擊單擊【預(yù)覽】按鈕可以顯示查詢結(jié)果。根據(jù)要求,設(shè)置條件如上圖。其中,雖然表中沒有年級字段,但可通過“學(xué)號”得到年級(學(xué)號的前二位為年級)。 查詢向?qū)ШY選記錄第7頁,共56頁。8/3/20227Visual FoxPro 6.0程序設(shè)計選擇排序字段單

4、擊【添加】選擇排序方式調(diào)整排序順序移動按鈕單擊查詢向?qū)в涗浥判虻?頁,共56頁。8/3/20228Visual FoxPro 6.0程序設(shè)計查詢向?qū)拗朴涗浵拗撇樵兘Y(jié)果中所包含的記錄數(shù)說明:查詢結(jié)果中所包含的記錄數(shù)限制共有四種方式:1、“部分類型”中選擇“所占記錄百分比”,“數(shù)量”中選擇“所有記錄”,查詢結(jié)果集中包含全部記錄。2、“部分類型”中選擇“所占記錄百分比”,“數(shù)量”中選擇“部分值”,再在“微調(diào)框”中設(shè)置數(shù)值,查詢結(jié)果集中包含指定數(shù)值百分?jǐn)?shù)的記錄。 3、“部分類型”中選擇“記錄號”,“數(shù)量”中選擇“所有記錄”,查詢結(jié)果集中包含全部記錄。4、 “部分類型”中選擇“記錄號”,“數(shù)量”中選擇

5、“部分值”,再在“微調(diào)框”中設(shè)置數(shù)值,查詢結(jié)果集中包含指定數(shù)值的記錄數(shù)。單擊取默認(rèn)值,查詢結(jié)果集中包含全部記錄第9頁,共56頁。8/3/20229Visual FoxPro 6.0程序設(shè)計查詢向?qū)瓿蓪⒉樵円晕募男问剑?QPR)保存到一個指定的目錄中。 將查詢保存到一個指定的目錄中并運行該文件。 利用查詢向?qū)гO(shè)計的查詢功能有限,可以使用查詢設(shè)計器修改它。 單擊,可以查看查詢結(jié)果集中的全部數(shù)據(jù)打開幫助文件取消所建立的查詢返回到向?qū)У纳弦徊浇Y(jié)束向?qū)?,完成查詢設(shè)計。單擊第10頁,共56頁。8/3/202210Visual FoxPro 6.0程序設(shè)計保存設(shè)計的查詢目錄選擇下拉列表框文件名輸入文本框

6、文件類型選擇下位列表框在“文件名輸入文本框”中輸入“Stud_query”后,單擊【保存】按鈕,結(jié)束查詢設(shè)計過程。在項目管理器中的“數(shù)據(jù)”選項中的查詢項下產(chǎn)生了一個查詢文件返回第11頁,共56頁。8/3/202211Visual FoxPro 6.0程序設(shè)計用查詢設(shè)計器設(shè)計查詢 確定各表間的聯(lián)接關(guān)系 退 出選定查詢字段 篩選記錄 查詢結(jié)果排序 建立分組查詢 雜項的設(shè)置 定向輸出查詢結(jié)果 運行查詢 返 回第12頁,共56頁。8/3/202212Visual FoxPro 6.0程序設(shè)計用查詢設(shè)計器設(shè)計查詢 前面學(xué)習(xí)了如何使用VFP中文版提供的查詢向?qū)Э焖俚脑O(shè)計一個查詢。但是在實際應(yīng)用中,查詢向?qū)?/p>

7、設(shè)計的查詢往往不能滿足需求。這時還可以采用查詢設(shè)計器方便靈活的設(shè)計各種查詢,也可以先用查詢向?qū)гO(shè)計一個簡單的查詢,再在查詢向?qū)е写蜷_并修改它。 將上一節(jié)建立的查詢,用“查詢設(shè)計器”進行修改,使用之包含盡可能少的空欄??梢酝ㄟ^以下所提供的多種方法之一來打開查詢設(shè)計器:從“項目管理器”啟動查詢設(shè)計器 1、在“項目管理器”中選擇“數(shù)據(jù)”選項卡,再選取“查詢”項,再單擊【新建】,進入查詢設(shè)計方式選擇對話框后單擊【新建查詢】,則啟動“查詢設(shè)計器”。 2、在“項目管理器”中選擇“數(shù)據(jù)”選項卡,從“查詢”項中選擇一個已存在的查詢文件,再單擊【修改】,也啟動“查詢設(shè)計器”。 第13頁,共56頁。8/3/202

8、213Visual FoxPro 6.0程序設(shè)計從【文件】菜單啟動查詢設(shè)計器選擇系統(tǒng)菜單中的【文件】|【新建】命令,在“新建”對話框中選中“文件類型”下的“查詢”單選項,再單擊右邊的【新建文件】按鈕,也可啟動“查詢設(shè)計器”;使用CREATE QUERY命令也可啟動“查詢設(shè)計器”現(xiàn)采用新建方式啟動“查詢設(shè)計器”第14頁,共56頁。8/3/202214Visual FoxPro 6.0程序設(shè)計查詢設(shè)計器下部分的窗口中有幾個選項卡,其含義簡介如下:(1)“字段”:用來選定包含在查詢結(jié)果中的字段;(2)“排序依據(jù)”:用來決定查詢結(jié)果輸出中記錄或行的排列順序;(3)“聯(lián)接”:用來確定各數(shù)據(jù)表或視圖之間的

9、聯(lián)接關(guān)系;(4)“篩選”:相當(dāng)于命令SET FILTER TO,利用過濾的方法查找一個特定的數(shù)據(jù)子集;(5)“分組依據(jù)”:所謂分組就是將一組類似的記錄壓縮成一個結(jié)果記錄,這樣就可以完成基于一組的計算。要設(shè)計一個查詢文件,首先必須明確查詢的目的是什么,即想要得到哪些數(shù)據(jù),并以什么方式存在;或者想要得到滿足某些條件的特定記錄,或者想要知道某些記錄的字段值組合成的表達式按某一方式輸出。明確了輸出的數(shù)據(jù)后,就可以開始設(shè)計查詢了,一般要通過以下幾個步驟進行:(1)啟動查詢設(shè)計器;(2)選擇出現(xiàn)在查詢結(jié)果中的字段;(3)設(shè)置選擇條件來查找可給出所需結(jié)果的記錄;(4)設(shè)置排序或分組選項來組織查詢結(jié)果;(5)

10、選擇查詢結(jié)果的輸出類型:表、報表、瀏覽等;(5)運行查詢。 返回第15頁,共56頁。8/3/202215Visual FoxPro 6.0程序設(shè)計篩選記錄 選擇表中符合條件的一部分記錄而不是全部記錄是查詢的重要任務(wù)。此例要求從所有學(xué)生的信息中選出“學(xué)號”前四位為“9904”和“9804”的所有男生,可以利用查詢設(shè)計器中的“篩選”選項卡?!昂Y選”選項卡可確定用于選擇記錄的字段和比較準(zhǔn)則,以及輸入與該字段進行比較的示例值。 選擇篩選字段設(shè)置篩選條件輸入篩選實例設(shè)置條件邏輯是否區(qū)分大小寫 在字段名下的下拉選擇框中選擇“Student.性別”,在“條件”下的下拉選擇框中選擇“=”,在“實例”下的文本框

11、中輸入.T.,則查詢所有的男生。返回第16頁,共56頁。8/3/202216Visual FoxPro 6.0程序設(shè)計在“邏輯”下的下拉選擇框中選擇“AND”,然后再在字段名下的下拉選擇框中選擇“Student.學(xué)號”,在“條件”下的下拉選擇框中選擇“In”,在“實例”下的文本框中輸入“9904,9804”(請注意中間的“,”是En狀態(tài)下輸入的)。查詢結(jié)果排序 排序決定了查詢輸出結(jié)果中記錄或行的先后順序,我們可以通過“排序依據(jù)”選項卡設(shè)置查詢的排序次序,方法同在用查詢向?qū)гO(shè)計查詢介紹的一樣,首先從“選定字段”框中選定要使用的字段返回第17頁,共56頁。8/3/202217Visual FoxP

12、ro 6.0程序設(shè)計并把它們移到“排序條件”框中,然后利用“排序選項”(從中選擇升序或降序)來設(shè)置排序條件。本例中設(shè)置Student.學(xué)號,升序為排序依據(jù)。選擇一個字段單擊【添加】選定的字段列表 如果還需要添加用于排序的字段,可以重復(fù)以上的操作步驟。返回第18頁,共56頁。8/3/202218Visual FoxPro 6.0程序設(shè)計篩選條件練習(xí)對books表建立如下查詢,查詢結(jié)果包括所有字段1、查詢顯示“計算機”類書籍,kind字段名顯示為“類別”,查詢名為1.qpr2、查詢書名中有“設(shè)計”2字的書籍,查詢名為2.qpr3、查詢書名以“計算機”開始的書籍,查詢名為3.qpr4、查詢顯示99年

13、以后書籍,查詢名為4.qpr5、查詢顯示99年6月1日后出版的書籍,查詢名為5.qpr6、查詢已借出的書籍,查詢名為6.qpr7、查詢印數(shù)大于800并且價格大于30的書籍,查詢名為7.qpr建查詢8.qpr,查詢achievement.dbf表中系別為12的記錄,no字段第3、4位為系別。第19頁,共56頁。8/3/202219Visual FoxPro 6.0程序設(shè)計建立分組查詢 所謂分組就是將一組類似的記錄壓縮成一個結(jié)果記錄,這樣就可完成基于一組記錄的計算。分組在與某些累計功能聯(lián)合使用時效果最好,例如SUM(),COUNT(),AVG()等。如果不想壓縮結(jié)果記錄,則不必設(shè)置它。在此例中不設(shè)

14、分組查詢。如果想求各門課程的平均成績,可以用“課程名”進行分類查詢。選擇一個字段單擊【添加】選定的字段列表第20頁,共56頁。8/3/202220Visual FoxPro 6.0程序設(shè)計操作步驟如下:(1)在查詢設(shè)計器的“字段”選項卡中,單擊“函數(shù)和表達式”右邊的按鈕,出現(xiàn)“表達式”生成器;(2)在“數(shù)學(xué)”下拉式列表框中雙擊AVG(expN),在“來源于表”下拉框中選擇Grade表,在“字段”列表框中雙擊“課程成績”,單擊【確定】。即在“函數(shù)和表達式”框中自動生成了“AVG(Grade.課程成績)”這個表達式,用以計算Grade表中課程成績的平均值。(3)單擊“添加”按鈕,該表達式被添加到“

15、選定字段”列表框中。將來查詢結(jié)果中就會有一列數(shù)據(jù)求平均值;(4)單擊“分組依據(jù)”選項卡,進入“分組依據(jù)”窗口,在“可用字段”中選擇Grade.課程名稱,再單擊【添加】按鈕,該字段即成為分組字段。 運行查詢后的結(jié)果返回第21頁,共56頁。8/3/202221Visual FoxPro 6.0程序設(shè)計分組查詢練習(xí)建查詢9.qpr,查詢結(jié)果為achievement.dbf表中各學(xué)生的學(xué)號、grade總和,字段名顯示為“學(xué)號”、“總成績”第22頁,共56頁。8/3/202222Visual FoxPro 6.0程序設(shè)計雜項的設(shè)置 經(jīng)過以上五個步驟,基本上已生成了一個比較全面的查詢。接下來還可以通過查詢

16、設(shè)計器中的“雜項”選項卡做最后處理。單擊“雜項”選項卡,可以看到其間包括“無重復(fù)記錄”、“交叉數(shù)據(jù)表”、“全部”、“百分比”這四個復(fù)選框和一個微調(diào)按鈕。選中“無重復(fù)記錄”復(fù)選框表示對于查詢結(jié)果如果存在重復(fù)記錄,則只取相同記錄中的一個。選中此項,在查詢生成器的SQL語句中會自動加上限定詞Distinct,表示去掉重復(fù)記錄。第23頁,共56頁。8/3/202223Visual FoxPro 6.0程序設(shè)計定向輸出查詢結(jié)果 查詢檢索的信息,可以輸出到不同的目的地,以用作不同的用途。如果沒有選定輸出的目的地,查詢結(jié)果將顯示在瀏覽窗口中。查詢輸出目的可以是瀏覽窗口、臨時表、表、圖形、屏幕、報表、標(biāo)簽等。

17、選擇結(jié)果的去向方法如下: 單擊“查詢設(shè)計器工具”中的【查詢?nèi)ハ颉堪粹o,或者從【查詢】菜單中選擇【查詢?nèi)ハ颉?,可看到如圖所示的“查詢?nèi)ハ颉睂υ捒颉?對話框中的按鈕含義如下: 第24頁,共56頁。8/3/202224Visual FoxPro 6.0程序設(shè)計 【瀏覽】:在瀏覽窗口中顯示查詢結(jié)果,這是查詢?nèi)笔≡O(shè)置; 【臨時表】:將查詢結(jié)果存儲在一個臨時只讀表中。多次查詢的結(jié)果可放在不同的表內(nèi)。該表可用于瀏覽數(shù)據(jù),制作報表等,直到用戶關(guān)閉它們;【表】:將查詢的結(jié)果保存在一個命名的表(.DBF )中,此時查詢的結(jié)果是真正的存放到磁盤上的,多次查詢的結(jié)果可放在不同的表內(nèi);【圖形】:使查詢結(jié)果可用于Micr

18、osoft Graph(包含在VFP5中的一個獨立的應(yīng)用程序)中制作圖表;【屏幕】:在VFP主窗口或當(dāng)前活動輸出窗口中顯示查詢結(jié)果;【報表】:將輸出送到一個報表文件(.FRX)中;【標(biāo)簽】:將輸出送到一個標(biāo)簽文件(.LBX)中。 選定一個去向,按一定的步驟設(shè)置一些屬性,然后單擊【確定】按鈕,系統(tǒng)就將按意圖放置查詢結(jié)果。 假設(shè)本例將查詢結(jié)果保存到臨時表中,取臨時表名為“查詢1”。 返回第25頁,共56頁。8/3/202225Visual FoxPro 6.0程序設(shè)計運行查詢 在完成了查詢的設(shè)計工作并指定了結(jié)果輸出去向后,可通過以下五種方式之一運行查詢:在查詢設(shè)計器區(qū)域內(nèi)單擊右鍵,在彈出菜單中選擇

19、“運行查詢”;在“項目管理器”中選定查詢的名稱,然后選定“運行”按鈕;在“查詢”菜單中選擇“運行查詢”:在命令窗口中鍵入DO 查詢名.qpr。單擊系統(tǒng)常用菜單上的“運行”按鈕。 本例中按前述步驟設(shè)置后,單擊系統(tǒng)菜單上的“運行”按鈕運行查詢,并將查詢結(jié)果保存到臨時表“查詢1”中,然后再在瀏覽窗口中單擊【顯示】|【瀏覽“查詢1”】,結(jié)果如右表。返回第26頁,共56頁。8/3/202226Visual FoxPro 6.0程序設(shè)計創(chuàng)建視圖 創(chuàng)建本地視圖 用已有的SQL SELECT語句創(chuàng)建視圖 返回退出第27頁,共56頁。8/3/202227Visual FoxPro 6.0程序設(shè)計視圖 是從一個或

20、多個數(shù)據(jù)庫表中導(dǎo)出的“表”視圖中的數(shù)據(jù)是存儲在原來的數(shù)據(jù)庫表中視圖是一個“虛表”視圖依賴于某一數(shù)據(jù)庫而存在只有打開與視圖相關(guān)的數(shù)據(jù)庫才能創(chuàng)建和使用視圖視圖兼有“表”和“查詢”的特點視圖類型:本地視圖、遠程視圖創(chuàng)建視圖的方法: 菜單或工具欄 CREATE VIEW命令 使用SQL命令 CREATE VIEW AS 與查詢的區(qū)別:視圖設(shè)計器中有“更新條件”選項卡視圖設(shè)計器中沒有“查詢?nèi)ハ颉眴栴}第28頁,共56頁。8/3/202228Visual FoxPro 6.0程序設(shè)計創(chuàng)建本地視圖 視圖可以通過向?qū)Ш驮O(shè)計器兩種方法來創(chuàng)建。1、 利用向?qū)?chuàng)建本地視圖用本地視圖向?qū)?chuàng)建本地視圖,可采取以下方式:方

21、式一:(1)在主窗口下打開【工具】菜單,選擇【向?qū)А坎藛蚊?。?)再選擇【全部】菜單,出現(xiàn)【向?qū)нx取】對話框,如圖 單擊滑動按鈕選擇“本地視圖向?qū)А眴螕簟敬_定】進入到“本地視圖向?qū)Р襟E1字段選取”第29頁,共56頁。8/3/202229Visual FoxPro 6.0程序設(shè)計方式二:(1)在主窗口下打開【文件】菜單,選擇【新建】菜單命令。(2)選擇“視圖”,再單擊【向?qū)А?,將彈出【本地視圖向?qū)А繉υ捒?。?)然后按照向?qū)聊簧系闹甘静僮鳌7绞饺海?)在項目管理器中選定數(shù)據(jù)庫。(2)選定本地視圖,單擊【新建】按鈕。(3)單擊【視圖向?qū)А堪粹o (4)然后按照向?qū)聊簧系闹甘静僮?。方式四:?

22、)打開數(shù)據(jù)庫設(shè)計器,打開【數(shù)據(jù)庫】菜單。(2)選擇【新建本地視圖】,再單擊【視圖向?qū)А堪粹o。(3)然后按照向?qū)聊簧系闹甘静僮鳌?第30頁,共56頁。8/3/202230Visual FoxPro 6.0程序設(shè)計本地視圖向?qū)В翰襟E1字段選取說明:按照上述幾種方式,可以快速建立本地視圖,但要強調(diào)的是,在項目管理器中創(chuàng)建或使用視圖時,項目管理器會自動打開數(shù)據(jù)庫。如果要使用項目以外的表或視圖,則必須先打開數(shù)據(jù)庫或事先確認(rèn)數(shù)據(jù)庫在作用范圍內(nèi)。 本地視圖向?qū)υ捒蛉鐖D,可以看到,創(chuàng)建視圖大體要經(jīng)過以下步驟:(1)字段選取。選擇數(shù)據(jù)庫,數(shù)據(jù)庫中的表和表中的字段。如果當(dāng)前已經(jīng)打開了一個數(shù)據(jù)庫,則第一步的對話

23、框中顯示的第31頁,共56頁。8/3/202231Visual FoxPro 6.0程序設(shè)計是創(chuàng)建當(dāng)前數(shù)據(jù)庫的視圖,也可以選擇其它的數(shù)據(jù)庫。(2)關(guān)聯(lián)表。建立數(shù)據(jù)庫中表與表之間的關(guān)系。(3)包含記錄。指定包含表中的全部記錄還是僅匹配的記錄。(4)篩選記錄。選定符合條件的記錄。(5)排序記錄。為選定的記錄按照某一字段進行排序。 (5)限定記錄。定制顯示一定數(shù)量的記錄。(7)完成視圖。選擇保存視圖后瀏覽還是修改。 例:創(chuàng)建包含Grade表和Courses表的本地視圖“視圖1”。選擇表Grade單擊全部添加按鈕選擇Courses表單擊單個添加按鈕,添加課程名、學(xué)時數(shù)、學(xué)分?jǐn)?shù)第32頁,共56頁。8/3

24、/202232Visual FoxPro 6.0程序設(shè)計與設(shè)計多表查詢不相同的部分更新條件視圖的最大特點在于能用視圖更新數(shù)據(jù),這也是建立視圖與建立查詢的主要區(qū)別,也是視圖的重點所在。視圖設(shè)計器中的“更新條件”選項卡可以用來設(shè)置允許視圖更新表字段的條件。 第33頁,共56頁。8/3/202233Visual FoxPro 6.0程序設(shè)計“更新條件”選項卡選項包括如下內(nèi)容:“表”:指定視圖所使用的哪些表可以修改。選擇這個下拉列表框中的選項,可以確定哪些表中的字段可以在“字段名”列表框中,以便設(shè)置更新條件。此列表中所顯示的表都包含了“字段”選項卡“選定字段”列表中的字段?!局刂藐P(guān)鍵字】:這個按鈕作用

25、是從每個表中選擇主關(guān)鍵字字段作為視圖的關(guān)鍵字字段。每個主關(guān)鍵字字段是在“字段名”列表中的、在鑰匙符號下面打一個對鉤的字段,關(guān)鍵字字段可第34頁,共56頁。8/3/202234Visual FoxPro 6.0程序設(shè)計可用來使視圖中的修改與表中的原始記錄相匹配?!救扛隆浚嚎梢詮淖侄蚊谋究蛑锌吹揭恍┳侄吻暗你U筆符號下打了一個對鉤,這表明這些字段可以更新。在這個按鈕中可以選擇除了關(guān)鍵字字段以外的所有字段來進行更新,并在“字段名”列表的鉛筆符號下打一個對鉤?!鞍l(fā)送SQL更新”:指定是否將視圖記錄中的修改傳送給原始表。如果選擇了這個復(fù)選框,將把在視圖中對記錄字段的修改返回到源表中?!白侄蚊绷斜砜?/p>

26、:顯示了從“表”列表框中所選的表中的字段、并用來輸出這些字段,不過這些字段都是可以更新的。在字段文本框中共有下列3種方式字段:關(guān)鍵字段(使用鑰匙符號作標(biāo)記),指定該字段是否為關(guān)鍵字段。可更新字段(使用鉛筆符號作標(biāo)記),指定該字段是否為可更新字段。字段名,顯示可標(biāo)志為關(guān)鍵字字段或可更新字段的輸出字段名。 第35頁,共56頁。8/3/202235Visual FoxPro 6.0程序設(shè)計 “SQL WHERE 子句包括”:“關(guān)鍵字段”:如果在原始表中有一個關(guān)鍵字字段被改變,設(shè)置WHERE子句來檢測沖突,對于由另一用戶對表中原始記錄的其他字段所做修改不進行比較。“關(guān)鍵字和可更新字段”:設(shè)置WHERE

27、子句來檢測由某一用戶修改了任何可更新的字段的沖突?!瓣P(guān)鍵字和已修改字段”:如果從視圖首次檢索(默認(rèn))以后,關(guān)鍵字字段或原始表記錄的已修改字段中,某個字段做過修改,設(shè)置WHERE子句來檢測沖突?!瓣P(guān)鍵字段和時間戳”:如果自原始表記錄的時間戳首次檢索以后,它被修改過,設(shè)置WHERE子句來檢測沖突。只有當(dāng)遠程表有時間戳列時,此選項才有效?!笆褂酶隆保捍藛芜x按鈕組用于指定字段如何在后端服務(wù)器上進行更新?!癝QL DELETE然后INSERT”:指定先刪除原始表記錄后,再創(chuàng)建一個新的在視圖中被修改的記錄。“SQL UPDATE”:指定用視圖字段中的內(nèi)容來修改原始表中的字段。返回第36頁,共56頁。8/

28、3/202236Visual FoxPro 6.0程序設(shè)計用已有的SQL SELECT語句創(chuàng)建視圖 同查詢一樣,可用SELECTSQL語言創(chuàng)建視圖。若用SELECTSQL建立視圖,則可用下列SELECTSQL語句(只要求看懂簡單的SELECTSQL語句): 格式:SELECT ALL | DISTINCT TOP nExpr PERCENT Alias. Select_Item AS Column_ Name , Alias. Select_Item AS Column_Name . FROM FORCE DatabaseName! Table AS Local_Alias INNER|LEF

29、T OUTER| RIGHT OUTER |FULL OUTER JOINDatabaseName! Table AS Local_Alias ON JoinCondition INTO Destination|TO FILE FileName ADDITIVE|TO PRINTER PROMPT|TO SCREEN PREFERENCE PreferenceName NOCONSOLE PLAIN NOWAIT WHERE JoinCondition .AND. JoinCondition . .AND.|.OR. FilterCondition .AND.|.OR. FilterCondi

30、tion . GROUP BY GroupColumn , GroupColumn . HAVING FilterCondition UNION ALL SELECTCommand ORDER BY Order_Item ASC|DESC , Order_Item ASC|DESC .第37頁,共56頁。8/3/202237Visual FoxPro 6.0程序設(shè)計功能:從一個或多個表中檢索數(shù)據(jù)。參數(shù)描述:SELECT:用SELECT子句指定在查詢結(jié)果中包含的字段、常量和表達式。ALL:在查詢結(jié)果中包含所有的行(包括重復(fù)值)。它是系統(tǒng)的默認(rèn)設(shè)置。DISTINCT:在查詢結(jié)果中刪除重復(fù)行。TOP

31、 nExpr PERCENT:在符合查詢條件的所有記錄中,選取指定數(shù)量或百分比的記錄。TOP子句必須與ORDER BY子句同時使用。ORDER BY子句指定按哪個字段排序,TOP子句根據(jù)此排序選定開始的nExp個 或nExp %的記錄??梢灾付ㄟx取132757條記錄。Alias.:限定匹配項的名稱。Select-Item指定的每一項在查詢結(jié)果中都生成一列,如果多個項具有相同的名稱,則應(yīng)在這些項前加上表的別名和一個句點號,以防止出現(xiàn)重復(fù)的列。Select_Item :指定包含在查詢中的一個項。一個項可以是:第38頁,共56頁。8/3/202238Visual FoxPro 6.0程序設(shè)計FROM

32、子句中所包含的表中的字段名稱。一個常量,查詢結(jié)果中的每一行都出現(xiàn)這個常量值。一個表達式,可以是用戶自定義函數(shù)名。AS Column_Name:指定查詢結(jié)果中的列標(biāo)題。當(dāng)Select-Item是一個表達式或一個字段函數(shù)時,如果要給此列取一個有意義的名稱可用這個子句。它可以是一個表達式。FROM:列出所有從中檢索數(shù)據(jù)的表。如果沒有打開表,VFP會顯示“打開”對話框以便指定文件位置,表打開以后直到查詢結(jié)束才關(guān)閉。FORCE:如果包含了此子句,VFP在建立查詢時會嚴(yán)格按照在FROM子句中申明的順序建立聯(lián)接,否則會試圖對查詢進行優(yōu)化。避免優(yōu)化過程,可能會加快查詢執(zhí)行的速度。DatabaseName!:當(dāng)

33、包含表的數(shù)據(jù)庫不是當(dāng)前的數(shù)據(jù)庫時,此子句指定數(shù)據(jù)庫的名稱。如果數(shù)據(jù)庫不是當(dāng)前數(shù)據(jù)庫,就必須指定包含表的數(shù)據(jù)庫名稱,注意其后應(yīng)加上“!”號。Table AS Local_Alias:為Table中的表指定一個臨時名稱。第39頁,共56頁。8/3/202239Visual FoxPro 6.0程序設(shè)計如果指定了本地別名,那么在整個Select語句中都必須用這個別名代替表名。INNER JOIN:只有在其它表中包含對應(yīng)記錄(一個或多個)的記錄才出現(xiàn)在查詢結(jié)果中。LEFT OUTER JOIN:在查詢結(jié)果中包含JOIN左側(cè)表中的所有記錄,以及右側(cè)表中匹配的記錄。這是左聯(lián)接。RIGHT OUTER JO

34、IN:在查詢結(jié)果中包含JOIN右側(cè)表中的所有記錄,以及左側(cè)表中匹配的記錄。這是右聯(lián)接。FULL OUTER JOIN:在查詢結(jié)果中包含JOIN兩側(cè)表中的所有記錄,這是完全聯(lián)接。DatabaseName!Table AS Local_Alias:指定和當(dāng)前表建立聯(lián)接的表所在的數(shù)據(jù)庫及表名或本地表別名。ON JoinCondition:指定聯(lián)接條件。INTO Destination:指定在何處保存查詢結(jié)果。如果在同一個查詢中同時包含了INTO子句和TO子句,則TO子句不起作用。如果沒有包含INTO子句,查詢結(jié)果顯示在“瀏覽”窗口中。第40頁,共56頁。8/3/202240Visual FoxPro

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

36、開活動狀態(tài)。TO FILE FileName ADDITIVE | TO PRINTER PROMPT | TO SCREEN:如果命令中包含了TO子句,但沒有包括INTO子句,則查詢結(jié)果定向輸出到名為FileName的ASCII碼文件、打印機或主窗口。包含ADDITIVE子句使查詢結(jié)果追加到所指定的文本文件的內(nèi)容后面。第41頁,共56頁。8/3/202241Visual FoxPro 6.0程序設(shè)計PREFERENCE PreferenceName:如果查詢結(jié)果送往瀏覽窗口,就可以使用該子句保存瀏覽窗口的屬性和選項以備后用。NOCONSOLE:不顯示送到打印機、文件、或VFP主窗口的查詢結(jié)果

37、。PLAIN:防止列標(biāo)題出現(xiàn)在顯示的查詢結(jié)果中。NOWAIT:打開瀏覽窗口并將結(jié)果輸出到這個窗口后繼續(xù)程序的執(zhí)行。WHERE:告訴VFP只在查詢結(jié)果中包含一定的記錄。從多表檢索中查找數(shù)據(jù)時需要用到該子句。JoinCondition:指定一個字段,該字段聯(lián)接FROM子句中的表。如果查詢中包括不止一個表就應(yīng)該為第一個表后的每一個表指定聯(lián)接條件。聯(lián)接多個查詢條件必須使用.AND.。每個聯(lián)接都是這樣的形式:FieldName1 Comparison FieldName2其中:FieldName1是一個表的字段名,F(xiàn)ieldName2是另一個表的字段名。Comparison是下列的某一操作符:第42頁,

38、共56頁。8/3/202242Visual FoxPro 6.0程序設(shè)計=、=、LIKE、,!=,#、=、=FilterCondition:指定包含在查詢結(jié)果中的記錄必須滿足條件。篩選條件的數(shù)目沒有限制,只要將它們用.AND.或.OR.操作符連接起來即可。也可以使用操作符.NOT.對邏輯表達式取反,或使用EMPTY()函數(shù)檢查字段是否為空等。GROUP BY GroupColumn:按列的值對查詢結(jié)果進行分組。GroupColumn 可以是常規(guī)的表字段名,也可以是一個包含SQL字段函數(shù)的字段名,還可以是一個數(shù)值表達式指定查詢結(jié)果表中的列位置。HAVING FilterCondition:指定包

39、含在查詢結(jié)果中的組必須滿足的條件。它應(yīng)和GROUP BY GroupColumn一起使用。UNION ALL SELECTCommand:把一個SELECT語句的最后查詢結(jié)果同另一個SELECT語句最后的查詢結(jié)果組合起來。ALL防止UNION刪除組合結(jié)果中的重復(fù)行。ORDER BY Order_Item :根據(jù)列的數(shù)據(jù)對查詢結(jié)果進行排序。每個Order_Item都必須對應(yīng)查詢結(jié)果中的一列。 第43頁,共56頁。8/3/202243Visual FoxPro 6.0程序設(shè)計用SELECTSQL命令完成上節(jié)的設(shè)計任務(wù):SELECT Department.系部名稱, Classzc.班級名稱, St

40、udent.學(xué)號, ; Student.姓名, Course.課程名, Grade.課程成績; FROM gxglxt!department INNER JOIN gxglxt!classzc; INNER JOIN gxglxt!student; INNER JOIN gxglxt!grade; INNER JOIN gxglxt!course ; ON Grade.課程代號 = Course.課程代號 ; ON Student.學(xué)號 = Grade.學(xué)號 ; ON Classzc.班級代號 = Student.班級代號 ; ON Department.系部代號 = Classzc.系部代號

41、; WHERE Classzc.系部代號 = 04; .AND. Grade.開課學(xué)期 = 第1學(xué)期; ORDER BY Student.學(xué)號;INTO CURSOR 視圖1第44頁,共56頁。8/3/202244Visual FoxPro 6.0程序設(shè)計 運行該SELECT語句后,選擇【顯示】|【瀏覽“視圖1”】屏幕顯示如圖:返回第45頁,共56頁。8/3/202245Visual FoxPro 6.0程序設(shè)計數(shù)據(jù)庫視圖的操作 使用視圖 退 出顯示視圖結(jié)構(gòu) 重新命名視圖 刪除視圖 返 回第46頁,共56頁。8/3/202246Visual FoxPro 6.0程序設(shè)計使用視圖 建立視圖后,不

42、但可以用它來顯示和更新數(shù)據(jù),而且還可以通過調(diào)整它的屬性來提高性能。處理視圖類似處理表,可以:使用USE命令并指定視圖名來打開一個視圖。使用USE命令關(guān)閉視圖。在【瀏覽】窗口中顯示視圖。在【查看】窗口中顯示已打開的視圖的別名。將視圖作為數(shù)據(jù)源,供表單或表格控件使用。若要使用一個視圖,可采取如下方法:在項目管理器中先選擇一個數(shù)據(jù)庫,再選擇視圖名,然后單擊【瀏覽】按鈕,在【瀏覽】窗口中顯示視圖。使用編程的方式訪問視圖。下面的代碼在【瀏覽】窗口中顯示存放在c:gxglxt目錄下gxglxt數(shù)據(jù)庫中的視圖1:open database c:gxglxtgxglxtuse 視圖1第47頁,共56頁。8/3

43、/202247Visual FoxPro 6.0程序設(shè)計browse 在使用一個視圖時,視圖將作為臨時表在自己的工作區(qū)打開。如果此視圖基于本地表,則VFP5會在另一個工作區(qū)同時打開基表??梢酝ㄟ^選擇系統(tǒng)菜單上的【窗口】|【數(shù)據(jù)工作期】打開“數(shù)據(jù)工作期”窗口。但有一個例外,如果視圖是基于遠程表,則基表將不在工作區(qū)中打開。而只在【查看】窗口中顯示遠程視圖的名稱。 返回第48頁,共56頁。8/3/202248Visual FoxPro 6.0程序設(shè)計有時用戶只想了解視圖的結(jié)構(gòu),而不關(guān)心視圖中的數(shù)據(jù)。這樣可以使用帶NODATA子句的USE命令來快速顯示視圖的結(jié)構(gòu)。例如:open database c:gxglxtgxglxtuse 視圖1 nodata in 0Select 視圖1browse 通過運行上面的命令語句,將在【瀏覽】窗口中看到?jīng)]有記錄的視圖1。因為使用NODATA子句時,VFP5為視圖1創(chuàng)建一個永遠返回.F. 值的WHERE子句,而數(shù)據(jù)源上沒有記錄匹配WHERE子句的條件,所以沒有記錄被選擇。 顯示視圖結(jié)構(gòu)返回第49頁,共56頁。8/3/202249Visual FoxPro 6.0程序設(shè)計重新命名視圖 建立一個視圖以后,還可以為其重新命名視

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論