Access數(shù)據(jù)庫應(yīng)用教程第4章查詢課件_第1頁
Access數(shù)據(jù)庫應(yīng)用教程第4章查詢課件_第2頁
Access數(shù)據(jù)庫應(yīng)用教程第4章查詢課件_第3頁
Access數(shù)據(jù)庫應(yīng)用教程第4章查詢課件_第4頁
Access數(shù)據(jù)庫應(yīng)用教程第4章查詢課件_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Access 數(shù)據(jù)庫應(yīng)用教程 第4章 查詢與SQL第1頁,共75頁。知識要點查詢的概念和類型查詢條件選擇查詢的創(chuàng)建參數(shù)查詢的創(chuàng)建交叉表查詢的創(chuàng)建操作查詢的創(chuàng)建SQL基礎(chǔ)知識與SQL語句第2頁,共75頁。重點與難點重點:查詢條件選擇查詢參數(shù)查詢交叉表查詢操作查詢SQL查詢難點:運算符、函數(shù)和表達(dá)式選擇查詢交叉表查詢SQL查詢第3頁,共75頁。4.1 查詢概述查詢是Access 數(shù)據(jù)庫的主要對象,是Access 數(shù)據(jù)庫的核心操作之一。 查詢主要有以下幾個方面的功能:(1)選擇字段:選擇表中的部分字段生成所需的表或多個數(shù)據(jù)集。(2)選擇記錄:根據(jù)指定的條件查找所需的記錄,并顯示查找的記錄。(3)編輯

2、記錄:添加記錄,修改記錄和刪除記錄。(更新查詢,刪除查詢)(4)實現(xiàn)計算:查詢滿足條件的記錄,還可以在建立查詢過程中進(jìn)行各種計算。(計算平均成績,年齡等)(5)建立新表:操作查詢中的生成表查詢可以建立新表。(6)為窗體和報表提供數(shù)據(jù):可以作為建立報表和查詢的數(shù)據(jù)源。第4頁,共75頁。4.1.1 查詢的類型根據(jù)對數(shù)據(jù)源的操作方式及查詢結(jié)果的不同,Access 提供的查詢可以分為5種類型,分別是選擇查詢、交叉表查詢、參數(shù)查詢、操作查詢、SQL查詢。第5頁,共75頁。4.1.2 創(chuàng)建查詢的方法在Access 中,創(chuàng)建查詢的方法主要有以下兩種:使用查詢向?qū)?、查詢設(shè)計視圖創(chuàng)建查詢1使用查詢向?qū)?chuàng)建查詢操

3、作步驟如下:(1)打開數(shù)據(jù)庫;(2)選擇“創(chuàng)建”-“查詢”-“查詢向?qū)А卑粹o,打開“新建查詢”對話框;(3)在“新建查詢”對話框中,選擇需要的查詢向?qū)?,根?jù)系統(tǒng)引導(dǎo)選擇參數(shù)或者輸入信息;(4)保存查詢。第6頁,共75頁。創(chuàng)建查詢的方法2. 使用查詢設(shè)計視圖創(chuàng)建查詢使用查詢設(shè)計視圖創(chuàng)建查詢首先要打開查詢設(shè)計視圖窗口,然后根據(jù)需要進(jìn)行查詢定義。操作步驟如下:(1)打開數(shù)據(jù)庫;(2)選擇“新建”-“查詢”-“查詢設(shè)計”按鈕,打開“查詢設(shè)計器”窗口,如圖所示。第7頁,共75頁。查詢設(shè)計器窗口由兩部分組成,上半部分是數(shù)據(jù)源窗口,用于顯示查詢所涉及的數(shù)據(jù)源,可以是數(shù)據(jù)表或查詢,下半部分是查詢定義窗口,也稱

4、為QBE網(wǎng)格,主要包括以下內(nèi)容: 字段:查詢結(jié)果中所顯示的字段。 表:查詢的數(shù)據(jù)源,即查詢結(jié)果中字段來源。 排序:查詢結(jié)果中相應(yīng)字段的排序方式。 顯示:當(dāng)相應(yīng)字段的復(fù)選框被選中時,則在結(jié)構(gòu)中顯示,否則不顯示。 條件:即查詢條件,同一行中的多個準(zhǔn)則之間是邏輯“與”的關(guān)系。 或:查詢條件,表示多個條件之間的“或”的關(guān)系。第8頁,共75頁。(3)在打開查詢設(shè)計視圖窗口的同時彈出“顯示表”對話框,如圖所示;第9頁,共75頁。(4)在“顯示表”對話框中,選擇作為數(shù)據(jù)源的表或查詢,將其添加到查詢設(shè)計器窗口的數(shù)據(jù)源窗格中。(5)在查詢設(shè)計器窗口的查詢定義窗口中,打開“排序”列表框,可以指定查詢的排序關(guān)鍵字和

5、排序方式;排序方式分為升序、降序和不排序三種。(6)使用“顯示”復(fù)選框可以設(shè)置某個字段是否在查詢結(jié)果中顯示(7)在“條件”文本框中輸入查詢條件,或者利用表達(dá)式生成器輸入查詢條件; (8)保存查詢,創(chuàng)建查詢完成。第10頁,共75頁。4.2 查詢條件的設(shè)置在實際應(yīng)用中,經(jīng)常查詢滿足某個條件的記錄,這需要在查詢時進(jìn)行查詢條件的設(shè)置。通過在查詢設(shè)計視圖中設(shè)置條件可以實現(xiàn)條件查詢,而查詢條件是通過輸入表達(dá)式來表示的。 表達(dá)式是由操作數(shù)和運算符構(gòu)成的可計算的式子。 操作數(shù)可以是常量、變量、函數(shù)、甚至可以是另一個表達(dá)式 運算符是表示進(jìn)行某種運算的符號,包括算術(shù)運算符、關(guān)系運算符、邏輯運算符、連接運算符、特殊

6、運算符和對象運算符等。第11頁,共75頁。查詢條件的設(shè)置 表達(dá)式的各個組成部分1. 常量常量代表不會發(fā)生更改的值。按其類型的不同有不同的表示方法,如表所示。類 型表 示 方 法示 例數(shù)字型直接輸入數(shù)據(jù)123,-4,56.7日期時間型以“#”為定界符#2017-9-18#文本型以西文半角的單引號或雙引號作為定界符“Hello Word”是/否型用系統(tǒng)定義的符號表示True,False,或Yes,No,或On,Off,或-1,0第12頁,共75頁。查詢條件的設(shè)置 表達(dá)式的各個組成部分2. 變量變量是指在運算過程中其值允許變化的量。在查詢的條件表達(dá)式中使用變量就是通過字段名對字段變量進(jìn)行引用,一般需

7、要使用字段名的格式,如姓名、 表名!字段名的格式。第13頁,共75頁。查詢條件的設(shè)置 表達(dá)式的各個組成部分3. 函數(shù)函數(shù)是用來實現(xiàn)某指定的運算或操作的一個特殊程序。一個函數(shù)可以接收輸入?yún)?shù)(并不是所有函數(shù)都有輸入?yún)?shù)),且返回一個特定類型的值。函數(shù)一般都用于表達(dá)式中。 格式:函數(shù)名(實際參數(shù)列表)當(dāng)函數(shù)的參數(shù)超過一個時,各參數(shù)間用西文半角“,”隔開。 函數(shù)分為系統(tǒng)內(nèi)置函數(shù)和用戶自定義函數(shù)。 Access 提供了上千個標(biāo)準(zhǔn)函數(shù),可分為數(shù)學(xué)函數(shù)、字符串處理函數(shù)、日期/時間函數(shù)、聚合函數(shù)等,其中聚合函數(shù)可直接用于查詢中。第14頁,共75頁。查詢條件的設(shè)置 表達(dá)式的各個組成部分4運算符運算符是表示進(jìn)行

8、某種運算的符號,包括算術(shù)運算符、關(guān)系運算符、邏輯運算符、連接運算符和特殊運算符等。(1)算術(shù)運算符算術(shù)運算符包括加(+)、減(-)、乘(*)、除(/)、乘方()、整除()、取余(Mod)等,主要用于數(shù)值計算。例如表達(dá)式23的運算結(jié)果為8;表達(dá)式16/2的運算結(jié)果為8;表達(dá)式52的運算結(jié)果為2;表達(dá)式7 Mod 2的運算結(jié)果為1。第15頁,共75頁。查詢條件的設(shè)置(2)關(guān)系運算符關(guān)系運算符由=、=、=、等符號構(gòu)成,主要用于數(shù)據(jù)之間的比較,其運算結(jié)果為邏輯值,即“真”和“假”。如表所示。關(guān)系運算符含義關(guān)系運算符含義關(guān)系運算符含義大于=大于等于小于=小于等于=等于不等于第16頁,共75頁。查詢條件的

9、設(shè)置(3)邏輯運算符邏輯運算符由And、Or、Not、等符號構(gòu)成,具體含義如表所示。邏輯運算符作 用Not邏輯非And當(dāng)And前后的兩個表達(dá)式均為真時,整個表達(dá)式的值為真,否則為假Or當(dāng)Or前后的兩個表達(dá)式均為假時,整個表達(dá)式的值為假,否則為真第17頁,共75頁。查詢條件的設(shè)置(4)連接運算符連接運算符包括“&”和“+”?!?”:字符串連接。例如:表達(dá)式 Access&2010,運算結(jié)果為 Access2010 “+”:當(dāng)前后兩個表達(dá)式都是字符串時與“&”作用相同;當(dāng)前后兩個表達(dá)式有一個或者兩個都是數(shù)值表達(dá)式時,則進(jìn)行加法算術(shù)運算。 如:表達(dá)式Access+2010,運算結(jié)果為Access20

10、10。 表達(dá)式Access+2010,運算結(jié)果為提示“類型不匹配”。表達(dá)式3 +2014,運算結(jié)果為2017。第18頁,共75頁。查詢條件的設(shè)置(5)特殊運算符Access提供了一些特殊運算符用于對記錄進(jìn)行過濾,常用的特殊運算符如表所示。特殊運算符含 義In指定值屬于列表中所列出的值BetweenAnd 指定值的范圍在到之間Is 與Null一起使用確定字段值是否為空值Like用通配符查找文本型字段是否與其匹配。通配符“?”匹配任意單個字符;“*”匹配任意多個字符;“#”匹配任意單個數(shù)字;“!”不匹配指定的字符;字符列表匹配任何在列表中的單個字符第19頁,共75頁。4.3 選擇查詢“選擇查詢”就

11、是從一個或多個有關(guān)系的表中將滿足要求的數(shù)據(jù)選擇出來,并把這些數(shù)據(jù)顯示在新的查詢數(shù)據(jù)表中。使用選擇查詢可以從一個或多個表或查詢中檢索數(shù)據(jù),可以對記錄進(jìn)行分組,并進(jìn)行求總計、計數(shù)、平均值等運算。選擇查詢產(chǎn)生的結(jié)果是一個動態(tài)記錄集,不會改變源數(shù)據(jù)表中的數(shù)據(jù)。第20頁,共75頁。4.3.1 使用向?qū)?chuàng)建選擇查詢借助“簡單查詢向?qū)А笨梢詮囊粋€表、多個表或已有查詢中選擇要顯示的字段,也可對數(shù)值型字段的值進(jìn)行簡單匯總計算。簡單查詢的功能有限,不能指定查詢條件或查詢的排序方式。第21頁,共75頁。使用向?qū)?chuàng)建選擇查詢1. 建立單表查詢【例4.1】查詢學(xué)生的基本信息(包含學(xué)號、姓名、性別、出生日期和政治面貌)。

12、2. 建立多表查詢用戶所需查詢的信息來自兩個或兩個以上的表或查詢,需要建立多表查詢。建立多表查詢必須有相關(guān)聯(lián)的字段,并且事先應(yīng)通過這些相關(guān)聯(lián)的字段建立起表之間的關(guān)系?!纠?.2】查詢學(xué)生的課程成績,顯示的內(nèi)容包括:學(xué)號、姓名、課程編號、課程名稱和分?jǐn)?shù)。第22頁,共75頁。使用向?qū)?chuàng)建選擇查詢3. 查找重復(fù)項查詢向?qū)А安檎抑貜?fù)項查詢向?qū)А笨梢钥焖僬业奖碇械闹貜?fù)字段值的記錄?!纠?.3】在“學(xué)生”表中查詢姓名重名的學(xué)生的所有信息。4. 查找不匹配項查詢向?qū)А纠?.4】利用“查找不匹配項查詢向?qū)А眲?chuàng)建查詢,查找沒有學(xué)生選修的課程信息。第23頁,共75頁。4.3.2 使用設(shè)計視圖創(chuàng)建對于簡單的查詢,使

13、用向?qū)П容^方便,但是對于有條件的查詢,則無法使用向?qū)韯?chuàng)建,而是需要在“設(shè)計視圖”中創(chuàng)建?!纠?.5】在“學(xué)生管理”數(shù)據(jù)庫中,查詢1999年以后出生的學(xué)生的學(xué)號、姓名和出生日期。第24頁,共75頁。使用設(shè)計視圖創(chuàng)建【例4.6】在“學(xué)生管理”數(shù)據(jù)庫中,查詢姓“王”的學(xué)生的姓名、性別和出生日期?!纠?.7】在“學(xué)生管理”數(shù)據(jù)庫中,查詢學(xué)號第6位是2或者5的學(xué)生的學(xué)號、姓名和班級名稱?!纠?.8】在“學(xué)生管理”數(shù)據(jù)庫中,查詢分?jǐn)?shù)在70-80之間的同學(xué)的姓名、課程名稱和分?jǐn)?shù),并按分?jǐn)?shù)從高到低排列。第25頁,共75頁。4.3.3 運行和修改查詢1. 運行查詢查詢創(chuàng)建完成后,將保存在數(shù)據(jù)庫中。運行查詢后才

14、能看到查詢結(jié)果,運行查詢的方法:(1)在上下文選項卡“查詢工具|設(shè)計”-“結(jié)果”-“運行”。(2)在上下文選項卡“查詢工具|設(shè)計”的“結(jié)果”-“視圖”按鈕。(3)在導(dǎo)航窗口中選擇要運行的查詢雙擊。無論是利用向?qū)?chuàng)建的查詢,還是利用“設(shè)計視圖”建立的查詢,建立后均可以對查詢進(jìn)行編輯修改。第26頁,共75頁。運行和修改查詢2. 編輯查詢中的字段在“設(shè)計視圖”中打開要修改的查詢。(1)添加字段:從字段里表中選定一個或多個字段,并將其拖曳到查詢定義窗口的相應(yīng)列中。(2)刪除字段:單擊列選定器選定相應(yīng)的字段,然后按Delete鍵。(3)移動字段:先選定要移動的列,可以單擊列選定器來選擇一列,也可以通過相

15、應(yīng)的列選定器來選定相鄰的數(shù)列。將字段拖曳到新的位置。移走的字段機(jī)器右側(cè)的字段一起向右移動。第27頁,共75頁。運行和修改查詢(4)重命名查詢字段:若希望在查詢結(jié)果中使用用戶自定義的字段名稱替代表中的字段名稱,可以對查詢字段進(jìn)行重新命名。將光標(biāo)移動到查詢定義窗口中需要重命名的字段左邊,輸入新名后鍵入英文(:)即可。3. 編輯查詢中的數(shù)據(jù)源(1)添加表或查詢(2)刪除表或查詢第28頁,共75頁。4.3.4 設(shè)置查詢中的計算在設(shè)計選擇查詢時,除了進(jìn)行條件設(shè)置外,還可以進(jìn)行計算和分類匯總?!纠?.9】在“學(xué)生管理”數(shù)據(jù)庫中,查詢學(xué)生的學(xué)號、姓名、出生日期并計算年齡?!纠?.10】在“學(xué)生管理”數(shù)據(jù)庫中

16、,統(tǒng)計學(xué)生的課程總分和平均分。第29頁,共75頁。4.4 參數(shù)查詢參數(shù)查詢是一種動態(tài)查詢,可以在每次運行查詢時輸入不同的條件值,系統(tǒng)根據(jù)給定的參數(shù)值確定查詢結(jié)果,而參數(shù)值在創(chuàng)建查詢時不要定義。參數(shù)查詢一般建立在選擇查詢基礎(chǔ)上,在運行查詢時會出現(xiàn)一個或多個對話框,要求輸入查詢條件。根據(jù)查詢中參數(shù)個數(shù)的不同,參數(shù)查詢可以分為單參數(shù)查詢和多參數(shù)查詢。第30頁,共75頁。4.4.1 在設(shè)計視圖中創(chuàng)建單參數(shù)查詢【例4.11】在“學(xué)生管理”數(shù)據(jù)庫中創(chuàng)建單參數(shù)查詢,按輸入的學(xué)號查詢學(xué)生的所有信息。4.4.2 在設(shè)計視圖中創(chuàng)建多參數(shù)查詢【例4.12】在“學(xué)生管理”數(shù)據(jù)庫中創(chuàng)建多參數(shù)查詢,按輸入的性別和政治面貌

17、查詢學(xué)生的姓名和出生日期。第31頁,共75頁。4.5 交叉表查詢交叉表查詢通常以一個字段作為表的行標(biāo)題,以另一個字段的取值作為列標(biāo)題,在行和列的交叉點單元格處獲得數(shù)據(jù)的匯總信息,以達(dá)到數(shù)據(jù)統(tǒng)計的目的。交叉表查詢既可以通過交叉表查詢向?qū)韯?chuàng)建,也可以在設(shè)計視圖中創(chuàng)建。第32頁,共75頁。4.5.1 使用向?qū)?chuàng)建【例4.13】在“學(xué)生管理”數(shù)據(jù)庫中,從教師表中統(tǒng)計各個學(xué)院的教師人數(shù)及其職稱分布情況,建立所需的交叉表。第33頁,共75頁。4.5.2 使用設(shè)計視圖創(chuàng)建【例4.14】在“學(xué)生管理”數(shù)據(jù)庫中,創(chuàng)建交叉表查詢,查詢學(xué)生的各門課成績。【例4.15】在“學(xué)生管理”數(shù)據(jù)庫中,創(chuàng)建交叉表查詢,查詢各

18、學(xué)院男、女教師的人數(shù)。第34頁,共75頁。4.6 操作查詢操作查詢是在選擇查詢的基礎(chǔ)上創(chuàng)建的,可以對表中的記錄進(jìn)行追加、修改、刪除和更新。操作查詢包括生成表查詢、更新查詢、追加查詢和刪除查詢。第35頁,共75頁。4.6.1 生成表查詢生成表查詢可以使查詢的運行結(jié)果以表的形式存儲,生成一個新表,這樣就可以利用一個或多個表或已知的查詢再創(chuàng)建表,從而使數(shù)據(jù)庫中的表可以創(chuàng)建新表,實現(xiàn)數(shù)據(jù)資源的多次利用及重組數(shù)據(jù)集合?!纠?.16】在“學(xué)生管理”數(shù)據(jù)庫中,創(chuàng)建生成表查詢,查詢“中共黨員”教師的“編號”、“姓名”、“性別”和“政治面貌”字段,并生成“全校黨員信息”表。具體操作步驟詳見教師演示。第36頁,共

19、75頁。4.6.2 更新查詢在數(shù)據(jù)庫操作中,如果需要成批修改數(shù)據(jù),可以使用Access提供的更新查詢功能來實現(xiàn)。更新查詢可以對一個或多個表中符合查詢條件的數(shù)據(jù)進(jìn)行批量的修改?!纠?.17】在“學(xué)生管理”數(shù)據(jù)庫中,將所有專業(yè)課的學(xué)分減少0.5學(xué)分。具體操作步驟詳見教師演示。第37頁,共75頁。4.6.3 追加查詢追加查詢可以從一個或多個表將一組記錄追加到一個或多個表的尾部。追加記錄時只能追加匹配的字段,其它字段將被忽略,其次,被追加的數(shù)據(jù)表必須是存在的表,否則無法實現(xiàn)追加,系統(tǒng)將顯示相應(yīng)的錯誤信息.【例4.18】通過追加查詢,將“學(xué)生”表中所有“政治面貌”為“黨員”的學(xué)生信息追加到“全校黨員信息

20、”表中。第38頁,共75頁。4.6.4 刪除查詢刪除查詢又稱為刪除記錄的查詢,可以從一個或多個數(shù)據(jù)表中刪除記錄。記錄一經(jīng)刪除將不能恢復(fù),因此在刪除記錄前要做好數(shù)據(jù)備份。刪除查詢設(shè)計完成后,需要運行查詢才能將需要刪除的記錄刪除。如果要從多個表中刪除相關(guān)記錄,必須滿足以下幾點:已經(jīng)定義了相關(guān)表之間的關(guān)系在相應(yīng)的編輯關(guān)系對話框中選擇了“實施參照完整性”復(fù)選框和“級聯(lián)刪除相關(guān)記錄”復(fù)選框。第39頁,共75頁。刪除查詢【例4.19】在“學(xué)生管理”數(shù)據(jù)庫中,刪除“成績”表中所有不及格的學(xué)生信息。第40頁,共75頁。4.7 SQL查詢SQL查詢是使用SQL語言創(chuàng)建的一種查詢。在Access中每個查詢都對應(yīng)著

21、一個SQL查詢命令。當(dāng)用戶使用查詢向?qū)Щ虿樵冊O(shè)計器創(chuàng)建查詢時,系統(tǒng)會自動生成對應(yīng)的SQL命令,可以在SQL視圖中查看,除此之外,用戶還可以直接通過SQL視圖窗口輸入SQL命令來創(chuàng)建查詢。第41頁,共75頁。4.7.1 SQL簡介SQL(Structured Query Language)結(jié)構(gòu)化查詢語言是標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫語言。SQL語言的功能包括數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制4個部分。SQL語言具有以下特點:1高度的綜合2高度非過程化。3交互式與嵌入式相結(jié)合4語言簡潔,易學(xué)易用SQL語言結(jié)構(gòu)簡潔,只用了9個動詞就可以實現(xiàn)數(shù)據(jù)庫的所有功能,使用戶易于學(xué)習(xí)和使用。第42頁,共75頁。SQL

22、命令動詞功能分類命令動詞命令動詞數(shù)據(jù)查詢SELECT數(shù)據(jù)查詢數(shù)據(jù)定義CREATE創(chuàng)建對象DROP刪除對象ALTER修改對象數(shù)據(jù)操縱INSERT插入數(shù)據(jù)UPDATE更新數(shù)據(jù)DELETE刪除數(shù)據(jù)數(shù)據(jù)控制GRANT定義訪問權(quán)限REVOKE回收訪問權(quán)限第43頁,共75頁。4.7.2 數(shù)據(jù)查詢語句數(shù)據(jù)查詢是SQL的核心功能,SQL語言提供了SELECT語句用于檢索和顯示數(shù)據(jù)庫中表的信息,該語句功能強(qiáng)大,使用方式靈活,可用一個語句實現(xiàn)多種方式的查詢。1. SELECT語句的格式SELECT ALL|DISTINCT TOP PERCENT AS , AS .FROM AS, ASINNER|LEFTOUT

23、ER|RIGHTOUTER JOIN ASON .WHERE AND|OR .GROUP BY HAVING ORDER BY ASC|DESC, ASC|DESC.第44頁,共75頁。數(shù)據(jù)查詢語句2. 語法描述的約定說明“ ”內(nèi)的內(nèi)容為可選項;“”內(nèi)的內(nèi)容為必選項;“|”表示“或”,即前后的兩個值“二選一”。第45頁,共75頁。數(shù)據(jù)查詢語句3. SELECT語句中各子句的意義(1)SELECT子句:指定要查詢的數(shù)據(jù),一般是字段名或表達(dá)式。ALL:表示查詢結(jié)果中包括所有滿足查詢條件的記錄,也包括值重復(fù)的記錄。默認(rèn)為ALL。DISTINCT:表示在查詢結(jié)果中內(nèi)容完全相同的記錄只能出現(xiàn)一次。TOP

24、 PERCENT:限制查詢結(jié)果中包括的記錄條數(shù)為當(dāng)前條或占記錄總數(shù)的百分比為。AS :指定查詢結(jié)果中列的標(biāo)題名稱。第46頁,共75頁。數(shù)據(jù)查詢語句(2)FROM子句:指定數(shù)據(jù)源,即查詢所涉及的相關(guān)表或已有的查詢。如果這里出現(xiàn)JOINON子句則表示要為多表查詢指定多表之間的連接方式。(3)WHERE子句:指定查詢條件,在多表查詢的情況下也可用于指定連接條件。(4)GROUP BY子句:對查詢結(jié)果進(jìn)行分組,可選項HAVING表示要提取滿足HAVING子句指定條件的那些組。(5)ORDER BY子句:對查詢結(jié)果進(jìn)行排序。ASC表示升序排列,DESC表示降序排列。第47頁,共75頁。數(shù)據(jù)查詢語句SQL

25、數(shù)據(jù)查詢語句與查詢設(shè)計器中各選項間的對應(yīng)關(guān)系如下表所示。SELECT 子句查詢設(shè)計器中的選項SELECT“字段”欄FROM“顯示表”對話框WHERE“條件”欄GROUP BY“總計”欄ORDER BY“排序”欄第48頁,共75頁。4.7.3 單表查詢1. 簡單查詢只含有SELECT,F(xiàn)ROM基本子句,目標(biāo)字段為全部字段的查詢?!纠?.20】查詢學(xué)生表中的所有記錄。 SELECT * FROM 學(xué)生2. 選擇字段查詢只含有SELECT,F(xiàn)ROM基本子句,目標(biāo)字段為指定字段的查詢?!纠?.21】查詢學(xué)生的學(xué)號、姓名和年齡。SELECT 學(xué)號,姓名,Year(Date()-Year(出生日期) AS

26、 年齡 FROM 學(xué)生第49頁,共75頁。單表查詢3. 帶有條件的查詢是指在查詢中帶有簡單條件的WHERE字句的查詢?!纠?.22】在成績表中查找課程編號為J001且分?jǐn)?shù)在80分到90分之間的學(xué)生。SELECT 學(xué)號,課程編號,分?jǐn)?shù) FROM 成績 WHERE 課程編號=J001 AND 分?jǐn)?shù)=80 And 分?jǐn)?shù)80【例4.29】查找選修課程超過3門課程的學(xué)生學(xué)號。SELECT 學(xué)號 FROM 成績 GROUP BY 學(xué)號 HAVING COUNT(*)3第53頁,共75頁。單表查詢6. 查詢排序按指定的某個(或多個)字段對結(jié)果進(jìn)行排序的查詢?!纠?.30】從學(xué)生表中查詢學(xué)生的信息,并將查詢結(jié)

27、果按出生日期升序排序。SELECT * FROM 學(xué)生 ORDER BY 出生日期【例4.31】從成績表中查找課程編號為“J005”的學(xué)生的學(xué)號和分?jǐn)?shù),并按分?jǐn)?shù)降序排序。SELECT 學(xué)號,分?jǐn)?shù) FROM 成績 WHERE 課程編號=J005 ORDER BY 分?jǐn)?shù) DESC第54頁,共75頁。單表查詢7.消除結(jié)果重復(fù)行的查詢【例4.32】從成績表中查詢有選修課程的學(xué)生的學(xué)號(要求同一個學(xué)生只列出一次)。SELECT DISTINCT 學(xué)號 FROM 成績第55頁,共75頁。4.7.4 多表查詢?nèi)舨樵兩婕皟蓚€以上的表,即當(dāng)要查詢的數(shù)據(jù)來自多個表時,必須采用多表查詢方法,該類查詢方法也稱為連接查

28、詢。連接查詢是關(guān)系數(shù)據(jù)庫最主要的查詢功能。連接查詢可以是兩個表的連接,也可以是兩個以上的表的連接,也可以是一個表自身的連接。使用多表查詢時必須注意:(1)在FROM子句中列出參與查詢的表。(2)如果參與查詢的表中存在同名的字段,并且這些字段要參與查詢,必須在字段名前加表名。(3)必須在FROM子句中用JOIN或WHERE子句將多個表用某些字段或表達(dá)式連接起來。第56頁,共75頁。多表查詢有兩種方法可以實現(xiàn)多表的連接查詢。1. 用WHERE子句寫連接條件格式為:SELECT FROM AS , AS , AS WHERE AND AND 【例4.33】查找學(xué)生信息以及所選修課的課程名稱及分?jǐn)?shù)。S

29、ELECT 學(xué)生.*,課程名稱,分?jǐn)?shù) FROM 學(xué)生,課程,成績 WHERE 課程.課程編號=成績.課程編號 AND 學(xué)生.學(xué)號 = 成績.學(xué)號第57頁,共75頁。多表查詢2. 用JOIN子句寫連接條件在Access中JOIN連接主要分為INNER JOIN和 OUTER JOIN。INNER JOIN是最常用類型的連接。此連接通過匹配表之間共有的字段值來從兩個或多個表中檢索行。OUTER JOIN 用于從多個表中檢索記錄,同時保留其中一個表中的記錄,即使其他表中沒有匹配記錄。Access 數(shù)據(jù)庫引擎支持OUTER JOIN有兩種類型:LEFT OUTER JOIN和RIGHT OUTER J

30、OIN。格式為:SELECT FROM AS INNER|LEFTOUTER|RIGHT JOINOUTER ( AS ON .=. WHERE 第58頁,共75頁。多表查詢【例4.34】查詢學(xué)生的所修課程成績,輸出學(xué)生的學(xué)號、姓名、課程名稱、分?jǐn)?shù)。SELECT 學(xué)生.學(xué)號, 學(xué)生.姓名,課程.課程名稱,成績.分?jǐn)?shù) FROM 學(xué)生 INNER JOIN 成績 INNER JOIN 課程 ON 課程.課程編號=成績.課程編號 ON 學(xué)生.學(xué)號=成績.學(xué)號第59頁,共75頁。4.7.5 嵌套查詢在SQL語言中,當(dāng)一個查詢是另一個查詢的條件時,即在一個SELECT語句的WHERE子句中出現(xiàn)另一個SE

31、LECT語句時,這種查詢被稱為嵌套查詢。通常把內(nèi)層的查詢語句稱為子查詢,外層查詢語句稱為父查詢。嵌套查詢的運行方式是由里向外,也就是說,每個子查詢都先于它的父查詢執(zhí)行,而子查詢的結(jié)果作為其父查詢的條件。子查詢的SELECT語句中不能使用ORDER BY子句,ORDER BY子句只能對最終查詢結(jié)果排序。第60頁,共75頁。嵌套查詢1帶關(guān)系運算符的嵌套查詢父查詢與子查詢之間用關(guān)系運算符(、=、=、)進(jìn)行連接?!纠?.35】根據(jù)學(xué)生表,查詢年齡大于所有學(xué)生平均年齡的學(xué)生,并顯示其學(xué)號、姓名和年齡。SELECT 學(xué)號,姓名,YEAR(DATE()-YEAR(出生日期) AS 年齡 FROM 學(xué)生 WH

32、ERE YEAR(DATE()-YEAR(出生日期)(SELECT AVG(YEAR(DATE()-YEAR(出生日期) FROM 學(xué)生)第61頁,共75頁。嵌套查詢2帶有IN 的嵌套查詢【例4.36】根據(jù)學(xué)生表和成績表查詢沒有選修課程編號為“J005”的學(xué)生的學(xué)號和姓名。SELECT 學(xué)號,姓名 FROM 學(xué)生 WHERE 學(xué)號 NOT IN (SELECT 學(xué)號 FROM 成績 WHERE 課程編號 =J005)第62頁,共75頁。嵌套查詢3帶有EXISTS的嵌套查詢【例4.37】根據(jù)“學(xué)生”表和“成績”表,查詢所有選修了“J005”課程的學(xué)生的學(xué)號和姓名。SELECT 學(xué)號,姓名 FRO

33、M 學(xué)生 WHERE EXISTS(SELECT * FROM 成績 WHERE 成績.學(xué)號=學(xué)生.學(xué)號 AND 課程編號=J005)第63頁,共75頁。4.7.6 聯(lián)合查詢聯(lián)合查詢可以將兩個或多個獨立查詢的結(jié)果組合在一起。使用“UNION”連接的兩個或多個SQL語句產(chǎn)生的查詢結(jié)果要有相同的字段數(shù)目,但是這些字段的大小或數(shù)據(jù)類型不必相同。另外,如果需要使用別名,則僅在第一個SELECT語句中使用別名,別名在其他語句中將被忽略。如果在查詢中有重復(fù)記錄即所選字段值完全一樣的記錄,則聯(lián)合查詢只顯示重復(fù)記錄中的第一條記錄;要想顯示所有的重復(fù)記錄,需要在“UNION”后加上關(guān)鍵字“ALL”,即寫成“UN

34、ION ALL”?!纠?.38】查詢所有學(xué)生的學(xué)號和姓名以及所有教師的教師編號和姓名。SELECT 學(xué)號,姓名 FROM 學(xué)生 UNION SELECT 教師編號,姓名 FROM 教師第64頁,共75頁。4.8 其他SQL語句4.8.1 數(shù)據(jù)定義語句數(shù)據(jù)定義功能是SQL的主要功能之一。利用數(shù)據(jù)定義功能可以完成建立、修改、刪除數(shù)據(jù)表結(jié)構(gòu)以及建立、刪除索引等操作。1創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表定義包含定義表名、字段名、字段數(shù)據(jù)類型、字段的屬性、主鍵、外鍵與參照表、表約束規(guī)則等。在SQL語言中使用CREATE TABLE語句來創(chuàng)建數(shù)據(jù)表,使用CREATE TABLE定義數(shù)據(jù)表的格式為:CREATE TABLE

35、( () NOT NULL PRIMARY KEY|UNIQUEREFERENCES (),主鍵)第65頁,共75頁。4.8.1 數(shù)據(jù)定義語句說明:(1)PRIMARY KEY將該字段創(chuàng)建為主鍵,被定義為主鍵的字段其取值唯一;UNIQUE為該字段定義無重復(fù)索引。 (2)NOT NULL不允許字段取空值。 (3)REFERENCES 子句定義外鍵并指明參照表及其參照字段。(4)當(dāng)主鍵由多字段組成時,必須在所有字段都定義完畢后再通過PRIMARY KEY子句定義主鍵。(5)所有這些定義的字段或項目用逗號隔開,同一個項目內(nèi)用空格分隔。(6)字段數(shù)據(jù)類型是用SQL標(biāo)識符表示的。第66頁,共75頁。4.

36、8.1 數(shù)據(jù)定義語句【例4.39】在“學(xué)生管理”數(shù)據(jù)庫中,使用SQL語句定義一個名為“Student”的表,結(jié)構(gòu)為:學(xué)號(文本,10字符)、姓名(文本,6字符)、性別(文本,2字符)、出生日期(日期/時間)、簡歷(備注)、照片(OLE),學(xué)號為主鍵,姓名不允許為空值。CREATE TABLE Student(學(xué)號 TEXT(10) PRIMARY KEY NOT NULL,姓名 TEXT(6) NOT NULL,性別 TEXT(2),出生日期 DATE,簡歷 MEMO,照片 OLEOBJECT)第67頁,共75頁。數(shù)據(jù)定義語句【例4.40】在“學(xué)生管理”數(shù)據(jù)庫中,使用SQL語句定義一個名為“G

37、rade”的表,結(jié)構(gòu)為:學(xué)號(文本,10字符)、課程編號(文本型,5字符)、分?jǐn)?shù)(單精度型),主鍵由學(xué)號和課程編號兩個字段組成,并通過學(xué)號字段與“Student”表建立關(guān)系,通過課程編號字段與“Course”表建立關(guān)系。CREATE TABLE Grade(學(xué)號 TEXT(10) NOT NULL REFERENCES Student(學(xué)號),課程編號 TEXT(5) NOT NULL REFERENCES Course(課程編號),分?jǐn)?shù) SINGLE,PRIMARY KEY(學(xué)號,課程編號)第68頁,共75頁。數(shù)據(jù)定義語句2修改表結(jié)構(gòu)ALTER TABLE語句用于修改表的結(jié)構(gòu),主要包括增加字段、刪除字段、修改字段的類型和大小等。(1

溫馨提示

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

評論

0/150

提交評論