第3章查詢與統(tǒng)計(jì)_第1頁(yè)
第3章查詢與統(tǒng)計(jì)_第2頁(yè)
第3章查詢與統(tǒng)計(jì)_第3頁(yè)
第3章查詢與統(tǒng)計(jì)_第4頁(yè)
第3章查詢與統(tǒng)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3講查詢與統(tǒng)計(jì)主要內(nèi)容:索引查詢統(tǒng)計(jì)數(shù)據(jù)庫(kù)表及其完整性視圖

查詢與統(tǒng)計(jì)是數(shù)據(jù)庫(kù)應(yīng)用的主要內(nèi)容,索引是查詢和統(tǒng)計(jì)中的重要概念。SQL是國(guó)際標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)語(yǔ)言,需要重點(diǎn)掌握。1一.索引關(guān)鍵知識(shí)點(diǎn)索引是什么?有何用?VFP中有哪些索引類型?如何建立和使用索引?如何更新和刪除索引?P77學(xué)習(xí)建議深刻理解索引的概念重點(diǎn)掌握索引的建立和使用21.索引是什么?有何用?在日常生活中我們會(huì)經(jīng)常遇到索引。例如圖書(shū)目錄、詞典索引等。如果把數(shù)據(jù)庫(kù)表比作一本書(shū),則表的索引就如書(shū)的目錄一樣,它實(shí)際上就是記錄的關(guān)鍵字與其相應(yīng)地址的對(duì)應(yīng)表。例如,當(dāng)我們要在本書(shū)中查找有關(guān)“查詢命令”的內(nèi)容時(shí),應(yīng)該先通過(guò)目錄找到“查詢命令”所對(duì)應(yīng)的頁(yè)碼,然后從該頁(yè)碼中找出所要的信息。借助索引,人們會(huì)很快地找到需要的東西。索引實(shí)際上是一種排序,但是它不改變數(shù)據(jù)表中數(shù)據(jù)的物理順序,而是另外建立一個(gè)記錄號(hào)列表。它指明由某一字段的值的大小決定的記錄排列的順序。表一旦按索引表達(dá)式建立索引后,就產(chǎn)生了一個(gè)相應(yīng)的索引文件,一旦表和相關(guān)的索引文件被打開(kāi),則對(duì)表操作時(shí),記錄的順序按索引表達(dá)式的值的邏輯順序顯示和操作。VFP可以為一個(gè)表建立多個(gè)索引,每一個(gè)索引確定了一種表記錄的邏輯順序。32.VFP中有哪些索引類型?按擴(kuò)展名分類單索引文件,擴(kuò)展名為.IDX復(fù)合索引文件,擴(kuò)展名為

.CDX結(jié)構(gòu)復(fù)合索引文件:其主名與表的主名相同。常用非結(jié)構(gòu)復(fù)合索引文件:不常用按功能分類主索引:不允許關(guān)鍵字重復(fù)值。候選索引:不允許關(guān)鍵字重復(fù)值。唯一索引:允許關(guān)鍵字重復(fù)值,但輸出無(wú)重復(fù)值。普通索引:允許關(guān)鍵字重復(fù)值,且輸出可出現(xiàn)重復(fù)值。43.如何建立和使用索引?索引的建立表設(shè)計(jì)器命令方式

INDEXON<索引關(guān)鍵字>TAG<索引標(biāo)識(shí)名>[FOR<條件>][ASCENDING|DESCENDING][CANDIDATE]索引的使用SETORDERTO[<數(shù)值表達(dá)式>|[TAG]<索引標(biāo)識(shí)>[ASCENDING|DESCENDING]]5二.查詢關(guān)鍵知識(shí)點(diǎn)建立數(shù)據(jù)庫(kù)的目的是什么?——

查詢傳統(tǒng)的查詢命令多工作區(qū)查詢SQL查詢用【查詢?cè)O(shè)計(jì)器】建立查詢學(xué)習(xí)建議本節(jié)涉及的概念新,內(nèi)容多理解工作區(qū)的概念,掌握多工作區(qū)查詢的方法——

編程有用重點(diǎn)掌握SQL查詢——為學(xué)習(xí)更高級(jí)的數(shù)據(jù)庫(kù)語(yǔ)言打好基礎(chǔ)注意課堂講解的例題61.傳統(tǒng)的查詢方法順序查詢LOCATEFOR<條件>[<范圍>][WHILE<條件>]CONTINUE索引查詢SEEK<表達(dá)式>LOCATE查詢是搜索滿足條件的所有記錄嗎?LOCATE命令中<范圍>子句缺省時(shí)表示什么?SEEK命令中<表達(dá)式>常用的是什么類型?檢驗(yàn)上述命令執(zhí)行過(guò)程的相關(guān)函數(shù)有哪些?72.多工作區(qū)查詢(1)VFP的工作區(qū)(2)表的關(guān)聯(lián)查詢關(guān)聯(lián)的概念用數(shù)據(jù)工作期建立關(guān)聯(lián)用命令建立關(guān)聯(lián)8(1)VFP的工作區(qū)工作區(qū)用來(lái)干什么?P80VFP有多少工作區(qū)?VFP的工作區(qū)號(hào):1~32767工作區(qū)1~10→

A~J(工作區(qū)別名)表也有別名:VFP自動(dòng)使用文件名作為默認(rèn)表別名,也可指定。工作區(qū)如何使用?SELECT<工作區(qū)號(hào)>∣<別名>&&指定要打開(kāi)表的工作區(qū)號(hào)SELECT0&&選定當(dāng)前尚未使用的最小號(hào)工作區(qū)SELECT()&&返回當(dāng)前工作區(qū)號(hào)別名.字段名【例3-7】通過(guò)多區(qū)操作從部門(mén)代碼查出部門(mén)名9(2)表的關(guān)聯(lián)查詢關(guān)聯(lián)的概念父表與子表:P84圖3.6表之間的關(guān)系:多對(duì)一、一對(duì)多(VFP能處理)

多對(duì)多(需分解,如何分解?——見(jiàn)P349)用數(shù)據(jù)工作期建立關(guān)聯(lián)【例3-9】其中BROWSE命令的格式及用法詳見(jiàn)P146用命令建立關(guān)聯(lián)【例3-10】注意工作區(qū)命令的使用技巧103.SQL查詢(1)何謂SQL,有何特點(diǎn)?(2)SQL的功能有哪些?(3)如何用SQL進(jìn)行數(shù)據(jù)庫(kù)查詢?(4)實(shí)例分析——基于問(wèn)題的案例教學(xué)11(1)何謂SQL,有何特點(diǎn)?SQL(StructureQueryLanguage)是關(guān)系數(shù)據(jù)庫(kù)查詢語(yǔ)言的國(guó)際標(biāo)準(zhǔn),目前幾乎所有的RDBMS都支持SQL。SQL只有為數(shù)不多的幾條命令,但功能強(qiáng)大。SQL語(yǔ)言非常簡(jiǎn)潔,語(yǔ)法非常簡(jiǎn)單,很接近英語(yǔ)自然語(yǔ)言,因此容易學(xué)習(xí)與掌握。SQL是一種高度非過(guò)程化的語(yǔ)言。不必一步步告訴計(jì)算機(jī)“如何”去做,只需要描述清楚要“做什么”,系統(tǒng)就能自動(dòng)完成全部工作。SQL既可直接使用,也可嵌入到高級(jí)語(yǔ)言中使用。12(2)SQL的功能有哪些?

SQL雖然是查詢語(yǔ)言,但它集數(shù)據(jù)定義、查詢、操縱和控制四種功能于一體,可完成數(shù)據(jù)庫(kù)活動(dòng)中的全部工作。SQL功能相應(yīng)命令動(dòng)詞數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE、DROP、ALTER數(shù)據(jù)操縱INSERT、UPDATE、DELETE數(shù)據(jù)控制GRANT、REVOKE13(3)如何用SQL進(jìn)行數(shù)據(jù)庫(kù)查詢?格式:SELECT<目的列表達(dá)式>FROM<表名1>[,<表名2>]…[WHERE<條件表達(dá)式>][GROUPBY<列名表達(dá)式>[HAVING<條件表達(dá)式>]][ORDERBY<關(guān)鍵字表達(dá)式>]功能:根據(jù)WHERE子句的條件,從FROM子句指定的<表名>中找出滿足條件的元組,再按SELECT子句中的目的<列表達(dá)式>,選出元組中的屬性值形成結(jié)果表。如果有GROUPBY子句,則結(jié)果按<列名表達(dá)式>的值進(jìn)行分組顯示;如果帶HAVING短語(yǔ),則只顯示滿足條件的組。如果有ORDERBY子句,則結(jié)果按<關(guān)鍵字表達(dá)式>值的升序或降序排列。14(4)實(shí)例分析SB.DBFBMDM.DBFDX.DBFZZ.DBF

在關(guān)系模型中,文件存放兩類數(shù)據(jù):①實(shí)體本身的數(shù)據(jù);②實(shí)體之間聯(lián)系的數(shù)據(jù)15實(shí)例1~3

查詢SB表的內(nèi)容查詢?cè)O(shè)備的編號(hào)、名稱和部門(mén)名查詢大修過(guò)的設(shè)備的編號(hào)、名稱和部門(mén)名SELECT*FROMSBSELECT編號(hào),SB.名稱,BMDM.名稱AS部門(mén)名;FROMSB,BMDM;WHERESB.部門(mén)=BMDM.代碼SELECTDX.編號(hào),SB.名稱,BMDM.名稱AS部門(mén)名;FROMSB,DX,BMDM;WHERESB.部門(mén)=BMDM.代碼ANDDX.編號(hào)=SB.編號(hào)16實(shí)例4~6

將SB的記錄按部門(mén)升序排列,部門(mén)相同時(shí)按價(jià)格降序排列查詢價(jià)格低于20000元的設(shè)備名稱、啟用日期與部門(mén),并按啟用日期升序排列查詢每一設(shè)備的增值金額SELECT編號(hào),名稱,部門(mén),價(jià)格FROMSB;ORDERBY部門(mén),價(jià)格DESCSELECT名稱,啟用日期,部門(mén)FROMSB;WHERE價(jià)格<20000;ORDERBY啟用日期SELECT編號(hào),SUM(增值)FROMZZGROUPBY編號(hào)17實(shí)例7

7.試匯總設(shè)備的大修費(fèi)用,要求:(1)SB.編號(hào)頭3位小于038。(2)顯示設(shè)備名稱與大修設(shè)備費(fèi)用小計(jì)。(3)顯示結(jié)果按大修費(fèi)用小計(jì)降序排列。SELECTsb.名稱,SUM(dx.費(fèi)用);FROMsb,dx;WHEREsb.編號(hào)=dx.編號(hào)ANDLEFT(sb.編號(hào),3)<“038”;GROUPBYdx.編號(hào);

ORDERBY2DESC

18實(shí)例8

8.設(shè)銷售管理數(shù)據(jù)庫(kù)中有3個(gè)表,它們的結(jié)構(gòu)如下:

商品(商品號(hào)C(6),品名C(18),單價(jià)N(8,2))部門(mén)(部門(mén)號(hào)C(6),部門(mén)名稱C(18),部門(mén)經(jīng)理C(8),電話C(12))銷售(部門(mén)號(hào)C(6),商品號(hào)C(6),數(shù)量N(9,3),金額N(8,2))(1)查詢“家電部”中銷售金額在6000元以上的商品信息。(2)查詢各部門(mén)的銷售記錄中的平均數(shù)量、平均金額及銷售總數(shù)量。SELECT品名,部門(mén)名稱,單價(jià),金額;FROM商品,部門(mén),銷售;WHERE部門(mén)名稱=“家電部”AND金額>6000AND;商品.商品號(hào)=銷售.商品號(hào)AND部門(mén).部門(mén)號(hào)=銷售.部門(mén)號(hào)SELECT部門(mén)號(hào),AVG(數(shù)量),AVG(金額),SUM(數(shù)量);FROM銷售;GROUPBY部門(mén)號(hào)19實(shí)例9

9.設(shè)某大型工程項(xiàng)目有下列關(guān)系模式:供應(yīng)商(供應(yīng)商號(hào),供應(yīng)商名,城市)零件(零件代號(hào),零件名,顏色,重量)工程(工程編號(hào),工程名,城市)供應(yīng)(供應(yīng)商號(hào),零件代號(hào),工程編號(hào),零件數(shù)量)(1)查詢?yōu)楣こ叹幪?hào)J1提供零件的供應(yīng)商的信息(2)查詢所在城市為武漢的所有工程的細(xì)節(jié)(3)查詢?yōu)樗诔鞘袨槲靼驳墓こ烫峁┝慵墓?yīng)商的代號(hào)(1)SELECT供應(yīng)商.供應(yīng)商號(hào),供應(yīng)商.供應(yīng)商名,供應(yīng)商.城市;

FROM供應(yīng)商,供應(yīng);

WHERE供應(yīng)商.供應(yīng)商號(hào)=供應(yīng).供應(yīng)商號(hào)AND工程編號(hào)=“J1”(3)SELECT供應(yīng)商號(hào)FROM工程,供應(yīng);

WHERE工程.工程編號(hào)=供應(yīng).工程編號(hào)AND城市=“西安”(2)SELECT*FROM工程WHERE城市=“武漢”20實(shí)例10

10.有如下3個(gè)關(guān)系模式:學(xué)生(學(xué)號(hào),姓名,性別,專業(yè),出生日期)

教師(教師編號(hào),姓名,所在部門(mén),職稱)

授課(教師編號(hào),學(xué)號(hào),課程編號(hào),課程名稱,教材,學(xué)分,成績(jī))

(1)查找學(xué)習(xí)“數(shù)學(xué)”課程且成績(jī)不及格的學(xué)生學(xué)號(hào)和任課教師。(2)查找學(xué)習(xí)“英語(yǔ)”課程的“計(jì)算機(jī)”專業(yè)學(xué)生的學(xué)號(hào)、姓名和成績(jī)。(3)查找教師“李文”所教過(guò)的學(xué)生中成績(jī)?yōu)?0分以上(包括90分)的學(xué)生學(xué)號(hào),姓名和專業(yè)。(1)SELECT學(xué)生.學(xué)號(hào),教師.姓名FROM教師,授課;

WHERE課程名稱=“數(shù)學(xué)”AND成績(jī)<60AND教師.教師編號(hào)=授課.教師編號(hào)(3)SELECT學(xué)生.學(xué)號(hào),學(xué)生.姓名,專業(yè)FROM學(xué)生,授課,教師;

WHERE學(xué)生.學(xué)號(hào)=授課.學(xué)號(hào)AND授課.教師編號(hào)=教師.教師編號(hào);AND成績(jī)>90AND教師.姓名=“李文”

(2)SELECT學(xué)生學(xué)號(hào),姓名,成績(jī)FROM學(xué)生,授課;

WHERE學(xué)生.學(xué)號(hào)=授課.學(xué)號(hào)AND課程名稱=“英語(yǔ)”AND專業(yè)=“計(jì)算機(jī)”214.用查詢?cè)O(shè)計(jì)器建立查詢(1)查詢?cè)O(shè)計(jì)器的界面組成P99(2)用查詢?cè)O(shè)計(jì)器建立查詢【例3-22】——課堂練習(xí)P96【例3-23】——上機(jī)實(shí)習(xí)P101(3)查詢結(jié)果的圖形輸出【例3-24】——課堂練習(xí)P105查詢結(jié)果還有哪些輸出方式?在程序和表單中能否使用查詢?22三.統(tǒng)計(jì)COUNT[TO<內(nèi)存變量>]

[<范圍>][FOR<條件>][WHILE<條件>]SUM[<數(shù)值型表達(dá)式>][TO<內(nèi)存變量>∣ARRAY<數(shù)組>]

[<范圍>][FOR<條件>][WHILE<條件>]AVERAGE[<數(shù)值型表達(dá)式>][TO<內(nèi)存變量>∣ARRAY<數(shù)組>]

[<范圍>][FOR<條件>][WHILE<條件>]CALCULATE[<表達(dá)式表>][TO<內(nèi)存變量>∣ARRAY<數(shù)組>]

[<范圍>][FOR<條件>][WHILE<條件>]TOTALTO<文件名>ON<關(guān)鍵字>[FIELDS<數(shù)值型字段表>]

[<范圍>][FOR<條件>][WHILE<條件>]注意命令格式的異同點(diǎn),以便理解和記憶。注意缺省狀態(tài)23【課堂練習(xí)】(1)統(tǒng)計(jì)英語(yǔ)優(yōu)、良、中、差的人數(shù)。(2)分別求男女生語(yǔ)文和數(shù)學(xué)的總分。(3)計(jì)算所有學(xué)生各科成績(jī)的總分和平均分,并存入庫(kù)文件中。(4)按性別對(duì)數(shù)學(xué)和英語(yǔ)兩科進(jìn)行分類匯總,并顯示匯總結(jié)果。XSCJ.DBF24【命令序列】(1)USExscjCOUNTFOR英語(yǔ)>=85TON1COUNTFOR英語(yǔ)>=75AND英語(yǔ)<85TON2COUNTFOR英語(yǔ)>=60AND英語(yǔ)<75TON3COUNTFOR英語(yǔ)<60TON4?N1,N2,N3,N4(2)SUM語(yǔ)文,數(shù)學(xué)TOYW1,SX1FOR性別="男"SUM語(yǔ)文,數(shù)學(xué)TOYW2,SX2FOR性別="女"?"男生的語(yǔ)文和數(shù)學(xué)總分分別是:",YW1,SX1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論