第4章_創(chuàng)建和使用查詢_第1頁(yè)
第4章_創(chuàng)建和使用查詢_第2頁(yè)
第4章_創(chuàng)建和使用查詢_第3頁(yè)
第4章_創(chuàng)建和使用查詢_第4頁(yè)
第4章_創(chuàng)建和使用查詢_第5頁(yè)
已閱讀5頁(yè),還剩77頁(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)介

1、北京理工大學(xué):姜增如北京理工大學(xué):姜增如查詢的定義和類(lèi)型查詢的定義和類(lèi)型選擇查詢選擇查詢創(chuàng)建交叉表查詢創(chuàng)建交叉表查詢創(chuàng)建參數(shù)查詢創(chuàng)建參數(shù)查詢創(chuàng)建操作查詢創(chuàng)建操作查詢?cè)诓樵冎羞M(jìn)行計(jì)算在查詢中進(jìn)行計(jì)算創(chuàng)建創(chuàng)建SQL查詢查詢主講內(nèi)容主講內(nèi)容 查詢就是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查找。查詢就是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查找。查詢可以對(duì)數(shù)據(jù)庫(kù)中一個(gè)表或多個(gè)表的數(shù)據(jù)進(jìn)行瀏覽、查詢可以對(duì)數(shù)據(jù)庫(kù)中一個(gè)表或多個(gè)表的數(shù)據(jù)進(jìn)行瀏覽、篩選、排序、檢索、統(tǒng)計(jì)和加工等操作。篩選、排序、檢索、統(tǒng)計(jì)和加工等操作。建立一個(gè)查詢后,可以將它看作是一個(gè)臨時(shí)表,稱為建立一個(gè)查詢后,可以將它看作是一個(gè)臨時(shí)表,稱為動(dòng)態(tài)的數(shù)據(jù)集。動(dòng)態(tài)的數(shù)據(jù)集。 查詢的

2、數(shù)據(jù)來(lái)源是表或其他查詢。每次使用查詢查詢的數(shù)據(jù)來(lái)源是表或其他查詢。每次使用查詢時(shí),都是根據(jù)查詢條件從數(shù)據(jù)源中創(chuàng)建動(dòng)態(tài)的記錄集時(shí),都是根據(jù)查詢條件從數(shù)據(jù)源中創(chuàng)建動(dòng)態(tài)的記錄集合,可以節(jié)約存儲(chǔ)空間。合,可以節(jié)約存儲(chǔ)空間。一、查詢的定義和類(lèi)型一、查詢的定義和類(lèi)型1 1)根據(jù)用戶的選擇生成動(dòng)態(tài)的數(shù)據(jù)集。對(duì)數(shù)據(jù)進(jìn)行統(tǒng))根據(jù)用戶的選擇生成動(dòng)態(tài)的數(shù)據(jù)集。對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、排序、計(jì)算和匯總。計(jì)、排序、計(jì)算和匯總。2 2)設(shè)置查詢參數(shù),形成交互式的查詢方式。)設(shè)置查詢參數(shù),形成交互式的查詢方式。3 3)使用交叉表查詢,進(jìn)行分組匯總。)使用交叉表查詢,進(jìn)行分組匯總。4 4)使用操作查詢對(duì)數(shù)據(jù)表進(jìn)行追加、更新、刪除操作

3、。)使用操作查詢對(duì)數(shù)據(jù)表進(jìn)行追加、更新、刪除操作。5 5)查詢可作為其他查詢、窗體和報(bào)表的數(shù)據(jù)源。)查詢可作為其他查詢、窗體和報(bào)表的數(shù)據(jù)源。查詢類(lèi)型主要有選擇查詢、交叉表查詢、參數(shù)查詢、查詢類(lèi)型主要有選擇查詢、交叉表查詢、參數(shù)查詢、操作查詢和操作查詢和SQL查詢。查詢。建立查詢主要有三種方法:建立查詢主要有三種方法: (1) 利用查詢向?qū)Ю貌樵兿驅(qū)?(2) 利用查詢?cè)O(shè)計(jì)視圖利用查詢?cè)O(shè)計(jì)視圖 (3) 使用使用SQL查詢語(yǔ)句查詢語(yǔ)句由查詢向?qū)Ш褪褂貌樵冊(cè)O(shè)計(jì)視圖建立的查詢實(shí)質(zhì)是由查詢向?qū)Ш褪褂貌樵冊(cè)O(shè)計(jì)視圖建立的查詢實(shí)質(zhì)是用用SQL語(yǔ)句編寫(xiě)的查詢命令。語(yǔ)句編寫(xiě)的查詢命令。 4、查詢?cè)O(shè)計(jì)視圖類(lèi)型、查詢

4、設(shè)計(jì)視圖類(lèi)型1)選擇)選擇【創(chuàng)建創(chuàng)建】下的下的“查詢?cè)O(shè)計(jì)查詢?cè)O(shè)計(jì)”選擇表,如圖選擇表,如圖:2)建立數(shù)據(jù)表)建立數(shù)據(jù)表視圖視圖在查詢?cè)O(shè)計(jì)視圖中,添加表,選擇需要查詢的字段,在查詢?cè)O(shè)計(jì)視圖中,添加表,選擇需要查詢的字段,再?gòu)脑購(gòu)摹耙晥D視圖”菜單下選擇菜單下選擇“數(shù)據(jù)表視圖數(shù)據(jù)表視圖”,如圖:,如圖:3)SQL視圖視圖在查詢?cè)O(shè)計(jì)視圖中,可直接從在查詢?cè)O(shè)計(jì)視圖中,可直接從“視圖視圖”菜單下選擇菜單下選擇“SQL視圖視圖”,鍵入,鍵入sql語(yǔ)句即可,如圖:語(yǔ)句即可,如圖: 選擇查詢是最常見(jiàn)的查詢類(lèi)型,它可以從一個(gè)選擇查詢是最常見(jiàn)的查詢類(lèi)型,它可以從一個(gè)表或多個(gè)表中選擇記錄,對(duì)記錄進(jìn)行分組,還可以表或多

5、個(gè)表中選擇記錄,對(duì)記錄進(jìn)行分組,還可以對(duì)記錄進(jìn)行匯總、計(jì)數(shù)、求平均值以及進(jìn)行其他類(lèi)對(duì)記錄進(jìn)行匯總、計(jì)數(shù)、求平均值以及進(jìn)行其他類(lèi)型的總和計(jì)算。選擇查詢產(chǎn)生的結(jié)果是一組數(shù)據(jù)記型的總和計(jì)算。選擇查詢產(chǎn)生的結(jié)果是一組數(shù)據(jù)記錄,這組數(shù)據(jù)記錄稱為錄,這組數(shù)據(jù)記錄稱為“動(dòng)態(tài)集動(dòng)態(tài)集”。選擇查詢的目。選擇查詢的目的是用來(lái)挑選表中的內(nèi)容,并組合成動(dòng)態(tài)集合。的是用來(lái)挑選表中的內(nèi)容,并組合成動(dòng)態(tài)集合。1、 使用向?qū)?chuàng)建選擇查詢單擊單擊 【創(chuàng)建創(chuàng)建】下的下的“查詢向?qū)Р樵兿驅(qū)А?,選擇表或查詢后,選擇表或查詢后,再選擇查詢的字段即可,如圖:再選擇查詢的字段即可,如圖: 2、通過(guò)設(shè)計(jì)視圖創(chuàng)建選擇查詢 打開(kāi)的查詢?cè)O(shè)計(jì)視圖中

6、,選擇表和字段,如圖:1)選擇數(shù)據(jù)源)選擇數(shù)據(jù)源 2、建立查詢條件條件的作用是對(duì)所選擇的記錄作進(jìn)一步的限定。例如查詢性別為“女”,“數(shù)據(jù)庫(kù)應(yīng)用技術(shù)”課程成績(jī)80分以上(含80)的學(xué)生,在查詢?cè)O(shè)計(jì)的條件下鍵入查詢條件即可,如圖:多個(gè)條件可以使用“and”、“or”、“not”連接,例如,查詢student表中1996年1月1日到12月31日出生的女生,從【創(chuàng)建】下的“查詢?cè)O(shè)計(jì)”視圖中加入條件 “=#1996-1-1# And 80 的數(shù)據(jù)記錄生成一個(gè)新表。單擊單擊“查查詢?cè)O(shè)計(jì)詢?cè)O(shè)計(jì)”再選擇再選擇 “生成表查詢生成表查詢”按鈕如圖:按鈕如圖:?jiǎn)螕舨藛紊蠁螕舨藛紊?“查詢查詢”命令的命令的“運(yùn)行運(yùn)行

7、”按鈕,可按鈕,可彈出一個(gè)提示框,如圖:彈出一個(gè)提示框,如圖:此時(shí),在數(shù)據(jù)庫(kù)表中菜可看到一個(gè)此時(shí),在數(shù)據(jù)庫(kù)表中菜可看到一個(gè) “Access數(shù)數(shù)據(jù)庫(kù)應(yīng)用技術(shù)據(jù)庫(kù)應(yīng)用技術(shù)80分以上名單分以上名單”表。表。單擊該表,預(yù)覽結(jié)果如圖:2、更新查詢1)選擇”設(shè)計(jì)視圖”創(chuàng)建查詢2)選擇數(shù)據(jù)源3)添加更新字段和準(zhǔn)則字段4)添加更新條件和目標(biāo)5)單擊工具欄的運(yùn)行按鈕 若在彈出的對(duì)話框內(nèi)單擊”是”按鈕,更新后改變?cè)瓉?lái)表內(nèi)容.例如將成績(jī)表例如將成績(jī)表score中中80分到分到90分的評(píng)為分的評(píng)為“良良好好”。是添加查詢條件,單擊是添加查詢條件,單擊“更新查詢更新查詢”按鈕,再單擊按鈕,再單擊“運(yùn)行運(yùn)行”按鈕如圖:按

8、鈕如圖:此時(shí),在此時(shí),在score表表中80分分-90分的等級(jí)添加了分的等級(jí)添加了“良好良好”。 通過(guò)追加查詢將某個(gè)表中符合條件的記錄添加到通過(guò)追加查詢將某個(gè)表中符合條件的記錄添加到另一個(gè)表中。另一個(gè)表中。注意:在追加查詢與被追加記錄的表時(shí),只有匹配的注意:在追加查詢與被追加記錄的表時(shí),只有匹配的字段才被追加。一般,追加的表機(jī)構(gòu)應(yīng)與被追加的表字段才被追加。一般,追加的表機(jī)構(gòu)應(yīng)與被追加的表機(jī)構(gòu)基本一致。機(jī)構(gòu)基本一致。創(chuàng)建追加查詢與創(chuàng)建追加查詢與創(chuàng)建追加查詢與創(chuàng)建追加查詢與將成績(jī)表score1表追加到score2表后面此時(shí),在此時(shí),在score2表表中包含了score1內(nèi)容。 刪除查詢就是利用該查

9、詢一次刪除符合條件的一刪除查詢就是利用該查詢一次刪除符合條件的一批記錄。刪除查詢可以從一個(gè)表中刪除記錄,也可以批記錄。刪除查詢可以從一個(gè)表中刪除記錄,也可以從多個(gè)相互關(guān)聯(lián)的表中刪除記錄。若要從多個(gè)表中刪從多個(gè)相互關(guān)聯(lián)的表中刪除記錄。若要從多個(gè)表中刪除相關(guān)記錄,必須已經(jīng)建立了相關(guān)表之間的關(guān)系;并除相關(guān)記錄,必須已經(jīng)建立了相關(guān)表之間的關(guān)系;并且建立關(guān)系對(duì)話框中分別選擇且建立關(guān)系對(duì)話框中分別選擇“實(shí)施參照完整性實(shí)施參照完整性”和和“級(jí)聯(lián)刪除相關(guān)記錄級(jí)聯(lián)刪除相關(guān)記錄”復(fù)選框;這樣選擇窗口中關(guān)聯(lián)復(fù)選框;這樣選擇窗口中關(guān)聯(lián)的表中刪除記錄。的表中刪除記錄。 說(shuō)明:當(dāng)使選中說(shuō)明:當(dāng)使選中“級(jí)聯(lián)刪除相關(guān)記錄級(jí)聯(lián)

10、刪除相關(guān)記錄”復(fù)選框來(lái)刪復(fù)選框來(lái)刪除窗體或數(shù)據(jù)表中的記錄時(shí),除窗體或數(shù)據(jù)表中的記錄時(shí),Microsoft Access Microsoft Access 將發(fā)將發(fā)出出相關(guān)記錄也將刪除的警告消息。但是,當(dāng)使用相關(guān)記錄也將刪除的警告消息。但是,當(dāng)使用刪除查詢來(lái)刪除記錄時(shí),刪除查詢來(lái)刪除記錄時(shí), Access 將自動(dòng)刪除將自動(dòng)刪除相關(guān)表中的記錄,而不顯示任何警告消息。步相關(guān)表中的記錄,而不顯示任何警告消息。步驟為驟為:1)在查詢視圖中選擇表在查詢視圖中選擇表2)單擊工具欄單擊工具欄加入刪除條件,單擊 “刪除”按鈕,再選擇“運(yùn)行”,如圖:此時(shí),在此時(shí),在score表表中60分以下的記錄刪除了。分以下的

11、記錄刪除了。 在實(shí)際應(yīng)用中,常常需要對(duì)記錄或字段進(jìn)行匯在實(shí)際應(yīng)用中,常常需要對(duì)記錄或字段進(jìn)行匯總統(tǒng)計(jì),總統(tǒng)計(jì),AccessAccess查詢提供了利用函數(shù)建立總計(jì)查詢的查詢提供了利用函數(shù)建立總計(jì)查詢的方式,總計(jì)查詢可以對(duì)查詢中的某列進(jìn)行總和方式,總計(jì)查詢可以對(duì)查詢中的某列進(jìn)行總和(SumSum)、平均()、平均(AvgAvg)、計(jì)數(shù)()、計(jì)數(shù)(CountCount)、最小值)、最小值(MinMin)和最大值()和最大值(MaxMax)等計(jì)算。)等計(jì)算。例如:匯總服裝表例如:匯總服裝表CLOTHING “連衣裙連衣裙”的平的平均進(jìn)價(jià)是多少錢(qián),如圖:均進(jìn)價(jià)是多少錢(qián),如圖:1、匯總、匯總創(chuàng)建總計(jì)查詢是

12、通過(guò)使用查詢創(chuàng)建總計(jì)查詢是通過(guò)使用查詢“設(shè)計(jì)網(wǎng)格設(shè)計(jì)網(wǎng)格”中的中的“總總計(jì)計(jì)”行上的總計(jì)項(xiàng)來(lái)實(shí)現(xiàn)的。總計(jì)項(xiàng)共有行上的總計(jì)項(xiàng)來(lái)實(shí)現(xiàn)的??傆?jì)項(xiàng)共有1212個(gè)選項(xiàng),個(gè)選項(xiàng),1212個(gè)選項(xiàng)可分為分組個(gè)選項(xiàng)可分為分組 (Group By)(Group By)、合計(jì)函數(shù)、表達(dá)、合計(jì)函數(shù)、表達(dá)式(式(ExpressionExpression)和限制條件()和限制條件(WhereWhere)4 4類(lèi)。類(lèi)。SumSum:計(jì)算組中該字段所有值的和;:計(jì)算組中該字段所有值的和;AvgAvg:計(jì)算組中該字段的算術(shù)平均值最小值:計(jì)算組中該字段的算術(shù)平均值最小值MinMin、MaxMax:返回組中字段的最小值和最大值:返

13、回組中字段的最小值和最大值CountCount:返回行的合計(jì);:返回行的合計(jì);StDevStDev:計(jì)算組中字段所有值的統(tǒng)計(jì)標(biāo)準(zhǔn)差;:計(jì)算組中字段所有值的統(tǒng)計(jì)標(biāo)準(zhǔn)差;VarVar:計(jì)算組中字段所有值的統(tǒng)計(jì)方差:計(jì)算組中字段所有值的統(tǒng)計(jì)方差FirstFirst:返回該字段的第一個(gè)值:返回該字段的第一個(gè)值LastLast:返回該字段的最后一個(gè)值。:返回該字段的最后一個(gè)值。 分組(分組(Group ByGroup By) 對(duì)記錄分組。例如按性別將學(xué)生對(duì)記錄分組。例如按性別將學(xué)生分成分成2 2組組 表達(dá)式(表達(dá)式(ExpressionExpression)字段框內(nèi)設(shè)置的是表達(dá)式,它在)字段框內(nèi)設(shè)置的是

14、表達(dá)式,它在來(lái)源表中不存在,字段值則由表達(dá)式計(jì)算得到。來(lái)源表中不存在,字段值則由表達(dá)式計(jì)算得到。 可以在條件(可以在條件(WhereWhere)字段的條件框內(nèi)設(shè)置條件表達(dá)式。)字段的條件框內(nèi)設(shè)置條件表達(dá)式。 2、創(chuàng)建計(jì)算字段查詢v計(jì)算字段的值由表達(dá)式計(jì)算而得,不保存在表中v若表達(dá)式中引用的字段或值發(fā)生了變化,必須重新執(zhí)行查詢 利用出生日期計(jì)算利用出生日期計(jì)算年齡年齡: Year(Now()-Year(出生日期出生日期)根據(jù)根據(jù)“出生日期出生日期”計(jì)算年齡計(jì)算年齡說(shuō)明:時(shí)間函數(shù)的使用:說(shuō)明:時(shí)間函數(shù)的使用:vNow()-表示取當(dāng)前的日期和時(shí)間表示取當(dāng)前的日期和時(shí)間vdate()-表示取當(dāng)前的日期

15、表示取當(dāng)前的日期vyear出生年月出生年月-表示取年表示取年vmonth出生年月出生年月-表示取月表示取月vday出生年月出生年月-表示取日表示取日已知出生已知出生日期計(jì)算年齡日期計(jì)算年齡:year(Now()-year(出生日期出生日期) 或或Year(date()-year(出生日期出生日期) 1 1、SQLSQL基本規(guī)則基本規(guī)則SQL SQL (Structure Query Language Structure Query Language ,結(jié)構(gòu)化查詢,結(jié)構(gòu)化查詢語(yǔ)言語(yǔ)言 )是在數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用廣泛的數(shù)據(jù)庫(kù)查詢語(yǔ))是在數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用廣泛的數(shù)據(jù)庫(kù)查詢語(yǔ)言,它包括了數(shù)據(jù)定義、查詢、操縱

16、和控制言,它包括了數(shù)據(jù)定義、查詢、操縱和控制4 4種功能。種功能。 SQL SQL 查詢是使用查詢是使用SQLSQL語(yǔ)句創(chuàng)建的查詢。可以用結(jié)構(gòu)語(yǔ)句創(chuàng)建的查詢??梢杂媒Y(jié)構(gòu)化查詢語(yǔ)言(化查詢語(yǔ)言(Structure Query Language Structure Query Language ,SQL) SQL) 來(lái)查詢、更新和管理來(lái)查詢、更新和管理 Microsoft Access Microsoft Access 這樣的關(guān)系這樣的關(guān)系數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)。七、使用七、使用SQL命令查詢命令查詢 vSQL意為結(jié)構(gòu)化查詢語(yǔ)言,可用于定義、查詢、更意為結(jié)構(gòu)化查詢語(yǔ)言,可用于定義、查詢、更新、管理關(guān)系型數(shù)

17、據(jù)庫(kù)系統(tǒng)。新、管理關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。vSQL是一種非過(guò)程語(yǔ)言,易學(xué)易用,語(yǔ)句由近似自是一種非過(guò)程語(yǔ)言,易學(xué)易用,語(yǔ)句由近似自然語(yǔ)言的英語(yǔ)單詞組成然語(yǔ)言的英語(yǔ)單詞組成 例例1 顯示顯示“student”表中所有男生的學(xué)號(hào)、姓名、表中所有男生的學(xué)號(hào)、姓名、入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù) Select 學(xué)號(hào)學(xué)號(hào),姓名姓名,入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù) From student Where 性別性別=男男 vSQL語(yǔ)言不涉及數(shù)據(jù)庫(kù)內(nèi)部細(xì)節(jié),通用性好。語(yǔ)言不涉及數(shù)據(jù)庫(kù)內(nèi)部細(xì)節(jié),通用性好。v不能設(shè)計(jì)出與用戶交互的圖形界面,需用不能設(shè)計(jì)出與用戶交互的圖形界面,需用VB、VC等程序語(yǔ)言作為客戶端開(kāi)發(fā)工具,同時(shí)在程序中嵌等程序語(yǔ)言作為客

18、戶端開(kāi)發(fā)工具,同時(shí)在程序中嵌入入SQL命令。命令。v SQL命令的所有子句既可以寫(xiě)在同一行上,也可以命令的所有子句既可以寫(xiě)在同一行上,也可以分行書(shū)寫(xiě);大小寫(xiě)字母的含義相同;命令用分號(hào)分行書(shū)寫(xiě);大小寫(xiě)字母的含義相同;命令用分號(hào)“;”結(jié)束結(jié)束(也可以不寫(xiě)也可以不寫(xiě))。 vSQL的查詢語(yǔ)句格式:的查詢語(yǔ)句格式:SELECT 字段列表字段列表 INTO 新表新表 FROM 記錄源記錄源 WHERE GROUP BY HAVING ORDER BY 字段列表字段列表ASC|DESC 中的內(nèi)容為可選項(xiàng)中的內(nèi)容為可選項(xiàng)DISTINCT:表示輸出無(wú)重復(fù)記錄表示輸出無(wú)重復(fù)記錄AS: 后表示要輸出一個(gè)新的字段名后

19、表示要輸出一個(gè)新的字段名選項(xiàng):字段名,表達(dá)式或函數(shù)選項(xiàng):字段名,表達(dá)式或函數(shù)FROM結(jié)果排序結(jié)果排序 ORDER BY ASC|DESC ,ASC|DESC WHEREWHERE是條件語(yǔ)句的關(guān)鍵字,是可選項(xiàng)是條件語(yǔ)句的關(guān)鍵字,是可選項(xiàng)格式為:格式為:WHERE WHERE AND/ORAND/ORAND/ORAND/OR.升序升序降序降序創(chuàng)建創(chuàng)建SQLSQL查詢的操作步驟如下:查詢的操作步驟如下:1 1)在數(shù)據(jù)庫(kù)窗口中的)在數(shù)據(jù)庫(kù)窗口中的“查詢查詢”對(duì)象下,雙擊對(duì)象下,雙擊“在設(shè)計(jì)視圖中創(chuàng)建查詢?cè)谠O(shè)計(jì)視圖中創(chuàng)建查詢”項(xiàng),并關(guān)閉彈出的項(xiàng),并關(guān)閉彈出的“顯示表顯示表”對(duì)話框;對(duì)話框;2 2)選擇)

20、選擇“查詢查詢”菜單中的菜單中的“SQLSQL特定查詢特定查詢”命令;命令;3 3)在彈出的)在彈出的“SQLSQL查詢查詢”編輯器框中輸入編輯器框中輸入SQLSQL語(yǔ)語(yǔ)句。句。 查詢視圖的的實(shí)質(zhì)是查詢視圖的的實(shí)質(zhì)是SQL命令,在查詢?cè)O(shè)計(jì)命令,在查詢?cè)O(shè)計(jì)中,單擊中,單擊SQL視圖,即可輸入查詢語(yǔ)句,如視圖,即可輸入查詢語(yǔ)句,如圖。圖。選取記錄源的全部字段或部分字段選取記錄源的全部字段或部分字段例例1 輸出輸出“student”表的全部字段表的全部字段 *表示記錄源的全部字段表示記錄源的全部字段 3、基于單記錄源的查詢 SELECT * FROM student例例2以以 “student”表為

21、記錄源,顯示部分字段表為記錄源,顯示部分字段 SELECT 學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別 FROM student說(shuō)明:說(shuō)明:(1)字段名之間的逗號(hào))字段名之間的逗號(hào)“,”必須是英文字符必須是英文字符(2)如果重命名數(shù)據(jù)庫(kù)源,則本查詢中引用的記錄)如果重命名數(shù)據(jù)庫(kù)源,則本查詢中引用的記錄源名字將自動(dòng)更新。源名字將自動(dòng)更新。(3)作為記錄源的)作為記錄源的“student”表不能刪除表不能刪除(4)當(dāng)真正的記錄源)當(dāng)真正的記錄源“student”表中的數(shù)據(jù)更新表中的數(shù)據(jù)更新時(shí),查詢的執(zhí)行結(jié)果也自動(dòng)更新。時(shí),查詢的執(zhí)行結(jié)果也自動(dòng)更新。用用TOP顯示前面的若干條記錄顯示前面的若干條記錄 語(yǔ)法格式:語(yǔ)

22、法格式:TOP n (n為指定記錄數(shù))為指定記錄數(shù)) 例例5 顯示顯示“student”表中的前表中的前4條記錄條記錄 SELECT TOP 4 * FROM studdent 例例3 將將student表按照學(xué)號(hào)降序表按照學(xué)號(hào)降序排列。排列。Select * From student order by 學(xué)號(hào)學(xué)號(hào)用用DISTINCT消除重復(fù)記錄消除重復(fù)記錄 例例4 SELECT DISTINCT 性別性別 FROM student則:相同的字段只出現(xiàn)一個(gè)則:相同的字段只出現(xiàn)一個(gè) 用用WHERE子句對(duì)記錄進(jìn)行選擇子句對(duì)記錄進(jìn)行選擇 v語(yǔ)法格式:語(yǔ)法格式: WHERE 例例6 找年齡不低于找年齡不

23、低于20歲的學(xué)生,并顯示部分字段歲的學(xué)生,并顯示部分字段 SELECT 姓名姓名,性別性別,年齡年齡 FROM student WHERE year(Now()-year(出生日期)出生日期)=20 v可用邏輯運(yùn)算符形成邏輯表達(dá)式可用邏輯運(yùn)算符形成邏輯表達(dá)式,邏輯運(yùn)算符的優(yōu)先邏輯運(yùn)算符的優(yōu)先級(jí)依次為:級(jí)依次為:NOTANDOR 例例7 查找查找student 表中表中1996年前出生的女生信息年前出生的女生信息例例8查找查找student表中表中1996年前出生的女生信息或是黨員信息年前出生的女生信息或是黨員信息 SELECT 姓名姓名,性別性別,年齡年齡 FROM studentWHERE

24、year(出生年月出生年月)1996 AND 性別性別=女女 SELECT 姓名姓名,性別性別,入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù),研究方向研究方向 FROM student WHERE WHERE year(出生年月出生年月)19)199 95 5 and and 班級(jí)班級(jí) inin(20130212013021, ,2013022013022) )SELECT SELECT 姓名姓名, ,出生年月出生年月 from from studentstudent; ; WHERE year( WHERE year(出生年月出生年月)19)199 95;5; and (and (班級(jí)班級(jí)= =201302120130

25、21oror班級(jí)班級(jí)= =20130222013022) )格式格式: 設(shè)有設(shè)有三個(gè)表,分別三個(gè)表,分別是是student、score和和course表。表。4、基于多個(gè)記錄源的查詢student表表score表表course表表例15 輸出輸出student表所有表所有學(xué)生的考試成績(jī),要求給出學(xué)生的考試成績(jī),要求給出學(xué)號(hào)、姓名、學(xué)號(hào)、姓名、課程號(hào)課程號(hào)、課程名稱和考試成績(jī)。、課程名稱和考試成績(jī)。Select a.學(xué)號(hào)學(xué)號(hào), a.姓名姓名, b.課程號(hào)課程號(hào), c.課程名稱課程名稱 , b.考試成考試成績(jī)績(jī) order by 成績(jī)成績(jī);From student a, score b, cour

26、se c;Where a.學(xué)號(hào)學(xué)號(hào)=b.學(xué)號(hào)學(xué)號(hào).and.b.課程號(hào)課程號(hào)=c.課程號(hào)課程號(hào)1)用)用where實(shí)現(xiàn)表與表的連接實(shí)現(xiàn)表與表的連接abc學(xué)生成績(jī)授課關(guān)系連接圖d課程對(duì)照輸出學(xué)生成績(jī)?cè)谳敵鰧W(xué)生成績(jī)?cè)?090之間的姓名,性別,課號(hào)、之間的姓名,性別,課號(hào)、課程名稱和成績(jī)。課程名稱和成績(jī)。例例 16輸出輸出student所有學(xué)生的姓名、課程號(hào)、課程名所有學(xué)生的姓名、課程號(hào)、課程名稱和成績(jī)稱和成績(jī) 在在80到到90之間的學(xué)生信息。之間的學(xué)生信息。 Select 姓名姓名,性別性別,score.課程號(hào)課程號(hào), 課程名稱,成績(jī)課程名稱,成績(jī); From student, score, cou

27、rse Where student.學(xué)號(hào)學(xué)號(hào)=score.學(xué)號(hào)學(xué)號(hào) .and.score.課程號(hào)課程號(hào)=課程課程.課程號(hào)課程號(hào).and.考試考試成績(jī)成績(jī) BETWEEN 80 AND 902)用內(nèi)連接)用內(nèi)連接INNER JOIN實(shí)現(xiàn)表與表的連接實(shí)現(xiàn)表與表的連接 INNER JOIN出現(xiàn)在出現(xiàn)在FROM子句中,格式為:子句中,格式為:FROM INNER JOIN ON SELECT 姓名姓名,成績(jī)成績(jī) FROM student INNER JOIN score ON student.學(xué)號(hào)學(xué)號(hào)=score.學(xué)號(hào)學(xué)號(hào)例例17 輸出全體學(xué)生的姓名及選修課的成績(jī)情況輸出全體學(xué)生的姓名及選修課的成績(jī)情

28、況 在較長(zhǎng)的查詢命令中可用別名代替表名。在較長(zhǎng)的查詢命令中可用別名代替表名。 例例18 18 查找查找學(xué)號(hào)為學(xué)號(hào)為2013010220130102學(xué)生的選課及成績(jī)情學(xué)生的選課及成績(jī)情況況t t 作為作為“scorescore”表的別名,表的別名,s s 作為作為“課程課程”表的別表的別名名SELECT 學(xué)號(hào),學(xué)號(hào),課程號(hào)課程號(hào),課程名稱、成績(jī),課程名稱、成績(jī) FROM score AS t INNER JOIN 課程課程 AS s ON t.課課程編號(hào)程編號(hào)=s.課程號(hào)課程號(hào) WHERE t.學(xué)號(hào)學(xué)號(hào)=201301023)用左外連接實(shí)現(xiàn)表與表的連接)用左外連接實(shí)現(xiàn)表與表的連接 FROM LEF

29、T JOIN ON 將左側(cè)表將左側(cè)表()中連接字段的值全部顯示中連接字段的值全部顯示4)用右外連接實(shí)現(xiàn)表與表的連接)用右外連接實(shí)現(xiàn)表與表的連接 FROM RIGHT JOIN ON 將右側(cè)表將右側(cè)表()中連接字段的值全部顯示中連接字段的值全部顯示例19 查詢student的姓名和他的選課考試成績(jī) SELECT 姓姓名,考試成績(jī)名,考試成績(jī) FROM student LEFT JOIN score ON 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào) = score.學(xué)號(hào)學(xué)號(hào)例20 查詢student的姓名和他的選課考試成績(jī)SELECT 姓姓名名,成績(jī),成績(jī) FROM student RIGHT JOIN score ON

30、 學(xué)生學(xué)生.學(xué)號(hào)學(xué)號(hào) = score.學(xué)號(hào)學(xué)號(hào)例例21查詢查詢student表中姓表中姓張學(xué)生及其選修課張學(xué)生及其選修課程的情況。程的情況。SELECT SELECT student.student.* *,score.,score.* *; ; FROM FROM student, score;student, score;WHERE WHERE student.student.學(xué)號(hào)學(xué)號(hào)= =score.score.學(xué)號(hào)學(xué)號(hào) and and 姓名姓名 like like 張張%SELECT 學(xué)號(hào)學(xué)號(hào) FROM score ,course;WHERE 課程名稱課程名稱=數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)AND; s

31、core.課程號(hào)課程號(hào)=course.課程號(hào)課程號(hào))例例22 查詢查詢選修了數(shù)據(jù)庫(kù)課的學(xué)生學(xué)號(hào)。選修了數(shù)據(jù)庫(kù)課的學(xué)生學(xué)號(hào)。例例23 查詢查詢選修了數(shù)據(jù)庫(kù)課的選修了數(shù)據(jù)庫(kù)課的學(xué)生學(xué)號(hào),姓名學(xué)生學(xué)號(hào),姓名及成績(jī)。及成績(jī)。SELECT 姓名姓名,學(xué)學(xué)號(hào)號(hào) ,成績(jī)成績(jī) FROM student,score,course WHERE 課程名稱課程名稱=“數(shù)據(jù)庫(kù)應(yīng)用技術(shù)數(shù)據(jù)庫(kù)應(yīng)用技術(shù)” student.學(xué)號(hào)學(xué)號(hào)=score.學(xué)號(hào)學(xué)號(hào) AND; score.課程號(hào)課程號(hào)=course.課程號(hào)課程號(hào))5、 常用函數(shù)常用函數(shù)SUM AVG MAX MIN COUNT 1 格式:格式:select sum(字段名

32、字段名) as 別名別名 from 數(shù)據(jù)數(shù)據(jù)表表 where 條件表達(dá)式條件表達(dá)式select avg(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) as 入學(xué)成績(jī)平均入學(xué)成績(jī)平均 ;from student where 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)600例例24求入學(xué)成績(jī)大于求入學(xué)成績(jī)大于600分的平均分的平均AVG(字段名字段名) 得出一個(gè)表格欄平均值得出一個(gè)表格欄平均值例例25求入學(xué)成績(jī)大于求入學(xué)成績(jī)大于600分的平均分的平均select avg(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) as 入學(xué)成績(jī)平均入學(xué)成績(jī)平均 ;from student where 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)600例例26查詢選修了查詢選修了01號(hào)課的學(xué)生的平均成績(jī)。號(hào)課的學(xué)生的

33、平均成績(jī)。 SELECT AVG(成績(jī)成績(jī)) FROM score WHERE 課課程號(hào)程號(hào)=01MAX(字段名字段名) 取得一個(gè)表格欄最大的值取得一個(gè)表格欄最大的值 例例27 求求最高入學(xué)成績(jī)的學(xué)生姓名最高入學(xué)成績(jī)的學(xué)生姓名,籍貫籍貫,班級(jí)班級(jí)select 姓名姓名,籍貫籍貫,班級(jí)班級(jí),MAX(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) as 最高入學(xué)成績(jī)最高入學(xué)成績(jī) ;from studentMIN(字段名(字段名) 取得一個(gè)表格欄最小的值取得一個(gè)表格欄最小的值例例28 求求最低入學(xué)成績(jī)姓名最低入學(xué)成績(jī)姓名,籍貫籍貫,班級(jí)班級(jí)select 姓名姓名,籍貫籍貫,班級(jí)班級(jí),MIN(入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)) as 最低入學(xué)成

34、績(jī)最低入學(xué)成績(jī) ;from student例例29 按按學(xué)號(hào)統(tǒng)計(jì)學(xué)生人數(shù)。學(xué)號(hào)統(tǒng)計(jì)學(xué)生人數(shù)。 SELECT COUNT(學(xué)號(hào)學(xué)號(hào)) FROM score COUNT (*|字段名字段名) 對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰趯?duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)有值的數(shù)據(jù)行數(shù)統(tǒng)計(jì) 。MAX和MIN函數(shù):分別用于在指定的記錄范圍內(nèi)找出具有最大值和最小值的字段。例30 找出男生中的最高分和最低分 SELECT MAX(入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù)) AS 最高分最高分, MIN(入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù)) AS 最最低分低分 FROM student WHERE 性別性別=男男6、操作查詢的、操作查詢的SQL語(yǔ)句語(yǔ)句v作

35、用:將作用:將SELECT命令執(zhí)行的結(jié)果形成一個(gè)表保存命令執(zhí)行的結(jié)果形成一個(gè)表保存在數(shù)據(jù)庫(kù)中。在數(shù)據(jù)庫(kù)中。v操作:操作:SQL代碼:在代碼:在SELECT命令的字段名列表后加上命令的字段名列表后加上子句子句INTO 在查詢?cè)O(shè)計(jì)視圖中完成:打開(kāi)查詢?cè)O(shè)計(jì)視圖在查詢?cè)O(shè)計(jì)視圖中完成:打開(kāi)查詢?cè)O(shè)計(jì)視圖 執(zhí)行執(zhí)行“查詢?cè)O(shè)計(jì)查詢?cè)O(shè)計(jì)”/“生成表查詢生成表查詢”菜單命令菜單命令 1)生成表查詢生成表查詢例例31 將將student表中所有女生的全部信息按學(xué)號(hào)降表中所有女生的全部信息按學(xué)號(hào)降序、入學(xué)分?jǐn)?shù)升序生成序、入學(xué)分?jǐn)?shù)升序生成Female表。表。 SQL代碼:代碼:SELECT * INTO Female FROM student WHERE 性別性別=女女 ORDER BY 學(xué)號(hào)學(xué)號(hào) DESC,入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù) 32 將將student中男生的信息插入到對(duì)應(yīng)的中男生的信息插入到對(duì)應(yīng)的Female對(duì)對(duì)應(yīng)的表中。應(yīng)的表中。 INSERT INTO Female SELECT * FROM student WHERE 性別性別=男男例例33 將新來(lái)的張三同學(xué)信息插入到將新來(lái)的張三同學(xué)信息插入到student中中Insert into student(學(xué)號(hào)學(xué)號(hào),姓名姓名,性別性別,出生年月出生年月

溫馨提示

  • 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)論