第四章 查詢和視圖_第1頁
第四章 查詢和視圖_第2頁
第四章 查詢和視圖_第3頁
第四章 查詢和視圖_第4頁
第四章 查詢和視圖_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第四章查詢和視圖4.1查詢概述4.2創(chuàng)建查詢4.3視圖概述4.4創(chuàng)建視圖1.概念數(shù)據(jù)查詢是指從指定的數(shù)據(jù)表或視圖中提取滿足條件的記錄,并按照指定的輸出類型輸出查詢結(jié)果的過程。一般是向一個(gè)或多個(gè)數(shù)據(jù)表或視圖發(fā)出檢索信息的請(qǐng)求,同時(shí)可使用一些條件提取特定的記錄。4.1查詢概述2.查詢方式

選擇查詢:單表查詢和多表查詢投影查詢3.查詢數(shù)據(jù)源

自由表、數(shù)據(jù)庫表或視圖。

1.查詢文件的創(chuàng)建方法查詢向?qū)Р樵冊(cè)O(shè)計(jì)器不論采用何種方法創(chuàng)建查詢,都會(huì)建立一個(gè)由SQLSELECT語句構(gòu)成的程序文件,其擴(kuò)展名為.qpr。2.查詢向?qū)?/p>

4.2創(chuàng)建查詢查詢向?qū)А?gt;步驟:交叉表向?qū)D形向?qū)ё侄芜x取篩選字段排序完成3.查詢?cè)O(shè)計(jì)器查詢?cè)O(shè)計(jì)器是VisualFoxPro提供的一個(gè)可視化創(chuàng)建和設(shè)計(jì)查詢文件的工具。打開查詢?cè)O(shè)計(jì)器方式:界面方式-菜單-項(xiàng)目管理器命令方式:CREATEQUERY<查詢文件名>|?4.查詢?cè)O(shè)計(jì)器界面數(shù)據(jù)顯示區(qū)字段選項(xiàng)卡數(shù)據(jù)顯示區(qū)數(shù)據(jù)顯示區(qū)主要用于存放查詢的數(shù)據(jù)源以及數(shù)據(jù)之間的連接?!白侄巍边x項(xiàng)卡該選項(xiàng)卡用于設(shè)置查詢的輸出列,它可以是數(shù)據(jù)源中的字段,也可以是表達(dá)式?!奥?lián)接”選項(xiàng)卡聯(lián)接選項(xiàng)卡用于指定聯(lián)接表達(dá)式,用它來匹配多個(gè)數(shù)據(jù)表或視圖中的記錄?!昂Y選”選項(xiàng)卡該選項(xiàng)卡用于設(shè)置篩選條件,通過篩選條件可以對(duì)數(shù)據(jù)源中的記錄進(jìn)行篩選?!芭判蛞罁?jù)”選項(xiàng)卡用于設(shè)置查詢結(jié)果中輸出記錄的排列順序?!胺纸M依據(jù)”選項(xiàng)卡該選項(xiàng)卡用于對(duì)數(shù)據(jù)源中的記錄按一個(gè)或多個(gè)字段進(jìn)行分組,可以對(duì)一組內(nèi)的記錄進(jìn)行統(tǒng)計(jì)計(jì)算,如統(tǒng)計(jì)記錄個(gè)數(shù)、求總和、求平均值等,其計(jì)算的結(jié)果將作為一條輸出記錄?!半s項(xiàng)”選項(xiàng)卡該選項(xiàng)卡用于設(shè)置查詢結(jié)果中是否允許重復(fù)記錄,或者指定輸出查詢結(jié)果的記錄范圍。例4.1查詢“30621061”班級(jí)的學(xué)生信息,輸出結(jié)果按出生日期降序排序。設(shè)計(jì)步驟:1)打開查詢?cè)O(shè)計(jì)器2)添加數(shù)據(jù)表student3)輸出student表的全部字段4)設(shè)置篩選條件:學(xué)號(hào)(stuno)前8位表示班級(jí)編號(hào)5)設(shè)置排序依據(jù):birthdate6)運(yùn)行查詢??偨Y(jié):單表查詢(基于單個(gè)數(shù)據(jù)源)5.保存和運(yùn)行查詢保存-工具欄上的“”-“文件”菜單中“保存”查詢保存后,將產(chǎn)生一個(gè)查詢文件,擴(kuò)展名為.qpr。運(yùn)行-工具欄上的“!”-“查詢”菜單中“運(yùn)行查詢”-在命令窗口中執(zhí)行命令:do查詢文件名.qpr6.查看SELECT-SQL語句查詢本質(zhì)上是定義了一條SQLSELECT語句。該語句可通過單擊“查詢”菜單中的“查看SQL”菜單項(xiàng)。瀏覽:在瀏覽窗口中顯示查詢結(jié)果。臨時(shí)表:將查詢結(jié)果輸出到一個(gè)臨時(shí)表中。表:將查詢結(jié)果保存到一個(gè)數(shù)據(jù)表文件(.DBF)中。圖形:使查詢結(jié)果可用于MicrosoftGraph應(yīng)用程序。屏幕:將查詢結(jié)果輸出到VisualFoxPro的主窗口或當(dāng)前活動(dòng)輸出窗口上。報(bào)表:將查詢結(jié)果保存到一個(gè)報(bào)表文件中。標(biāo)簽:將查詢結(jié)果保存到一個(gè)標(biāo)簽文件中。7.查詢?nèi)ハ蚶?.2

根據(jù)學(xué)生表(student)和成績表(sscore)查詢?cè)合荡?hào)為“11”和“12”學(xué)院的選課門數(shù)為5門以上的每位學(xué)生的學(xué)號(hào)、姓名、平均成績、總成績以及選課門數(shù),查詢結(jié)果按平均成績降序排序,平均成績相同時(shí)再按選課門數(shù)升序排序。1)添加數(shù)據(jù)表student和sscore,并建立表間關(guān)系設(shè)置數(shù)據(jù)源-數(shù)據(jù)表(自由表或數(shù)據(jù)庫表)-視圖設(shè)計(jì)步驟如下:設(shè)計(jì)步驟如下:建立表間關(guān)系-數(shù)據(jù)庫表之間的關(guān)系或臨時(shí)建立關(guān)系2)指定輸出列輸出字段輸出數(shù)據(jù)源中的字段,則從“可用字段”中選擇數(shù)據(jù)表的一個(gè)或多個(gè)字段。例如將“學(xué)生表”中的“stuno”和“stuname”字段添加到“選定字段”列表框中。在“函數(shù)和表達(dá)式”框或單擊“

”按鈕,在“表達(dá)式生成器”對(duì)話框中構(gòu)造表達(dá)式,并將其添加到選定字段中。在構(gòu)造表達(dá)式時(shí),其語法格式如下:

函數(shù)或表達(dá)式[as輸出項(xiàng)標(biāo)題]輸出列是表達(dá)式3)設(shè)置聯(lián)接條件該選項(xiàng)只有在實(shí)現(xiàn)多表查詢時(shí)使用。在VFP中提供了內(nèi)聯(lián)接、左聯(lián)接、右聯(lián)接和完全聯(lián)接等四種聯(lián)接類型。注意:如果兩個(gè)數(shù)據(jù)表是一對(duì)多關(guān)系,則一般“一”表(主表)的字段在左邊,“多”表(子表)的字段在右邊。4)設(shè)置篩選條件篩選條件由一個(gè)或多個(gè)邏輯表達(dá)式構(gòu)成,每一行就是一個(gè)邏輯表達(dá)式,表達(dá)式之間可以進(jìn)行AND和OR兩種邏輯運(yùn)算。運(yùn)算符:=、>、<、>=、<=、LIKE、ISNULL、Between和In。在構(gòu)造表達(dá)式時(shí),實(shí)例中的值應(yīng)為指定數(shù)據(jù)類型的格式:①如果輸入字符串,則要用字符串定界符。若字符串與字段名不相同,定界符可以省略。②如果輸入日期型常量,則要用日期定界符,如{^2015-08-20}。③如果輸入邏輯型常量,其常量值應(yīng)為.T.或.F.。5)設(shè)置排序依據(jù)排序順序有升序和降序,系統(tǒng)默認(rèn)為升序?!芭判驐l件”列表框中字段的順序決定了排序的優(yōu)先級(jí)。在本例中要求查詢結(jié)果先按平均成績降序排序,如果平均成績相同,再按選課門數(shù)升序排序。6)設(shè)置分組依據(jù)用于對(duì)數(shù)據(jù)源中的記錄按一個(gè)或多個(gè)字段進(jìn)行分組,可以對(duì)一組內(nèi)的記錄進(jìn)行統(tǒng)計(jì)計(jì)算,如統(tǒng)計(jì)記錄個(gè)數(shù)、求總和、求平均值等,其計(jì)算的結(jié)果將作為一條輸出記錄。在進(jìn)行分組統(tǒng)計(jì)時(shí),常常會(huì)用到一些系統(tǒng)函數(shù),用于數(shù)據(jù)統(tǒng)計(jì)。這些函數(shù)有COUNT()、SUM()、AVG()、MAX()和MIN()等。注意:滿足條件要結(jié)合分組使用。例如,選課門數(shù)大于等于5?!胺纸M依據(jù)”選項(xiàng)卡頁面上的“滿足條件”用于對(duì)分組統(tǒng)計(jì)結(jié)果再進(jìn)行篩選。7)設(shè)置雜項(xiàng)設(shè)置是否允許重復(fù)記錄指定查詢結(jié)果的記錄范圍-全部,系統(tǒng)默認(rèn)-前n個(gè)記錄-前n%個(gè)記錄注意:前n個(gè)記錄或前n%個(gè)記錄的查詢結(jié)果前提是必須有排序依據(jù)。1.概念4.3視圖概述視圖也是從一個(gè)或多個(gè)數(shù)據(jù)表或視圖中提取的一組記錄,視圖是一張?zhí)摫恚谴鎯?chǔ)在數(shù)據(jù)庫中的一張?zhí)摫?。?dāng)視圖定義好后,可以像數(shù)據(jù)表一樣瀏覽、查詢、修改,還可以作為查詢的數(shù)據(jù)源。如果數(shù)據(jù)源表的數(shù)據(jù)發(fā)生變化,則這種變化也可以自動(dòng)反映到視圖中。2.視圖與查詢區(qū)別

相同點(diǎn):都是從數(shù)據(jù)表中提取指定的記錄。不同點(diǎn):-視圖可更新源表的數(shù)據(jù),而查詢不能;-視圖存儲(chǔ)在數(shù)據(jù)庫中,而查詢以獨(dú)立的文件存儲(chǔ)。

1.視圖分類4.4創(chuàng)建視圖視圖分為兩類:本地視圖和遠(yuǎn)程視圖本地視圖查詢存儲(chǔ)在本地計(jì)算機(jī)上的表或視圖中的數(shù)據(jù)。遠(yuǎn)程視圖查詢存儲(chǔ)在遠(yuǎn)程計(jì)算機(jī)上數(shù)據(jù)源表中的數(shù)據(jù)。2.本地視圖創(chuàng)建方法:視圖設(shè)計(jì)器-打開數(shù)據(jù)庫-執(zhí)行“數(shù)據(jù)庫”菜單中的“新建本地視圖”菜單項(xiàng)。視圖設(shè)計(jì)器例4.3在數(shù)據(jù)庫stum中創(chuàng)建一個(gè)名為student_sscore_view的視圖。設(shè)計(jì)步驟:1)打開視圖設(shè)計(jì)器2)分別添加student、sscore和course三張數(shù)據(jù)表3)輸出學(xué)生表.stuno、學(xué)生表.stuname、課程表.ccode、課程表.cname、成績表.grade以及課程表.credits等六個(gè)字段。4)保存視圖5)查看視圖視圖是存儲(chǔ)在某個(gè)數(shù)據(jù)庫中,存儲(chǔ)的是視圖的定義,而不是數(shù)據(jù)。3.使用視圖當(dāng)視圖創(chuàng)建后,可以打開、瀏覽、重新修改或刪除視圖,還可以定制視圖。瀏覽視圖-在數(shù)據(jù)庫中選擇某個(gè)視圖,單擊“瀏覽”按鈕。-命令方式例4.4打開并瀏覽student_sscore_view視圖。OPENDATABASEstumUSEstudent_sscore_viewBROWSE視圖被打開時(shí),視圖所基于的數(shù)據(jù)源表也同時(shí)在其他工作區(qū)中被分別打開了。關(guān)閉視圖數(shù)據(jù)工作期中的“關(guān)閉”按鈕或使用USE命令關(guān)閉視圖。注意:視圖關(guān)閉后,自動(dòng)打開的基表并不隨視圖的關(guān)閉而關(guān)閉。修改和刪除視圖-在數(shù)據(jù)庫中選擇某個(gè)視圖,單擊“移去”按鈕-命令方式:deleteview例4.5修改和刪除student_sscore_view視圖。OPENDATABASEstumMODIFYVIEWstudent_sscore_viewDELETEVIEWstudent_sscore_view 用數(shù)據(jù)字典定制視圖視圖存在于數(shù)據(jù)庫中,與數(shù)據(jù)庫表一樣可以為視圖設(shè)置字段規(guī)則、信息、默認(rèn)值、注釋以及顯示格式等屬性。在視圖設(shè)計(jì)器的“字段”選項(xiàng)卡中選擇“屬性”

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論