數據庫及其應用2120第05章_第1頁
數據庫及其應用2120第05章_第2頁
數據庫及其應用2120第05章_第3頁
數據庫及其應用2120第05章_第4頁
數據庫及其應用2120第05章_第5頁
已閱讀5頁,還剩52頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數據庫及其應用課程代碼2120

2005年版第5章查詢“查詢”是Access數據庫的一個重要對象,是基于表的一種視圖,查詢獲得的記錄集顯示在虛擬的數據表視圖中,并不占用實際空間。使用“查詢”可以從一個或多個表中按照某種準則檢索數據,在查詢的同時可以進行計算、更新或刪除等修改數據源的操作,還能通過查詢生成一個新表,更重要的是可以把查詢的結果作為窗體、報表或數據訪問頁的數據源。5.1

查詢類型與查詢視圖

5.1.1查詢類型

5.1.2查詢視圖

5.2

選擇查詢

5.2.l使用向導創建選擇查詢

5.2.2在設計視圖中創建選擇查詢

5.2.3在“設計”視圖中建立查詢準則

5.3

參數查詢

5.4

交叉表查詢

5.4.1什么是交叉表

5.4.2使用向導創建交叉表查詢

5.5

操作查詢

5.5.1生成表查詢

5.5.2更新查詢

5.5.3追加查詢

5.5.4刪除查詢

5.6

SQL查詢

5.6.1SQL簡介

5.6.2SQL查詢命令

5.6.3SQL查詢示例

5.6.4聯合查詢

5.6.5傳遞查詢

5.6.6數據定義查詢

5.1查詢類型與查詢視圖根據查詢方法和對查詢結果的處理不同,可以把Access中的查詢分為“選擇查詢”、“參數查詢”、“交叉表查詢”、“操作查詢”和“SQL查詢”等五種查詢。Access為查詢提供了三種視圖方式:“設計視圖”、“數據表”視圖和“SQL”查詢視圖。5.1.1查詢類型1.選擇查詢選擇查詢是最重要的查詢類型,根據某些限制條件從一個或多個表中檢索數據,并在虛擬的數據表視圖中顯示結果,在查詢的同時還可對記錄進行分組、統計、計數、求平均值或其他計算。2.參數查詢參數查詢是選擇查詢的一種,不同之處是它在執行時顯示一個對話框,用來提示用戶輸入有關參數,該參數作為查詢條件檢索數據,并將結果按指定的形式顯示出來。參數查詢也可以作為窗體、報表和數據訪問頁的基礎。3.交叉表查詢交叉表查詢是一種創建類似于Excel數據透視表的查詢,這種查詢主要用于對數據進行分析計算,可顯示來源于表中某個數值字段的合計、計數或平均值等。4.操作查詢操作查詢是一種處理表中記錄的查詢,并且一次可以批量地處理大量的記錄。⑴刪除查詢從一個或多個表中刪除記錄。⑵更新查詢更改已經存在數據的表。⑶追加查詢是一種向已有數據的表中添加記錄的查詢⑷生成表查詢是一種通過復制查詢結果而生成新表的查詢,生成的表獨立于數據源,如同在數據庫中創建的表一樣5.SQL查詢是用戶使用SQL語句創建的查詢。⑴聯合查詢是一種將來自一個或多個表的數據合并到一個表中的查詢。⑵傳遞查詢是使用服務器能夠接受的SQL語言直接向網絡數據庫服務器發送的SQL語句,通過傳遞SQL語句訪問服務器上數據庫中的表。⑶數據定義查詢是一種包含SQL數據定義語言的查詢,用于創建或更新數據庫中的對象。5.1.2查詢視圖“查詢”和“表”類似,Access為查詢對象提供了“設計”、“數據表”和“SQL”三種視圖方式。如下圖,見教材P116圖5-2。設計視圖用于創建查詢,數據表視圖用于顯示查詢結果,而SQL視圖是一個用來輸入SQL查詢語言的窗口。1.“查詢”之“設計”視圖是一個用于創建或修改查詢的窗口,窗口中包含有創建或修改查詢的各種要素。設計視圖分為上下兩部分:上面用于顯示當前查詢的數據來源,可以是數據庫中的表或已創建的其他查詢;下面用來設置查詢輸出的字段、查詢準則和記錄排序方式等。2.“查詢”之“數據表”視圖數據表視圖以行、列形式顯示查詢數據,用于瀏覽、添加、搜索、編輯或刪除查詢數據。3.“查詢”之SQL查詢視圖Access中的查詢是使用SQL語言實現的。若熟悉SQL語言,可以直接在SQL窗口中書寫SQL語句;若不熟悉SQL語言,可以在“設計”視圖中采用可視化地操作方法,只需在“設計”視圖中給出要顯示的字段、準則(條件)和排序方式等,系統就會自動生成SQL語句,切換到SQL視圖,就可以看到等效的SQL語句。本節結束5.2

選擇查詢5.2.1使用向導創建選擇查詢使用向導創建查詢,除了能檢索出所需要的數據外,還能對查詢結果集進行計數、求最大值、求最小值、求平均值和統計匯總等工作。5.2選擇查詢5.2.1使用向導創建選擇查詢1.打開數據庫2.單擊“數據庫”窗口中的“對象”,單擊“使用向導創建查詢”的快捷方式→打開或雙擊“查詢”列表中的“使用向導創建查詢”的快捷方式3.選擇數據源和字段數據源可以是表或已經存在的另一個查詢在表/查詢選擇表,在可用字段中選擇所需的字段后,單擊>5.2

選擇查詢5.2.1使用向導創建選擇查詢4.詢問采用明細查詢還是匯總查詢明細查詢:普通的選擇查詢匯總查詢:是在普通查詢基礎上進行統計處理5.為查詢命名6.完成5.2

選擇查詢5.2.2在設計視圖中創建選擇查詢使用設計視圖創建選擇查詢的三個要點:一是確定查詢數據源二是指定查詢輸出字段三是設計查詢準則5.2

選擇查詢5.2.2在設計視圖中創建選擇查詢1.打開數據庫2.單擊“數據庫”窗口中的“對象”,然后單擊“在設計視圖中創建查詢””的快捷方式→打開或雙擊“查詢”列表中的“在設計視圖中創建查詢”的快捷方式3.將表添加到查詢“設計”窗口中作為數據源,然后關閉。4.建立多表之間的關系。5.向查詢中添加字段5.2選擇查詢5.2.2在設計視圖中創建選擇查詢6.查詢設置排序:指定是否按該字段對結果進行排序顯示:指定是否顯示該字段準則:指定查詢條件7.切換到“數據表”視圖,查看一下結果8.保存查詢例如:根據學生、課程和成績表建立學生成績S-C-G的查詢,包括學號、姓名、課程名和各科成績。5.2選擇查詢5.2.3在“設計”視圖中建立查詢準則1.表達式表達式是由運算符、常量、函數或字段等若干部分組成的有意義的式子。⑴操作符及特殊符號算術:+、-、*、/比較:>、>=、<、<=、=、<>、between……end(兩者之間)5.2

選擇查詢5.2.3在“設計”視圖中建立查詢準則1.表達式⑴操作符及特殊符號邏輯:not、and、or通配符:*任意多個字符?單個字符[]與方括號內的任何單個字符匹配!與不在方括號內的任何字符匹配#與任何單個數字字符匹配5.2

選擇查詢5.2.3在“設計”視圖中建立查詢準則1.表達式⑴操作符及特殊符號Like前后兩個字符串是否匹配in…給定的值是否在…之中&連接兩個字符串字符串常量的定界符為雙引號日期常量的定界符為#5.2

選擇查詢5.2.3在“設計”視圖中建立查詢準則1.表達式⑵使用表達式設置查詢準則例如:姓名like“張*”所有姓張的數量>500出生日期=#1985-01-01#性別=“女”AND職稱=“工程師”工資>=2#00工資大于2000,2100,2200…5.2

選擇查詢5.2.3在“設計”視圖中建立查詢準則2.設置查詢準則示例寫在同一行的條件為邏輯“與”寫在不同行的條件為邏輯“或”5.2選擇查詢5.2.3在“設計”視圖中建立查詢準則3.在查詢中建立計算字段⑴打開數據庫⑵單擊“數據庫”窗口中的“對象”,然后單擊“在設計視圖中創建查詢”的快捷方式→打開或雙擊“查詢”列表中的“在設計視圖中創建查詢”的快捷方式⑶將表添加到查詢“設計”窗口中作為數據源,然后關閉。5.2選擇查詢5.2.3在“設計”視圖中建立查詢準則3.在查詢中建立計算字段⑷在第一個空字段的位置上單擊一下,單擊“工具欄”上的“生成器”按鈕⑸在表達式生成器中輸入計算字段的表達式,確定⑹將表達式重命名:直接把表達式1改為字段名例如:在成績表中,計算總成績總成績=平時*20%+期末*80%5.3參數查詢參數查詢的特點是:在執行時能顯示對話框來提示用戶輸入信息。操作步驟:⑴打開數據庫⑵單擊“數據庫”窗口中的“對象”,然后單擊“在設計視圖中創建查詢””的快捷方式→打開或雙擊“查詢”列表中的“在設計視圖中創建查詢”的快捷方式⑶將表添加到查詢“設計”窗口中作為數據源,然后關閉。5.3參數查詢操作步驟:⑷在要作為參數字段下面的“準則”單元格中輸入提示信息,注意:提示信息一定要用方括號[]括起來。⑸單擊工具欄上的“運行”按鈕,出現“輸入參數值”的對話框,在對話框中輸入要查詢的值。⑹單擊確定,顯示出查詢的結果。關閉顯示對話框。⑺保存查詢。5.4

交叉表查詢5.4.1什么是交叉表查詢是按行、列形式分組安排數據:一組作為行標題顯示在表的左部,另一組作為列標題顯示在表的頂部,而行與列的交叉點的單元格則顯示數值。交叉表即可以在表的基礎上創建,也可以在另一個查詢基礎上創建。5.4

交叉表查詢5.4.1使用向導創建交叉表查詢例如:根據學生成績查詢,建立交叉表查詢S-C-G

交叉表1.打開數據庫STUDENT,選擇“查詢”對象2.單擊“數據庫”窗口工具欄的“新建”按鈕,然后在“新建查詢”的對話框中雙擊“交叉表查詢向導”5.4

交叉表查詢5.4.1使用向導創建交叉表查詢例如:例如:根據學生成績查詢,建立交叉表查詢S-C-G

交叉表3.選擇查詢數據源

S-C-G

,確定字段的行標題(學號和姓名)和列標題(課程名)。4.確定行列交叉的單元格上顯示的數據(成績),在函數列表中選擇“平均”,。5.保存命名,完成。5.5

操作查詢操作查詢是一種處理表中記錄的查詢,并且一次可以批量地處理大量的記錄。如刪除記錄、更新記錄、追加記錄,甚至生成一個新表。特點:在查詢的同時,會改變原來表中的數據。5.5

操作查詢5.5.1生成表查詢1.打開數據庫STUDENT,選擇“查詢”對象,單擊“數據庫”窗口工具欄的“新建”按鈕,然后在“新建查詢”的對話框中雙擊“設計視圖”2.選擇表作為生成表的數據源,3.創建一個選擇查詢4.單擊“查詢”菜單的“生成表查詢”,在“表名稱”中輸入表的名稱,選中存入“當前數據庫”,確定。5.單擊工具欄上的“運行”按鈕,提醒用戶要創建一個新表,單擊“是”。5.5操作查詢5.5.2更新查詢利用更新查詢可以按指定的條件一次性地更新一批記錄,而不必逐個地去修改每一條記錄。更新查詢將改變原來的數據,注意做好備份。1.打開數據庫,選擇“查詢”對象,單擊“數據庫”窗口工具欄的“新建”按鈕,然后在“新建查詢”的對話框中雙擊“設計視圖”2.選擇表作為查詢的數據源.

55操作查詢5.5.2更新查詢3.向查詢添加字段(查詢的條件和更新的字段)4.單擊“查詢”菜單的“更新查詢”,在更新字段的“更新到”單元格中輸入更新的表達式5.單擊工具欄上的“運行”按鈕,提醒用戶是否要更新這些記錄,單擊“是”,將進行更新并且不能撤消這種更改。6.打開原來的表,將會看到更新的結果。5.5操作查詢5.5.3追加查詢追加查詢是一種從一個表向另一個表追加記錄的操作,特別適合從已經存在數據的源表按照指定條件向目標表轉移的情況。要求源表和目標表必須具有若干個相同類型的字段。1.先創建一個選擇查詢,該查詢應包含追加記錄的源表。2.在查詢“設計”視圖中,單擊工具欄上的“查詢類型“按鈕”,選擇“追加查詢”5.5

操作查詢5.5.3追加查詢3.在“表名稱”框中輸入目標文件名4.如果該表在當前打開的數據庫中,單擊“當前數據庫”,否則單擊“其他數據庫”,并鍵入存放這個數據庫的路徑和名稱,確定5.查詢類型變為“追加查詢”,兩個表如有相同的名稱的字段,Access將自動在“追加到”行中填上相同的名稱;如果沒有相同的名稱的字段,在“追加到”行中輸入所要追加到表中字段的名稱5.5

操作查詢5.5.3追加查詢6.單擊工具欄上的“視圖”,切換到數據表視圖,可以預覽,必要時,返回到“設計”視圖進行修改。7.單擊工具欄上的“運行”按鈕,執行追加操作。8.打開原來的表,將會看到追加的記錄。.5.5操作查詢5.5.4刪除查詢刪除查詢主要用于批量的刪除記錄。1.在查詢“設計”視圖中,選擇表2.單擊工具欄上的“查詢類型”按鈕,選擇“刪除查詢”3.把要設置刪除準則的字段拖到設計網格,然后設置刪除準則5.5操作查詢5.5.4刪除查詢4.如果要預覽即將刪除的記錄,可切換到“數據表”視圖查看,然后返回查詢“設計”視圖,必要時可進行修改5.如果要刪除記錄,單擊工具欄上的“運行”按鈕,執行刪除操作。6.打開原來的表,查看記錄。7.保存查詢嗎?是保存。5.6SQL查詢SQL查詢是用戶使用SQL語句創建的查詢。Access將“聯合查詢”、“傳遞查詢”和“數據定義查詢”歸結為SQL查詢。5.6.1SQL簡介SQL突出之處是查詢。能查詢滿足各種條件的記錄,還能在查詢中進行各種計算和對查詢結果進行分組排序等。5.6

SQL查詢5.6.2SQL查詢命令1.命令格式SELECT[*][<表名>.]<字段名1>,…FROM[<數據庫名>!]<表名>,…[INSERT/LEFT/RIGHT/FULL]JOIN<數據庫名>!<表名>[ON<聯接條件>…][WHERE<聯接條件>[AND<聯接條件>]…][GROUPBY<分組表達式>…][HAVING<篩選條件>][UNION<SELECT命令>][ORDERBY<字段>[ASC/DESC]…]5.6

SQL查詢5.6.2SQL查詢命令1.命令格式注意:[]的內容表示任選,<>內容是必選/表示選擇其中任一子句各子句之間至少有一個空格一個SQL語句可以占多行,除最后一行以外其他行最后都有一個分號;2.命令的功能從指定的表中檢索出滿足條件的記錄5.6

SQL查詢5.6.2SQL查詢命令3.說明SELECT子句指出查詢的輸出字段FROM子句指出查詢的表WHERE子句指出查詢的條件*:表示選擇表中的所有字段<表名>.<字段名>:指出表中的某個字段5.6

SQL查詢5.6.2SQL查詢命令3.說明LEFTJOIN<數據庫名>!<表名>稱為左聯接,其含義是除了滿足聯接條件的記錄出現在結果表中外,對于左表(第1個表)不滿足聯接條件的記錄也出現在查詢結果中,而右表(第2個表)不滿足聯接條件的記錄返回空值。5.6SQL查詢5.6.2SQL查詢命令3.說明RIGHTJOIN<數據庫名>!<表名>稱為右聯接,其含義是除了滿足聯接條件的記錄出現在結果表中外,對于右表不滿足聯接條件的記錄也出現在查詢結果中,而左表不滿足聯接條件的記錄返回空值。FULLJOIN稱為完全聯接,其含義是除了滿足聯接條件的記錄出現在結果表中外,左有兩表不滿足聯接條件的記錄返回空值。5.6SQL查詢5.6.2SQL查詢命令3.說明GROUPBY子句用于對查詢結果進行分組計算,需通過HAVING<篩選條件>指明分組條件UNION<SELECT命令>子句用于將兩個SELECT語句的查詢結果進行“并”運算,默認組合結果中排除重復行。ORDERBY<字段>子句用于對查詢結果按指定的字段進行排序,ASC-升序,DESC—降序,默認升序5.6SQL查詢5.6.3SQL查詢示例例1:SELECT*FROM學生

WHERE性別=“男”例2:SELECT課程名,學分FROM課程

WHERE學分>=8例3:SELECTSUM(學時數)AS總學時

FROM課程5.6SQL查詢5.6.3SQL查詢示例例4:SELECT姓名,性別,出生日期

FROM學生

WHERE出生日期IN(SELECTMIN(出生日期)FROM學生

WHERE性別=“女”)

查詢年齡最大的女生的姓名,性別,出生日期5.6

SQL查詢5.6.3SQL查詢示例例5:SELECT姓名,性別,出生日期

FROM學生

ORDERBY性別DESC,出生日期例6:SELECT性別,COUNT(性別)

FROM學生

GROUPBY性別

統計男女生人數。5.6

SQL查詢5.6.4聯合查詢1.打開數據庫,選擇“查詢”對象,單擊“數據庫”窗口工具欄的“新建”按鈕2.在“新建查詢”的對話框中單擊“設計視圖”,然后單擊確定3.單擊顯示表對話框的關閉按鈕4.選擇“查詢”菜單的“SQL特定查詢”,然后單擊“聯合”命令5.輸入SQL語句(SELECT學號FROM學生WHERE性別=“男”UNIONSELECT學號FROM成績

溫馨提示

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

最新文檔

評論

0/150

提交評論