640 likes | 775 Views
No. 7 查詢. 溫丹瑋 marian.wen@gmail.com 10/29/2004. 大綱. 查詢是啥米碗糕 ? 使用 ” 簡單查詢精靈 ” 建立查詢 使用查詢設計視窗 在查詢中建立 『 計算欄位 』 以 『 簡單查詢精靈 』 做統計分析工作 準則 使用函數 參數查詢 交叉資料表查詢 使用合計. 什麼是 ” 查詢 ”?. “ 查詢 (Query)” 是萃取資料的方法,它可從一或多個資料表中取出我們想要的資料,必要時並做一些排序、計算或統計,然後將結果放入虛擬的資料表中供我們使用。 也可視為「 資料來源 」物件,可輸出記錄至表單、報表、資料頁等。
E N D
No. 7 查詢 溫丹瑋 marian.wen@gmail.com 10/29/2004
大綱 • 查詢是啥米碗糕? • 使用”簡單查詢精靈”建立查詢 • 使用查詢設計視窗 • 在查詢中建立『計算欄位』 • 以『簡單查詢精靈』做統計分析工作 • 準則 • 使用函數 • 參數查詢 • 交叉資料表查詢 • 使用合計
什麼是”查詢”? • “查詢(Query)”是萃取資料的方法,它可從一或多個資料表中取出我們想要的資料,必要時並做一些排序、計算或統計,然後將結果放入虛擬的資料表中供我們使用。 • 也可視為「資料來源」物件,可輸出記錄至表單、報表、資料頁等。 • 在ACCESS資料庫的許多位置,可看到資料表及查詢名稱會同時出現 • 僅儲存條件,而非查詢結果。
查詢與資料表 • 目的: • 在一個或多個資料表中,取得想要的記錄 • 在資料表含有一定筆數的記錄後,依特定條件取出記錄 • ACCESS系統核心將資料表及查詢視為同類型物件 • 資料表及查詢名稱不可重覆 • 可透過”關聯”在多個資料表間尋找相關記錄
查詢的原理 (1) • 不可以有孤兒 – 每一資料表都須有關聯
查詢的原理 (2) • 查詢中的關聯 -- 查詢中的多個資料表,會在兩個時機自動產生關聯 • 一個時機是當Access發現兩個資料表有同名欄位,且其中一方為主索引時,此功能名稱為「自動連接」--暫時性關聯 • 第二種情況,是在資料庫關聯圖中建立關聯之後,也會自動顯示在查詢中 --永久性關聯
查詢的原理 (3) • 取出記錄的原則有二 • 依準則做篩選 • 依關聯做搜尋 若查詢使用多個資料表,則查詢取出記錄的方式是「出現在關聯雙方的資料,才會顯示在查詢結果中」 ,也就是交集 • 資料表數量愈多,關聯就愈複雜,取出記錄的原則也就愈嚴謹
查詢的原理 (4) • 如何判斷查詢結果是否正確 • 筆數過多且資料重覆,必定錯誤 • 以最大筆數的資料表為參考 • 在測試時,資料表的記錄最好不要太多,只要保持足以判斷查詢結果是否正確即可
使用『簡單查詢精靈』 • 開啟檔案 切換至「查詢」物件 按下 「新增」鈕 選取「簡單查詢精靈」 • 設定查詢使用之資料表: • 開啟資料表 選取欄位 下一步 • 摘要/詳情
使用『簡單查詢精靈』-- 例 (1) • 簡單查詢精靈的目的在簡化建立查詢的步驟。以下我們就建立一個書籍訂單查詢, 將各種分散的資料整合起來 (請開啟no_7-1.mdb)
設計視窗建立新查詢 • 暫時性關聯-- 在查詢物件的設計檢視建立 • 前題是資料表間並沒有建立永久性關聯 • 永久性關聯--在「資料庫關聯圖」編輯視窗建立
建立暫時性關聯 – (1) 1. 請開啟 no_7-2.mdb。 2. 在【查詢】物件選【電子郵件查詢】,按上方的【設計】鈕,可以看到設計檢視的編輯視窗。 3. 按工具列的【顯示資料表】鈕,可以看到「顯示資料表」對話方塊。 4. 在【資料表】標籤選【社團活動成員】,按【新增】鈕新增資料表,按【關閉】鈕,可以看到自動建立的暫時性關聯。 5. 如同建立永久性關聯一般,只需拖拉欄位就可以建立關聯,請在下方新增【社團活動成員】資料表的欄位【暱稱】和【職稱】。
建立單一資料表的查詢 – 例(1) • 目的:建立查詢來找出單價小於 450 元的書籍, 並將結果依單價做遞增排序(no_7-1)
上半部:來源區 下半部:設定區 建立單一資料表的查詢 --例(2)
建立單一資料表的查詢 --例(完) • 按關閉鈕
建立多資料表的查詢 –例(1) • 我們的訂單資料和客戶資料分放在兩個不同的資料表中, 因此在查看訂單資料表時, 無法看到相關的客戶名稱及聯絡人姓名。以下我們就建立一個可同時檢視訂單及相關客戶資料的查詢
練習 7.1 (基本建立查詢) • 請開啟ex_7-2.mdb • 請運用「書籍」資料表,建立一名為「筆數計算」的查詢物件,並選取「ID」、「Price」欄位,不顯示出「Price」欄位,「ID」欄位運用合計功能算出書籍售價大於650的ID欄位筆數。
在查詢中建立『計算欄位』 • 這時就必須使用計算欄位了。請先開啟書籍訂單 查詢的設計視窗 FieldName:[field A]*[field B]
建立新欄位名稱 • Access 允許我們在查詢的欄位名稱前加上別名, 賦予欄位較有意義、適當的名稱 • 冒號左方的字元會被視為新欄位名稱 • 冒號右方則是產生新欄位資料的運算式 • 此類欄位只有在執行查詢時方可顯示
替查詢的欄位取別名 • 例如:
練習 7.2 (欄位換名字) • 請開啟ex_7-2.mdb • 請建立一個名為「書籍詳細資料」的查詢物件,該查詢物件中將分別顯示來自於「書籍」資料表的「BName」、「Publisher」、「Price」與「作者」資料表的「AName」欄位,並請在工作資料表檢視畫面下,以「書名」、「作者」、「出版社」、「價格」做為各欄位的名稱。
設計視窗基本操作 • 在查詢中插入新欄位 • 在查詢中移動欄位 • 隱藏欄位 • 更改排序
『統計分析查詢』和一般查詢差異 • 看看『統計分析查詢』和一般查詢有何不同之處
『統計分析查詢』和一般查詢差異 • 當查詢中多了一個合計列時, 這個查詢便具有分組統計分析的功能, 您可按工具列的合計鈕來開啟或關閉合計列。在合計列中, 我們可以為每一欄位設定要做為分組條件或做為合計運算
基本準則設定 • 準則的目的:篩選記錄 • 只有符合準則的記錄,可顯示在查詢結果 • 準則的內容 • 設定在欄位內 • 不同型態的欄位,有不同的準則 • 順序???
基本準則設定 • 文字型態 • 直接輸入比對內容 • 萬用字元(*及?) • 如「=“桂思強”」、「Like “桂*”」 • 數字及日期型態 • <、>、<>、=、>=、<= • 日期前後須加上 # 符號 • Between … and … • 空白及非空白 • Is Null及Is Not Null
臨界數值 • 如:查看前五名 • 設定排序及指定前或後幾名
練習 7.3 • 開啟ex_7-1.mdb • 使用「公司產品」資料表建立查詢,此查詢中請列示出「產品名稱」、「單價」欄位,查看產品名稱二字是”超炫”的產品,查詢名稱請儲存為「超炫系列產品」。 • 使用「公司產品」資料表建立查詢,此查詢中請列示出「產品名稱」、「單價」欄位,查看「單價」大於等於150小於250的產品資料,查詢名稱請儲存為「150至250之產品」。
函數的目的及特性 • 使用函數的目的 • 使準則更有彈性,在不同時機獲得不同查詢結果 • 如Date()可取得電腦之目前日期 • 函數的特性 • 傳回結果,可置於準則及新欄位中 • 必有括號
日期及時間 • 查看過去半年 • Between Date() And Date()-180 • Between Date() And DateAdd(“m”,-6,Date()) • 相關函數 • Date()可傳回今天的年月日 • Now()可傳回目前的年月日時分秒 • Year(年)、Month(月)、Day(日)、Hour(時)、Minute(分)、Second(秒)
字串及其他處理 • IIf函數 • 如「IIf([性別]=“男”,“先生”,“小姐”)」 • 使用三個參數,分別是判斷式、判斷式為真時的傳回值、判斷式為偽的傳回值 • Left、Right及Mid等可由字串的左方、右方及中央,傳回字元 • 如Left([姓名],1),表示取得姓名欄位,由左方算起的一個字元