《數據庫原理和應用(Access)》第4章:建立和使用查詢.ppt
《《數據庫原理和應用(Access)》第4章:建立和使用查詢.ppt》由會員分享,可在線閱讀,更多相關《《數據庫原理和應用(Access)》第4章:建立和使用查詢.ppt(80頁珍藏版)》請在裝配圖網上搜索。
1、第 4 章 建立和使用查詢 1、 各種查詢的創(chuàng)建及使用方法 2、 SQL 查詢語句的基本格式 3、 用 Access中的工具進行 SQL查詢 。 知識重點 4.1 查詢對象的概述 4.1.1 查詢對象的概念 查詢是 Access進行數據查找并對數據進行分析、計算、更新及其 他加工處理的數據庫對象。查詢是通過從一個或多個表中提取數據并進 行加工處理而生成的。查詢本身也是一個表結構,僅僅是一個結構,也 就是說并不占有相應的物理空間,它在使用的時候是根據結構從相應的 表中提取數據。當對應表中的數據發(fā)生變化時,查詢也進行相應的更新 。查詢結果可以作為窗體、報表或是數據訪問頁等其他數據庫對象的數 據源。
2、 查詢分為 4類: 選擇查詢:可以進行數據的檢索和統(tǒng)計; 參數查詢:根據用戶提供的數據參數進行數據的檢索; 動作查詢:在選擇查詢的基礎上,對查詢出的結果進行更新操作; SQL查詢:通過編寫 SQL語句進行數據的檢索。 4.1.2 查詢對象的功能 查詢在數據庫的管理與使用中的作用: 使用查詢可以快速準確的將注意力放到目標數據上,將其他無關數據排除 到查詢之外。通過查詢游覽表中的數據,分析數據或修改數據。 通過操作查詢可以對查詢結果,也就是目標數據進行操作,方便了用戶操 作。 查詢雖然本身只是一個結構,并不真正具有數據,但和表一樣可以作為數 據源為其他數據庫對象,例如窗體、報表等服務。 查詢是一個
3、固定的結構,可以將某個經常處理的數據或統(tǒng)計定義為查詢,可以 減少操作的步驟,不用每次都從原始數據中進行查詢,提高效率。 通過查詢,用戶可以對數據進行統(tǒng)計和計算。 查詢的結果有一定生存期。當一個查詢關閉后,其結果就不存在了。 所有記錄都是保存在原來的表中。 這樣處理有兩個好處: 節(jié)約外存空間。對查詢的要求是多種多樣的,長期使用數據庫,必 然會生成大批量的、種類繁多的查詢,如果將這些查詢的結果都保存下 來,必然會占用巨大的外存空間。另外,許多查詢用過之后可能再也不 會使用了,也沒有必要長期保存。 當記錄數據信息的基本表發(fā)生變化時,仍可用這些查詢進行同樣的 查找,并且獲得的是變化之后的實際數據。也就
4、是說,可以使查詢結果 與表的更改保持同步。 4.2選擇查詢 選擇查詢就是按設定的條件從數據源中查找目標數據的操作。查詢 的結果是一個二維表結構,但這個二維表結構并不實際存在,只是一個 數據記錄的動態(tài)集,可以進行查看、修改等操作。選擇查詢是數據庫應 用技術中使用頻率最高的一種查詢。此外,選擇查詢還可以對數據進行 分組等復雜操作,并針對分組進后的數據進行求和、計數、求平均值等 匯總計算。 4.2.1 簡單查詢 簡單查詢是指對于查詢的結果沒有條件的限制,只是從一個數據源或多個 數據源中提取感興趣的字段組成一個新的記錄集的查詢方式。 簡單查詢的創(chuàng)建主要有兩種方式:設計視圖和查詢向導。新建簡 單查詢的步
5、驟如下: 第一步:在數據庫窗口中選擇 【 查詢 】 模塊。 第二步:單擊工具欄上的 【 新建 】 按鈕,然后在彈出的對話框中 選擇新建的方式,如圖 4 1所示。 圖 4 1選擇創(chuàng)建查詢方式窗口 第三步:在新建查詢對話框中可以選擇“使用設計視圖”或“者向導方 式”來創(chuàng)建簡單查詢,其中向導方式根據查詢類型的不同還可以分成:簡單查 詢向導、交叉表查詢向導、查找重復項查詢向導、查找不匹配項查詢向導。 查詢的創(chuàng)建可以由一個查詢設計器或 4個查詢向導共 5種方式來完成,在 向導的指導下可以完成不同功能的簡單查詢設計。 1.使用查詢設計器創(chuàng)建查詢 使用查詢設計器創(chuàng)建查詢,具有很高的靈活性。 【 例 4 1】
6、 使用查詢設計器創(chuàng)建查詢,查詢所有讀者借閱圖書的“書 名”、“價格”與“讀者姓名”。 第一步:打開 tushu數據庫,選擇 【 查詢 】 模塊, 【 在設計視圖中創(chuàng)建查 詢 】 命令或者單擊 【 新建 】 按鈕,在如圖 4 1的窗體中選擇 【 設計視圖 】 命令。 圖 4 1選擇創(chuàng)建查詢方式窗口 第二步:選擇查詢涉及到的表。在如圖 4 2所示的 【 顯示表 】 窗體中選擇 查詢所涉及到的表。雙擊需要添加的表名,或是選中表后單擊 【 添加 】 按鈕就 可以將目標表添加到這次查詢中。添加結束后單擊 【 關閉 】 按鈕,進入設計視 圖。這里將“圖書”、“讀者”和“借還記錄”三個表添加到設計器中。 圖
7、 4 2創(chuàng)建查詢添加相關表 第三步:選擇查詢涉及的字段。 如果事先對表之間的關系進行了正確的配置,三個表之間會自動建立連接。如 果表之間沒有建立連接則需要手動連接相關表格,連接的方法與創(chuàng)建關系時相 同。如圖 4 3所示。 圖 4 3 相關表自動創(chuàng)建連接 將查詢相關字段添加到字段列表中,添加字段的方法有兩種:第一種,從 表單中雙擊目標字段,字段會自動添加到窗體下方的字段列表中;第二種,選 中目標字段,然后按住左鍵,將目標字段拖動到字段列表的相應位置松開。這 里添加讀者表的“ dzxm”字段、圖書表的“ tsm”和“ jiage”字段。 視圖下方的各種欄目根據查詢類型的不同有不同的組合。常用的是:
8、 字段:添加與查詢有關系的字段。 表:設定字段所在的表。 顯示:設定在最后的查詢結果中是否顯示該字段,如果該字段只是作為查 詢條件,而不是最終用戶感興趣的字段,可將該欄目的“ ”號勾掉。 條件:設定查詢的條件。 第三步:完成創(chuàng)建 設定結束后對查詢對象進行保存,并設定查詢的名稱。 2.使用向導創(chuàng)建選擇查詢 使用向導創(chuàng)建查詢的優(yōu)點是方法比較簡單、直觀,但是缺少靈活性。選擇 查詢向導根據查詢類型的不同還可以分成:簡單查詢向導、交叉表查詢向導、 查找重復項查詢向導、查找不匹配項查詢向導。 1.簡單查詢向導 簡單查詢向導只能進行簡單查詢的創(chuàng)建,通常在后期仍然需要對向導創(chuàng) 建的查詢進行補充和調整。 第一步
9、:在打開的數據庫中,選擇 【 查詢 】 模塊,單擊工具欄上的 【 新 建 】 。在如圖 4 1所示的“新建查詢”對話框中選擇“簡單查詢向導”并單擊 【 確定 】 按鈕。 圖 4 1選擇創(chuàng)建查詢方式窗口 第二步:設定查詢涉及的表與字段 , 如圖 4 4示 。 對話框要有三個部分 , 首先從 “ 表 /查詢 ” 下拉控件中選擇某個與查詢有關的表 , 例如 “ 借還記錄 ” 表 。 此時下方 “ 可用字段 ” 列表框中會列出該表中的所有字段 。 然后依次將本次查 詢需要的字段通過動作按鈕添加到右側的 “ 選定的字段 ” 列表框中 。 選定結束 后單擊 【 下一步 】 。 圖 4 4創(chuàng)建查詢向導選擇相
10、關字段 注意 , 首先保證相關表之間建立了正確的表關系 , 否則可能出現不 能正確使用向導的情況 。 第三步:彈出的對話框要求指定查詢的名稱以及向導結束后進行的 工作 。 這里使用默認的查詢名稱 “ 借閱信息 查詢 ” 。 設定結束后單擊 【 完成 】 按鈕 。 2.查找重復項查詢向導 查找重復項是指從某字段中查找重復的數據,并可以將這些數據對應的其 他字段顯示出來。 【 例 4 2】 查找那些用戶借閱了 2本以上的圖書,并顯示借還的日期。 實際就是查找那些在“借還記錄”表“ jszh(借書證)”字段中存在重復情 況的記錄。 第一步:打開 tushu數據庫,選擇 【 查詢 】 模塊,單擊工具欄
11、中的 【 新建 】 按鈕,在如圖 4 1的窗體中選擇“查找重復項查詢向導”命令。 圖 4 1選擇創(chuàng)建查詢方式窗口 第二步:彈出的窗體要求用戶選擇重復數據字段所在的表或查詢 , 如圖 4 5 所示 。 選擇 “ 借還記錄 ” , 單擊 【 下一步 】 。 圖 4 5 查找重復項查詢向導數據源設定 第 三步:彈出的“查找重復項查詢向導 字段設定”對話框要求設定查找 重復數據的目標字段,將左側“可用字段”中列表中的“ jszh”字段添加到右側 的“重復值字段”列表中,單擊 【 下一步 】 。 第四步:彈出的“查找重復項查詢向導 其它字段設定”對話框要求輸入 除了重復字段外還顯示什么字段,如圖 4 6
12、所示。這里將左側“可用字段”列 表中的“ jhrq”、“ jhzh”兩字段添加到右側“另外的查詢字段”列表中。單擊 【 下一步 】 。 圖 4 6查找重復項查詢向導其他字段設定 第五步:設定查詢的名稱以及向導結束后的工作。向導結束后 有兩種選擇:查看查詢和修改設計。如果對查詢結構還需要調整, 則選擇“修改設計”,并進入到“查詢設計器”窗口對查詢結構進 行調整??梢赃x擇“查看查詢”,查看本次查詢的結果。設定后單 擊 【 完成 】 按鈕。 3.查找不匹配項查詢向導 查找不匹配項查詢是對兩個表中的兩個字段進行比較,查找存在于一 個字段中而另一個表中對應字段沒有的數據。 【 例 4 3】 查找沒有人借
13、閱的圖書名稱。 沒有人借閱的圖書就是“圖書”表中有,而“借還記錄”表中沒有的 圖書。 第一步:打開 tushu數據庫,選擇 【 查詢 】 模塊,單擊工具欄中的 【 新建 】 按鈕,在如圖 4 1的窗體中選擇“查找不匹配項查詢”命令。打開后如圖 4 7 所示。要求設定兩個表中的基本表。因為查找圖書表中存在,而借還記錄表中沒 有的圖書,所以基本表應該是“圖書”表。單擊 【 下一步 】 。 圖 4 7創(chuàng)建查找不匹配項查詢向導基本表設定 第二步:在彈出的“創(chuàng)建查找不匹配項查詢向導比較表設定”對話框中 選擇用來比較的表,所以這里選擇“借閱信息”表。 第三步:彈出的“創(chuàng)建查找不匹配項查詢向導設定比較字段”
14、對話框中 設定用來比較的兩個字段,如圖 4 8所示。這進而使用“圖書”表的“ tsgtm”字 段與“借還記錄”表中的“ txm”字段進行比較,如果“圖書”表中有的“ tsgtm” 而“借還記錄”表的“ tsm”字段中沒有,就說明這本書沒有人借閱。設定后單擊 【 下一步 】 。 圖 4 8創(chuàng)建查找不匹配項查詢向導設定比較字段 第四步:在“創(chuàng)建查找不匹配項查詢向導設定顯示字段”對話框 中設定最后顯示的字段,這里選擇將“可用字段”列表中的“ tsm”字段 添加到“選定字段”列表中。設定結束后單擊 【 下一步 】 。 第五步:設定查詢的名稱以及向導結束后的工作。向導結束后有兩 種選擇:查看查詢和修改設
15、計。設定后單擊 【 完成 】 按鈕。 4.2.2 條件查詢 條件查詢是在簡單查詢的基礎上,通過查詢條件的設置來達到查找目標數 據的操作。條件查詢通常都是通過查詢設計器來完成的。 條件查詢可以分為單條件查詢和多條件查詢。 1.單條件查詢 單條件查詢是在查詢中只有一個條件約束查詢結果。 【 例 4 4】 在“圖書”表中查詢“清華大學出版社”出版的圖書的圖書名 和價格。 第一步:根據前面介紹的簡單查詢創(chuàng)建方法,將涉及到的“圖書”表添加 到查詢設計器中。 第二步:將查詢涉及到的字段添加到設計器的字段列表中,這里將“ tsm”、 “ jiage”和“ cbs”添加到列表中,如圖 4 9所示。 第三步:設
16、定查詢需要的條件。在需要設定條件的字段下方的“條件”欄目中 進行設定。這里直接設定“ cbs”字段的條件為“清華大學出版社”,如圖 4 9所示。 注意,用戶只需要直接輸入“清華大學出版社”即可,兩端的雙引號由系統(tǒng)自 動生成。 圖 4 9 條件查詢設置條件 第四步:單擊工具欄中的 【 (運行) 】 按鈕來查看查詢的結果。如果沒 有問題保存查詢。 2.多條件查詢 有多個條件來約束查詢結果的稱為多條件查詢 。 要求在 “ 條件 ” 欄目和 “ 或 ” 欄目中對條件進行設置 。 如果在多個“條件”欄目和“或”欄目中都輸入了條件表達式, Access 自動判斷使用 And運算符或者 Or運算符進行條件組
17、合,組合的原則如下: 在“條件”欄目中的條件使用 And連接,查詢時需要全部滿足。 在“或”欄目中的不同行的條件使用 Or連接,查詢時只需滿足其中一個 條件。同行的使用 And連接。 【 例 4 5】 建立同時滿足“ flh(分類號)”為“ A”,“ jiage(價格 )”大小 50元,“清華出版社”的圖書信息查詢。 第一步:將“圖書”表添加到查詢設計器中。 第二步:三個條件都寫在“條件”欄目中。如圖 4 10所示。等同于: flh=“A” and jianjie50 and cbs=“清華大學出版社”。 圖 4 10 多條件設置( a) 圖 4 10 多條件設置( b) 第三步:保存查詢。
18、如果一個條件寫在“條件”欄目中,另兩個條件行分別寫在同一行的“或” 欄目上如圖 4 11所示。如說明結果中的數據,滿足“ jiage”大于 50,或者同時 滿足“ flh”為“ A”和“ cbs”為“清華出版社”。 圖 4 11 查詢條件表達式生成器 三個條件寫在了不同的行中 , 說明這三個條件為或的關系 。 結果集只要 “ flh”為 “ A”, “ jiage”大于 50和 “ cbs”為 “ 清華出版社 ” 這三個條件中的一個 就可以 。 4.2.3 查詢條件 1.條件的使用 查詢條件是對查詢結果的一種限制與約束,得到想看到的數據。例如,想 查詢某個出版社出版的圖書資料,就可以通過對“
19、cbs”字段的限制來實現。 條件的實現是通過表達式完成的。這些表達式多數很簡單,例如“男”, 指定只顯示該字段的值為“男”的記錄;“ Between 10 And 20”,指定顯示該 字段的值在 1020之間的記錄。在一個查詢中,可以在一列中或多列中使用條 件。 條件表達式的輸入有兩種方式:直接輸入與使用表達式生成器輸入。直接 輸入就是指按照一定的格式將表達式直接填入對應字段的“條件”欄目中。表 達式生成器是 Access中專門用來生成表達式的一種工具,包含著各種格式、對 象和函數等,使用它可以準確的生成表達式。 表達式生成器的打開方法: 打開查詢設計器,單擊要設置條件的字段的“條件”行網格,
20、將插入點移 入其中。 單擊工具欄上的 【 (生成器) 】 按鈕,或右鍵單擊并選擇快捷菜單的 【 生成器 】 命令,打開表達式生成器,如圖 4 11所示。 圖 4 11 查詢條件表達式生成器 如果在啟動“表達式生成器”的網格或“條件”列中已經包含了一個值, 該值將自動復制到其中的表達式框中。標準的表達式具有很多的格式要求,而 “表達式生成器”中提供的選擇式輸入很好的解決了這個問題,由“表達式生 成器”提供的條件或函數都具有準確的結構格式。 2.條件表達式 查詢的條件表達式與設計表時字段的有效性規(guī)則比較相近。如果只是以 一個值為條件,只需將這個值輸入到對應字段的“ 【 條件 】 ”欄中。如果查詢條
21、 件比較復雜,就要使用條件表達式了。 下面介紹條件表達式的書寫方法。 表達式中的運算符 在條件表達式中,除了使用常規(guī)的 +、等算術運算符之外,還經常使用 以下幾種特殊的運算符。 And運算符 “邏輯與”運算符。條件表達式 : And 。 要求查詢結果集中的記錄必須同時滿足由 And所連接的兩個條件。 Or運算符 “邏輯或”運算符。條件表達式: Or 。 查詢結果集中的記錄只需要滿足由 Or所連接的兩個條件中的一個。 In運算符 要求從一個值域中選擇某一值。例如, In(“男”,“女”)等價于 “男” Or“女”。如果備選內容較多,使用 In運算符要比使用 Or更加簡單。 Between And
22、 指定一個數字范圍 。 主要用于數字型 、 貨幣型 、 日期型字段 。 條件表達式: Between And 。 要求查詢結果記錄集中的記錄值介于條件一與條件二之間,包括兩個臨 界點。 Like 用于按照某種約定的格式進行查找,可使用不同含義的通配符來實現不 同程度的模糊查詢。例如, Like“張 *”,查找以字符“張”開頭,后面任意長度 字符的記錄,而 Like “張 _”則指定查找以“張”開頭,后面一個字符的記錄。 可以使用的通配符如表 4 1所示。 表 4 1 字符樣式中的通配符 通配符 匹配的內容 ? 一個字符 * 零個或多個字符 # 一個數字( 0 9) 字符表 字符表中的一個字符
23、!字符表 字符表中不包含的一個字符 字符表為字符設置一個取值范圍, a-z、 0-9、! 0-9等, 用“”來隔開范圍的上下界。例如,表達式: Like “ 0-9 *”的含義為 : 查找以 0 9的某一個數字開頭,后面任意字符的字符串。 又如,表達式: Like“DataBase? a-z #! 0-9 *”的含義為: 查找以“ DataBase”開頭,第二個為任意字符,第三個為 a z中的任意一個 字符,第四個為數字,第五個為非 0 9的任何字符,其后為任意字符的字符串。 表達式的例子 表 4 2是一些條件表達式的例子。 表 4 2 表達式示例 表達式 意義 定價 50 定價大于 50 B
24、etween #1/2/2007#And#12/30/2007 2007年 1月 2日到 2007年 12月 30日 圖書名稱 Like “*數據庫 *” “圖書名稱”包含“數據庫”字符 In(“黨員”,“團員”, “ 群眾” ) 黨員、團員或群眾 Len(出版社 ) Val(5) 出版社字段長度在 5個字符以上 借閱日期 Date( ) 10 借閱日期在 30天之前 身份證號 Is Not Null “身份證號”字段不為空 4.3 參數查詢 前面章節(jié)介紹的查詢條件都是在創(chuàng)建查詢時設定好的,是一種固定的條件。例如 查詢條件為“清華大學出版社”,只能固定的查詢“清華大學出版社”的圖書,如果 想查
25、詢其他出版社的圖書就需要回到查詢設計器中進行條件的修改。于是 Access提供 了智能參數查詢功能。 參數查詢就是在運行查詢的時候,首先需要輸入參數,在根據參數進行查詢的操 作。 參數查詢根據其查詢形式分為 兩種: 單參數查詢:執(zhí)行查詢時只需要輸入一個條件參數。 多參數查詢:執(zhí)行查詢時,針對多組條件,需要輸入多個參數條件。 4.3.1 單參數查詢 使用參數查詢時,數據庫系統(tǒng)首先要求輸入查詢的參數,再根據參數進行相應的 參數查詢,這種查詢方式具有更好的靈活性。 【 例 4 5】 查詢某本圖書的價格。 第一步:進入“查詢設計器”,“圖書”表添加到查詢中。 第二步:將涉及到的字段添加到下方的字段列表
26、中。這里需要顯示圖書的 書名和價格,所以添加“ tsm”和“ jiage”。 第三步:在窗體上方灰色部分單擊鼠標右鍵,從彈出的菜單中選擇 【 參數 】 命令,如圖 4 12所示。 圖 4 12參數查詢參數菜單 第四步:在彈出的參數窗口中對參數進行設計。本題根據書名進行查詢,所以 創(chuàng)建一個名為“請輸入書名”的參數,如圖 4 13所示。 注意:第一,參數的數據類型必須與參數字段的數據類型相同,這里需要和“ tsm” 的數據類型相同;第二,這里的參數名稱會出現在進行查詢時的參數輸入框中,如 圖 4 30所示,所以要根據要求輸入。 圖 4 13參數查詢參數設定 第五步:將設定好的參數名填入相應字段的“
27、條件”欄目中?!罢堓斎霑眳?數填入到“ tsm”字段的“條件”欄中,如圖 4 14所示。 注意,參數的名稱需要用方括號“ ”擴起來。 圖 4 14參數查詢參數與字段綁定 第六步:保存查詢,并命名。 第七步:每次使用的時候,系統(tǒng)會首先要求輸入參數,如圖 4 15所示。 注意:窗體中的提示語句就是參數名稱“請輸入書名”,所以參數的名稱應 該根據實際情況設定。 圖 4 15參數查詢輸入參數 4.3.2 多參數查詢 多參數查詢的創(chuàng)建方式與單參數查詢的創(chuàng)建方式相同。只是當建立參數的時候 需要建立多個參數,而運行查詢的時候也需要輸入多個條件參數。 【 例 4 5】 依出版社和類別查詢圖書信息。 第一步
28、:打開查詢設計器,將“圖書”表添加到設計器中。 第二步:打開參數設計窗口,并將查詢中設計的字段添加到設計器中。這里添 加“ tsm”、“ jiage”、“ cbs”和“ flh”4個字段。 第三步:創(chuàng)建多個參數。在圖 4 13中輸入“請輸入出版社”和“請輸入類別” 兩個參數。 第四步:在“ cbs”和“ flh”字段的“條件”欄目中輸入相應參數,保存退出。 當使用多參數查詢的時候,系統(tǒng)會按參數順序依次要求用戶輸入查詢參數的值。 4.4 操作查詢 在前面的內容中介紹過,查詢除了對數據有檢索功能外,還是數據庫其他操作 的一個基礎。例如對數據的修改、刪除,甚至是添加都有可能是以查詢?yōu)橄葲Q條件 的。下
29、面介紹的幾種操作查詢就是在查詢的基礎上對查詢的結果進行操作。操作查 詢同樣具有選擇和參數查詢的特征,只是在二者的基礎上增加了操作功能。 操作查詢除了可以操作數據外,還可以添加表。 Access數據庫系統(tǒng)允許創(chuàng)建 4中操 作查詢:生成表查詢、更新查詢、追加查詢和刪除查詢。 4.4.1 生成表查詢 生成表查詢是指從一個或多個表中查詢出目標數據,并將這些數據存儲到一個 新的表中。生成新表中的字段屬性及主鍵屬性會繼承源表中字段的屬性。每次運行 該查詢都會生成新表。 【 例 4 6】 在 tushu數據庫中創(chuàng)建“高價圖書”表,將價格超過 50元的圖書書名及 價格保存到新表中。 第一步:打開“查詢設計器”
30、,并將“圖書”表添加到查詢中。 第二步:單擊菜單 【 查詢 】 中的 【 生成表查詢 】 命令,如圖 4 16所示。 圖 4 16 生成表查詢選擇生成表查詢 第三步:彈出的對話框要求設定新表的名稱以及新表保存的數據庫,如圖 4 17 所示。將表的名稱設定為“高價圖書”,保存在當前數據庫中,單擊 【 確定 】 。 圖 4 17生成表查詢新表名稱設定 第四步:回到“查詢設計器”后,利用條件查詢的方法將價格高于 50元的書名與 價格查詢出來,保存該查詢并退出。 第五步:雙擊剛才保存的查詢,彈出如圖 4 18所示的提示窗口,要求確 認操作。單擊 【 是 】 ,系統(tǒng)會生成題中要求建立的“高價圖書”表。
31、圖 4 18生成表查詢確認生成新表 4.4.2 刪除查詢 刪除查詢可以將查詢出來的數據進行刪除操作。刪除后的數據是不能被恢復的, 所以在進行刪除前應切換到“數據表視圖”進行查看,確定查詢出來的數據是需要 刪除的數據。 【 例 4 6】 刪除價格大于 10的圖書的資料。 第一步:打開“查詢設計器”,并將“圖書”表添加到查詢中。 第二步:單擊菜單 【 查詢 】 中的 【 刪除查詢 】 命令。 第三步:將涉及到的字段添加到字段列表中。因為根據價格進行刪除,所以添加 “ jiage”字段,并在“條件”欄中輸入“ 10”,如圖 4 19所示。 注意:刪除查詢并不是選擇什么字段就只刪除該字段的內容,而是將
32、符合該條 件的所有記錄刪除,所以這里雖然只設置了“ jiage”字段,但是運行該查詢會將所有 10元以上的圖書都刪除。 圖 4 19刪除查詢 第四步:保存查詢。雙擊查詢可以進行刪除操作。 4.4.3 更新查詢 更新查詢可以將查詢出來的結果進行批量的修改。使用更新查詢首先將要修 改的數據查詢出來,然后使用一個表達式將數據進行修改。更新查詢會改變數據 的物理信息,所以在使用前一定要確認沒有錯誤,以免造成數據的破壞。 【 例 4 7】 將“圖書”表中清華大學出版社的所有圖書的價格增加 10元。 第一步:打開“查詢設計器”,并將“圖書”表添加到查詢中。 第二步:單擊菜單 【 查詢 】 中的 【 更新查
33、詢 】 命令,此時“查詢設計器”下方的 字段列表結構會發(fā)生一些改變,出現了一個“更新到”欄目。 第三步:將查詢涉及到的字段添加到字段列表中,本題需要添加“ cbs”和“ jiage” 兩個字段。 第四步:條件設定。首先在“ cbs”字段的“條件”中設定“清華大學出版社”。 然后在“ jiage”字段的“更新到”欄目中設定“ jiage+10”,將價格在原有基礎 上增加 10元,如圖 4 20所示。 圖 4 20更新查詢 第五步:保存查詢,并雙擊保存后的查詢。 4.4.4 追加查詢 追加查詢是將查詢出來的結果添加到另一個表中的操作,這些記錄將 被保存在目標表中的結尾。執(zhí)行追加查詢的前提是,追加部
34、分的數據必須 在目標表中存在對應字段。 【 例 4 8】 將 40元到 50元的圖書的書名和價格追加到 【 例 4 6】 建立的 “高級圖書”表中。 第一步:打開“查詢設計器”,并將“圖書”表添加到查詢中。 第二步:單擊菜單 【 查詢 】 中的 【 追加查詢 】 命令。 第三步:彈出的窗體要求設定數據要追加的目標表。根據題意,將數據追 加到“高價圖書”表。設定后單擊 【 確定 】 。 第四步:回到“查詢設計器”后,將目標字段添加到字段列表中。這里添 加“ tsm”和“ jiage”字段。然后設定查詢條件:價格介于 40到 50之間,就是在 “ jiage”的“條件”欄目里添加條件:“ 40 A
35、nd =50”,然后在“追加到”欄 目中設置分別將字段追加到那些新字段中,如圖 4 21所示。單擊“追加到”欄 目,從彈出的下拉框中選擇對應表的相應字段。 第五步:保存查詢,并雙擊查詢執(zhí)行。 圖 4 21 追加查詢設計視圖 4.5 交叉表查詢 4.5.1 認識交叉表查詢 在數據庫的實際應用當中,一些數據的統(tǒng)計需要首先將數據按照一定規(guī)律分 組后再操作,例如,查詢各出版社的圖書數量、查詢各類圖書的平均價格等。 交叉表查詢就是首先按照一個或一組屬性對數據進行分組,然后對分組后的 數據進行操作的查詢。 4.5.2 交叉表查詢向導 交叉表查詢是一種比較特殊的查詢方式,是將表或其他查詢中的一些數據作 為新
36、的字段,用另一種方式來查看數據,通常用來進行數據的各種計算,例 如:求和、平均值、最大值、最小值和計數等。 【 例 4 9】 在 tushu數據庫中查詢各類圖書的平均價格 第一步:實際是要求將圖書按照類別進行分組,然后求每組的平均價格。在新建查 詢窗體中雙擊 【 交叉表查詢向導 】 ,進入到數據源設定窗口,如圖 4 22所示。 第二步:在窗體內設置需要使用的數據源。 注意,交叉表查詢的記錄源必須是唯一的,所以窗體中聲明:如果包含多個表 的字段,需要先創(chuàng)建一個包含這些字段的查詢。 本題設計到的字段都來源于“圖書表”,所以這里選中“圖書表”,單擊 【 下 一步 】 。 圖 4 22交叉表查詢數據源
37、設定 第三步:彈出的窗體要求設定分組的依據字段,也就是行標題,如圖 4 23所示。 題意是按照類別統(tǒng)計平均價格,所以這里按照圖書的類別分組。將“可用字段”列 表中的“ flh”字段添加到“選定字段”列表中作為分組依據。設定結束單擊 【 下一 步 】 。 第四步:彈出的窗體要求設定除了顯示平均價格外,還需要顯示什么字段作為 依據,也就是列標題,這里選擇書名作為列標題。設定后單擊 【 下一步 】 。 圖 4 23創(chuàng)建交叉表查詢行標題設定 第五步:彈出的窗體要求設定具體統(tǒng)計的數據內容,如圖 4 24所示。因為題中要 求統(tǒng)計每組的平均價格,所以在中部的“字段”列表中選中“ jiage”字段,然后在 右
38、側的“函數”字段中選中“平均”選項。設定結束后單擊 【 下一步 】 。 第六步:向導結束后有兩種選擇:查看查詢和修改設計。如果對查詢結構還需要調整, 則可以選擇“修改設計”,并進入到“查詢設計器”窗口對查詢結構進行調整。否則 可以選擇“查看查詢”。單擊 【 完成 】 按鈕。 圖 4 24創(chuàng)建交叉表查詢統(tǒng)計項設定 4.5.3 交叉表查詢的設計視圖 可以使用靈活性更大的設計窗體方式自行創(chuàng)建交叉表查詢。 【 例 4 10】 在“設計視圖”中重新設計查詢各類圖書的平均價格 第一步:創(chuàng)建一個新的查詢,打開查詢設計器,并將圖書表添加到查詢設計器中。 第二步:在“查詢設計器”中單擊 【 查詢 】 菜單中的
39、【 交叉表查詢 】 命令。 第三步:使用設計器創(chuàng)建表查詢必需要設置 3項內容,分別是:行標題、列標題、 統(tǒng)計列。 行標題:用作分組的字段,通常由兩個字段組成,一個作為分組依據,一個作 為分組后統(tǒng)計的值。 列標題:除了行標題和統(tǒng)計結果外顯示的字段。 值列:用來統(tǒng)計的字段,需要設置統(tǒng)計的類型。 根據題意,對字段進行如下設置,如圖 4 25所示。: 使用“ flh”作為行標題中的分組字段,將“總計”項設置為“分組”,“交叉表” 項設置為“行標題”; 使用“ jiage”作為行標題中的統(tǒng)計值,并將“總計”項設置為“平均值”,“交 叉表”項設置為“行標題”; 使用“ tsm”作為列標題,將“總計”項設置
40、為“分組”,“交叉表”項設置為 “列標題”; 使用“ jiage”作為值列,將“總計”項設置為“平均值”,“交叉表”項設置為 “值”。 圖 4 25 交叉表查詢的字段設置 第四步:保存退出 4.6 在查詢中進行計算 4.6.1 查詢中的計算功能 查詢除了可以查找數據庫中保存的數據外,還可以進行計算。例如,計算一個 字段值的總和或平均值,對兩個字段進行算術運算。查詢中有常規(guī)計算和自定義計 算兩種基本計算。 1.常規(guī)計算 常規(guī)計算是指利用現有字段,對記錄組進行統(tǒng)計或匯總,包括求和、求平均值、 記錄數、最小值、最大值等。 2.自定義計算 自定義計算就是使用一個或多個字段中的數據在進行計算,并使用一個
41、新創(chuàng)建 的字段顯示出來。 4.6.2 總計查詢 1.總計查詢的創(chuàng)建 Access的某些特定功能,如分組、求和、求平均值等,在查詢設計器中是無 法直接使用的。必須單擊查詢設計工具欄上的 【 (總計) 】 按鈕,通過 Access系統(tǒng)在查詢設計器下部設計網格中插入的一個“總計”行進行計算。 在查詢設計器中的 【 總計 】 欄目中,可以為某個字段指定一個用于總計計算 的匯總函數,包括“總和”、“平均值”、“計數”、“最大值”、“最小 值”、“標準偏差”、“方差”等。 【 例 4 11】 統(tǒng)計所有圖書的平均價格。 第一步:打開查詢設計器,將目標表“圖書”添加到查詢中。 第二步:將涉及到的“ jiage
42、”字段添加到窗體下方的“字段”欄目中。 第三步:單擊查詢設計工具欄上的按鈕,系統(tǒng)會在在查詢設計器下半部的設 計網格中插入一個“總計”行。 第四步:題目要求統(tǒng)計所有圖書的平均價格,先將“ jiage”字段添加到下方的欄 目中,然后單擊“ jiage”字段的“總計”欄目,并在下拉列表中選擇平均值“平 均值”,如圖 4 26所示。 圖 4 26總計查詢設計視圖 圖 4 27 總計查詢結果 第六步:設置結束,保存退出。運行可得到查詢結果,如圖 4 27所示。 在總計查詢中,因為計算字段是根據原有字段計算或統(tǒng)計得來,所以沒有自己的字 段名稱,如圖 4 27所示,得到的平均價格系統(tǒng)默認生成的名稱為“ ji
43、age之 Avg”。 生成的名稱說明了字段的來源,但是不美觀,所以通常在總計查詢中對新字段重新 命名。如果不想使用 Access自動命名的字段標題,可以用以下兩種方法指定查詢 中某個字段的標題。 1)在設計視圖中,在計算字段的“字段”欄目中自己命名新字段。方法是在該字 段名稱前自己輸入一個新名稱,并用英文冒號隔開。例如上題的“ jiage”字段改成 “平均價格 :jiage”。 這樣,在顯示結果的時候,該字段不會使用系統(tǒng)默認名稱,而使用“平均價格”。 2)單擊要指定標題的字段欄任意位置,選擇快捷菜單中的 【 屬性 】 命令,彈出 “字段屬性”對話框,在其中的“標題”屬性欄中輸入自定義的字段標題
44、,如圖 4 28所示。 圖 4 28新字段字段屬性窗體 2.總計統(tǒng)計的分類 “總計”欄目中包含 12個選項,其中 9個為匯總函數,其他為非函數選項。 1)匯總函數 用于創(chuàng)建總計字段的匯總函數如表 4 3所示。 表 4 3 查詢使用的匯總函數 英文名 含義 適用的數據類型 Sum 總計 數值、日期 /時間、貨幣、自動編號 Avg 平均值 數值、日期 /時間、貨幣、自動編號 Min 最小值 文本、日期 /時間、貨幣、自動編號 Max 最大值 文本、數值、日期 /時間、貨幣、自動編號 Count 計數 文本、備注、數值、日期 /時間、貨幣、自動編號、 是 /否、 OLE對象 StDev 標準差 數值
45、、日期 /時間、貨幣、自動編號 Var 方差 數值、日期 /時間、貨幣、自動編號 First 第一條記錄 所有類型 Last 最后一條記錄 所有類型 其中,“計數”函數用于統(tǒng)計記錄的個數,也就是行數。對于空白值也統(tǒng)計在內, 但空值不進行統(tǒng)計。 2)非函數選項 分組( Group By) 分組字段。 表達式( Expression) 創(chuàng)建表達式包含總計函數的計算字段。通常,在表達式中使用多個函數時,將創(chuàng) 建計算字段。 條件( Where) 指定不用于分組的字段準則。如果選擇了這一項 Access將清除“顯示”復選框, 隱藏查詢結果中的這個字段。 4.6.3 分組總計查詢 分組總計查詢是指在統(tǒng)計計
46、算之前,先將數據按照要求進行分組,對分組 后的數據進行計算統(tǒng)計。 【 例 4 12】 創(chuàng)建一個具有分類統(tǒng)計功能的查詢。查詢各個出版社圖書的平均價格, 顯示出版社的名稱和平均價格。 第一步:打開查詢設計器,將目標表“圖書”添加到查詢中。 第二步:將涉及到的“ cbs”和“ jiage”字段添加到窗體下方的“字段”欄目中。 第三步:單擊查詢設計工具欄上的 【 (總計) 】 按鈕,進入總計查詢狀態(tài)。 第四步:題目要求按照出版社統(tǒng)計平均價格,也就是按出版社分組,所以單擊“ cbs” 字段的“總計”欄目,并在下拉列表中選擇分組“分組”。 第五步:題目要求按出版社統(tǒng)計平均價格,所以單擊“ jiage”字段
47、的“總計”欄目, 并在下拉列表中選擇“平均值”,如圖 4 29所示。 圖 4 29 總計查詢設計視圖 第六步:設置結束,保存退出。運行可得到查詢結果。 4.6.4 添加計算字段 在設計表時,一些可以通過其他字段計算或統(tǒng)計得到的字段是不會直接作為字 段保存在表中的,如果需要這些字段的值,則可以在查詢設計設器中通過添加計算 字段來實現。這樣可以節(jié)省存儲空間,減少系統(tǒng)維護表格的代價。利用新計算字段, 可以用一個或多個字段的值進行數值、日期及文本等各種計算。 計算字段是對表或查詢中的數值型字段進行橫向計算產生結果的字段,是在查 詢中自定義的字段。創(chuàng)建計算字段的方法是將表達式直接輸入到查詢設計網格中的
48、【 字段 】 格中。格式為: 新字段名稱:字段計算表達式 【 例 4 13】 創(chuàng)建一個具有計算字段的查詢。假設圖書的每頁有 1000字,查詢每本 圖書的圖書名和大致字數。 使用“圖書”表中的 “ ys” 字段乘上 1000,即可以計算出圖書的大致字數。新 字段的表達式應該是:“字數 : ys*1000”。 圖 4 30 新字段設定 表達式填寫在一個空白的“字段”欄目中,如圖 4 30所示。注 意,表達式中的冒號為半角符號。 創(chuàng)建結束后,運行查詢便可以看見新字段。 4.7 SQL查詢 4.7.1 SELECT語句簡介 SQL( Structured Query Language)語言是一種被關系
49、數據庫產品廣泛 使用的標準結構化查詢語言。結構化查詢語言是一種介于關系代數與關系演算 之間的語言,其功能包括查詢、操縱、定義和控制四個方面,是一個通用的、 功能極強的關系數據庫標準語言。目前, SQL語言已經被確定為關系數據庫系 統(tǒng)的國際標準,被絕大多數商品化的關系數據庫系統(tǒng)采用,受到用戶的普遍接 受。 SQL語言可以對數據庫進行多種操作,例如定義、查詢等等,其中數據查 詢是數據庫的核心操作,其功能是指根據用戶的需要以一種可讀的方式從數據 庫中提取所需數據,由 SQL的數據操縱語言的 SELECT語句實現。 SELECT語 句是 SQL中用途最廣泛的一條語句,具有靈活的使用方式和豐富的功能。
50、4.7.2 查詢語句的格式 一個完整的 SELECT語句包括 SELECT、 FROM、 WHERE、 GROUP BY和 ORDER BY子句。它具有數據查詢、統(tǒng)計、分組和排序的功能。它的語法及各子句 的功能如下。 SELECT ALL DISTINCT目標列表達式, n FROM表名或視圖名,表名或視圖名 n WHERE條件表達式 GROUP BY 列名 l HAVING 條件表達式 ORDER BY 列名 2 ASC DESC; 從指定的基本表或視圖中,選擇滿足條件的元組數據,并對它們進行分組、統(tǒng)計、 排序和投影,形成查詢結果集。 1)各子句的說明 ( 1)其中 SELECT和 FROM
51、語句為必選子句,而其他子句為任選子句; ( 2) SELECT子句 該子句用于指明查詢結果集的目標列,目標列表達式 是指查詢結果集中包 含的列名,可以是直接從基本表或視圖中投影得到的字段,或是與字段相關的表達式 或數據統(tǒng)計的函數表達式,目標列還可以是常量。 DISTINCT說明要去掉重復的元組, ALL表示所有滿足條件的元組。省略目標列表達式表示結果集中包含表名或視 圖名中的所有列,此時目標列表達式可以使用 *代替。 如果目標列中使用了兩個基本表或與視圖中相同的列名,要在列名前加表名限 定,即使用“表名 .列名”表示。 ( 3) FROM子句 該子句用于指明要查詢的數據來自哪些基本表。查詢操作
52、需要的基本表名之間 用“,”分割。 ( 4) WHERE子句 該子句通過條件表達式描述對基本表或視圖中元組的選擇條件。該語句執(zhí)行時, 以元組為單位,逐個考察每個元組是否滿足 WHERE子句中給出的條件,將不滿足 條件的元組篩選掉,所以 WHERE子句中的表達式也稱為元組的過濾條件。 ( 5) GROUP BY子句 該子句的作用是將結果集按列名 1的值進行分組,即將該列值相等的元組分 為一組,每個組產生結果集中的一個元組,可以實現數據的分組統(tǒng)計。當 SELECT 子句后的目標列表達式中有統(tǒng)計函數,且查詢語句中有分組子句時,則統(tǒng)計為 分組統(tǒng)計,否則為對整個結果集進行統(tǒng)計。 GROUP BY子句后可
53、以使用 HAVING條件表達式短語,它用來限定分組必 須滿足的條件。 HAVING必須跟隨 GROUP BY子句使用。 ( 6) ORDER BY子句 該子句的作用是對結果集按列名 2的值的升序( ASC)或降序( DESC)進 行排序。查詢結果集可以按多個排序列進行排序,根據各排序列的重要性從左向右 列出。 2) SELECT語句的執(zhí)行過程 根據 WHERE子句的條件表達式,從 FROM子句指定的基本表或視圖中 找出滿足條件的元組,再按 SELECT子句中的目標列表達式,選出元組中的 列值形成結果集。如果有 GROUP子句,則將結果集按列名 l的值進行分 組,該屬性列值相等的元組為一個組,每
54、個組產生結果集中的一個元組。如 果 GROUP BY子句后帶 HAVING短語,則只有滿足指定條件的組才予以輸出。 如果有 ORDER BY子句,則結果集還要按列名 2的值的升序或降序排序。 SQL語言的所有查詢都是利用 SELECT語句完成的,它對數據庫的操作 十分方便靈活,原因在于 SELECT語句中的成分豐富多彩,有許多可選形式, 尤其是目標列和條件表達式。下面以學生管理數據庫為例,分別介紹使用 SELECT語句進行單表查詢、連接查詢、嵌套查詢和組合查詢。 4.7.3 SQL查詢窗體 在 Access數據庫系統(tǒng)中,執(zhí)行任何 SQL語句都是在查詢的設計窗體內完成。 首先進入查詢分析器,關閉
55、用來添加表的 【 顯示表 】 窗體。然后通過工具欄左端 的 【 (SQL視圖 )】 按鈕或者是視圖菜單中的 【 SQL視圖 】 命令,將編輯窗體切換 到 SQL視圖,如圖 4 32所示。 4.7.4 單表查詢 單表查詢指在查詢過程中只涉及一個表的查詢語句。單表查詢是最基本的查 詢語句。 【 例 4 14】 查詢清華大學出版社圖書的資料。 具體操作方法: 第一步:打開數據庫 tushu主窗口,單擊“對象”列表中的“查詢”,單擊工具 欄上的 【 新建 】 ,選擇“設計視圖”,單擊 【 確定 】 按鈕。 第二步:關閉“顯示表”對話框,選擇菜單欄 【 視圖 】 |【 SQL 視圖 】 ,如圖 4 31
56、所示 圖 4 31 SQL菜單 圖 4 32 選擇查詢 SQL輸入窗口 第三步:在圖 4 32所示的窗口中輸入如下命令: Select * From 圖書 Where cbs=“清華大學出版社” 切換到設計視圖,可以看到“字段”中增加一了個“ cbs”,“表”中為“圖書”, 條件為“清華大學出版社”,如圖 4 33所示。 圖 4 33 設計視圖選擇查詢 第四步:保存查詢,查看查詢結果。 提示: 例中的 from語句用于設置查詢的數據源來,而 where語句用于設置顯示字段 的條件。 【 例 4 15】 在圖書表中查詢價格在 20 50(包括 20與 50)之間的圖書的書名和 出版社。 操作步驟
57、: 前兩步同 【 例 4 15】 ,第三步,在 SQL窗口中輸入如下命令: Select tsm, cbs From 圖書 Where jiage between 20 and 50 4.7.5 多表查詢 在一個數據庫中多個基本表之間一般都存在著某種內在的聯系,它們?yōu)橛脩艄餐峁?相應的信息。因此在對數據庫的一個查詢中經常需要同時涉及多個基本表中的相關內 容。把這種在一個查詢中同時涉及兩個以上的基本表的查詢稱為連接查詢,實際上它 是數據庫最主要的查詢功能 1)條件連接查詢的一般格式: 當一個查詢涉及到數據庫的多個基本表時,必須要按照一定的條 件將這些表連接在一起,以便共同為用戶提供相應信息。用
58、來連接兩 個基本表的條件稱為連接條件或連接謂詞,一般格式為: Select From Where 表名 l列名 l =表名 2列名 2 連接條件中的列名稱為連接字段。連接條件中,連接字段類型必 須是可比的,但名稱不一定是相同的。 條件通過 WHERE子句表達。在 WHERE子句中,有時既有連接 條件又有元組選擇條件,這時它們之間用 AND(與)操作符銜接。 【 例 4 16】 查詢有借還記錄的每個讀者的姓名、借還記錄情況。 (學生信息表中的“ xh”字段與借還記錄表中的“ jszh”相對應 ) 前兩步同 【 例 4 14】 ,第三步,在 SQL窗口中輸入如下命令: Select 學生信息 .x
59、m , 借還記錄 .* From 學生信息,借還記錄 Where 學生信息 .xh=借還記錄 .jszh; 運行結果如下圖 4 34所示。 圖 4 34 例 4 16的查詢結果 在“設計視圖”下看的效果如圖 4 35所示。 圖 4 35 例 4 16在設計視圖下的效果 如果在 where語句中,既有連接條件又有查詢條件,一定要首先書寫連接條件。 例如:查詢借閱了定價大于 50元圖書的讀者信息。 Select 讀者 .* From 讀者,借還記錄,圖書 Where讀者 .jszh=選課 .jszh and 圖書 .tsgtm=借還記錄 .txm and 圖 書 .jiage50 2)通過 JOI
60、N連接查詢的格式: 聯接格式為: Select From Inner Join | Left Join | Right Join On .=. INNER JOIN 表示內部聯接,即查詢結果中只包含兩個表中聯接字段值相等 的記錄。 LEFT JOIN表示左外部聯接,即查詢結果中包含 JOIN關鍵字左邊表中的所 有記錄,如果右邊表中有符合聯接條件的記錄,則該表返回相應值,否則返回空值。 RIGHT JOIN表示右外部聯接,即查詢結果返回包含 JOIN關鍵字右邊表中的 所有記錄,如果左邊表中有符合條件的記錄,則該表返回相應值,否則返回空值。 【 例 4 17】 查詢學生的班級名,姓名,學生。 前兩
61、步同 【 例 4 14】 ,第三步,在 SQL窗口中輸入如下命令: SELECT 班級 .bjmc, 學生信息 .xm, 學生信息 .xh FROM 班級 INNER JOIN 學生信息 ON 班級 .bjdm = 學生信息 .bjdm; 圖 4 36 例 4 17運行結果 運行結果如下圖 4 36所示。 選擇菜單欄 【 視圖 】 下的 【 設計視圖 】 ,得到如圖 4 37所示查詢。 圖 4 37 例 4。 37在設計視圖下的效果 雙擊兩表之間的“關聯線”,或選擇兩表之間的“關聯線”單擊右鍵,彈出如圖 4 38所示的兩表聯接屬性對話框。 圖 4 38 例 4 37兩表聯接屬性對話框 班級和學
62、生信息兩表中聯接字段“ bjdm”相等的記錄全部在查詢結果中出現。 如果使用左外部聯接,應輸入如下 SQL語句: SELECT 班級 .bjmc, 學生信息 .xm, 學生信息 .xh FROM 班級 LEFT JOIN 學生信息 ON 班級 .bjdm = 學生信息 .bjdm; 其查詢結果包括“班級”表中的所有記錄和“學生信息”表中聯接字段相等 的那些記錄。其聯接屬性為圖 4 38中的第二個選項。 如果使用右外部聯接,應輸入如下 SQL語句: SELECT 班級 .bjmc, 學生信息 .xm, 學生信息 .xh FROM 班級 RIGHT JOIN 學生信息 ON 班級 .bjdm =
63、學生信息 .bjdm; 其查詢結果包括“學生信息”中的所有記錄和“班級”中聯接字段相等的那 些記錄。其聯接屬性為圖 4 38中的第三個選項。 4.7.6 函數查詢 函數查詢也稱聚集查詢或統(tǒng)計查詢。函數查詢就是把基本表中的某一列的值經 過函數運算得到一個單一值的過程。在數據庫很多應用,并不是只要求能將基本表 中的元組原樣取出,而是要在原有數據的基礎上,能夠通過計算,輸出統(tǒng)計結果。 SQL提供了許多統(tǒng)計函數,通過它們可以進行綜合信息的統(tǒng)計。 函數可作為列標識符出現在 SELECT子句的目標列或 HAVING子句的條件中。 在 SQL查詢語句中,如果有 GROUP BY分組子句,則語句中的函數為分組
64、統(tǒng)計函數; 如果沒有 GROUP BY分組子句,則語句中的函數為全部結果集的統(tǒng)計函數?;镜?SQL函數及功能見表 4 4。其中如果指定 DISTINCT短語,則表示在計算時要取消 指定列中的重復值。如果不指定 DISTINCT短語和 ALL短語,則取默認值 ALL,表示 不取消重復值 表 4 4基本 SQL函數 函數 功能 COUNT( DISTINCT ALL *) COUNT( DISTINCT ALL列名 ) SUM( DISTINCT ALL列名) AVG( DISTINCT ALL列名) MAX( DISTINCT ALL列名) MIN( DISTINCT ALL列名) 統(tǒng)計元組個
65、數 計算一列中值的個數 計算一列值的總和(此列必須是數值型 ) 計算一列值的平均值(此列必須是數值 型) 求一列值中的最大值 求一列值中的最小值 【 例 4 18】 統(tǒng)計“讀者”表中讀者數量。 使用語句為: Select count( *) from 讀者 【 例 4 18】 統(tǒng)計“讀者”表中各班級的讀者數量。 需要對讀者按班級分組進行統(tǒng)計,使用語句為: Select count(*) from 讀者 group by bjdm 【 例 4 19 】 統(tǒng)計借閱過圖書的讀者人數。 可以通過對借還記錄表中的“借書證號”進行不重復計數統(tǒng)計,使用語句為: Select count( distinct jszh) From 借還記錄 實例:求各個類別讀者的人數。使用語句如下所示, Select jszh, count( *) From 讀者 Group by dzlb; 本章小結 通過本章的學習 , 學會各種查詢的創(chuàng)建及使用方法 , 例如選擇查詢 、 參數查詢和總計查詢等;學會 SQL查詢 語句的基本格式 , 并可以用過 Access中的工具進行 SQL 查詢 。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。