摘要:Access是一種非常實用的數據庫管理系統軟件。該文通過介紹在Access幾種查詢的方法,展示了Access各種查詢在解決實際問題中的強大功能。
關鍵詞:數據庫;查詢;SQL
中圖分類號:TP311 文獻標識碼:A文章編號:1009-3044(2010)03-513-03
The Study of Database Query Method
GAO Hong-yan
(Dept. Phys. Inform. Tech. Baoji Univ. Arts Sci., Baoji 721007, China)
Abstract: The Access is a very useful database management system software. The several query method are introduced in this text. The kinds of Access query have a strong function in solving practical problems.
Key words: database; query; SQL
查詢是對數據源進行一系列檢索操作,它可以從表中按照一定的規則取出特定的信息,在取出數據的同時可以對數據進行一定的統計、分析和計算,然后按照用戶的要求對數據進行排序并顯示結果。查詢的結果可以作為窗體、報表和新數據表的數據來源,當然也可以在此基礎上再設置條件進行查詢。查詢為用戶使用數據庫提供了極大的方便。通過查詢不僅可以檢索數據庫中的信息,還可以利用查詢編輯數據庫中的數據,而這種編輯一次就可以更改整個數據庫中的相關數據,因此可以通過查詢來實時更新數據源。
1 選擇查詢
選擇查詢是最常見的一種查詢類型,它使用指定的條件從一個或多個表中檢索數據,然后按照所需順序顯示數據,并且在可以更新記錄(采用某些限制條件)的數據表中顯示結果。也可以使用選擇查詢來對記錄進行分組,計算總和、計數、平均值以及其他類型的總和。創建查詢的方法有兩種,利用向導和利用查詢視圖。
1.1 利用向導創建選擇查詢
1) 打開已有的數據庫。
2) 在數據庫窗口中,單擊“對象”列表中的“查詢”項,然后單擊“數據庫”窗口工具欄上的“新建”按鈕。在“新建查詢”對話框的列表中選擇“簡單查詢向導”,然后單擊“確定”按鈕,參見圖1。
3) 進入“簡單查詢向導”后,在“表/查詢”下拉列表中選擇要查詢的表。從“可用字段”列表中選定要查詢的字段,然后通過“添加”按鈕,將它們依次移入“選定字段”列表中,參見圖2。然后單擊“完成”,這樣一個新的選擇查詢就建立成功了。
1.2 使用設計視圖創建選擇查詢
1) 在數據庫窗的 “對象”欄中選擇“查詢”項,然后單擊“數據庫”窗口工具欄上的“新建”按鈕。在“新建查詢”對話框的列表中選擇“設計視圖”,然后單擊“確定”按鈕。
2) 進入“顯示表”對話框后,單擊要添加的表,然后單擊“添加”按鈕,或者直接雙擊要添加的表名稱,也可以添加查詢,添加所需的表或者查詢后,單擊“關閉”,此時在設計視圖窗口中顯示出添加的表。參見圖3。
3) 可以從添加的表或查詢中,直接將字段拖到字段行中的單元格或者單擊字段行中的單元格,這是出現一個小三角按鈕,單擊小三角選擇所需的字段。參見圖4。保存此查詢,輸入名稱,然后單擊工具欄上的“運行”按鈕即可查看查詢的結果。一個新的查詢就建立成功了。
2 交叉查詢
使用交叉查詢可以計算并重新組織數據的結構,這樣可以更加方便的分析數據。交叉查詢計算數據的總計、平均值、計數或其他數據的總和,這種數據可以分為兩組信息:一類在數據表左側排列,另一類在數據表的頂端。數據表行和列的交叉處顯示該字段的計算結果。
利用交叉查詢提供的功能可以把用戶的信息集中起來,并使用這些信息生成圖表,這樣可以更清楚地了解信息。建立交叉查詢的方法同樣有兩種:一是使用交叉表查詢向導,二是使用設計視圖。
2.1 使用“交叉表查詢向導”建立查詢
1) 在“新建查詢”對話框中,單擊“交叉表查詢向導”,然后單擊“確定”。
2) 選擇作為“交叉表查詢”的數據來源。從“可用字段”列表中選擇作為行標題的字段,最多可選三個字段。按“下一步”按鈕。
3) 從“可用字段”列表中選擇作為列標題的字段。本例中,選擇“課程號”。一旦選定了它,即出現在下方的交叉表預覽窗口中,也被自動分配一個編號,由此所選定的字段將顯示在交叉表的頂端。按“下一步”按鈕。
4) 從“字段”列表中選擇交叉表中交叉單元格所要顯示的字段,然后還可在“字段”列表右側“函數”列表中選擇計算方式。
5) 在最后一個對話框中,輸入新查詢的名稱后,可以選擇是“查看查詢”,還是在“設計視圖”中“修改設計”。如果生成的查詢不完全符合要求,可以返回向導或在“設計視圖”中更改查詢。
2.2 使用“設計視圖”建立查詢
1) 在“新建查詢”對話框中,單擊“設計視圖”,然后單擊“確定”。
2) 在“顯示表”對話框中,單擊列出了所需的表或查詢數據的選項卡。雙擊要添加到查詢的每個對象的名字,然后單擊“關閉”。
3) 在設計網格中將字段添加到“ 字段”行。執行“查詢/ 交叉表查詢”命令,或按下工具欄上“查詢類型”按鈕,選擇“交叉表查詢”命令,查詢“設計視圖”窗口的下半部將多出“總計”及“交叉表”兩行。
4) 如果要將字段的值按行顯示,請單擊“交叉表”行,然后單擊“行標題”。可指定一個或多個行標題選項,但至少要有一項作為分組依據,即在該字段的“總計”行保留默認的GroupBy。如果要將字段的值顯示為列標題,請單擊“交叉表”行,然后單擊“列標題”。只能選擇一個字段作為“列標題”,且必須為這個字段的“總計”行保留默認的 Group By。
5) 對于要將其值用于交叉表的字段,請單擊“交叉表”行,然后單擊“值”。只有一個字段可以設置為“值”。在這個字段的“總計”行,單擊希望用于交叉表的聚合函數類型(例如Sum、Avg 或Count),按下工具欄上“視圖”按鈕查看分析的結果。
3 參數查詢
利用參數的定義,用戶可以在同一個查詢中,輸入不同的參數而查看不同的結果。最常見的情況是顯示一個對話框,要求用戶輸入參數,系統根據所輸入的參數,找出符合條件的記錄。創建步驟如下
1) 打開參數查詢的設計視圖。
2) 在“條件”行中要創建參數查詢字段單元格中輸入表達式,如要查找“成績”的記錄,則在“成績”字段的條件單元格中輸入:< [輸入成績數]。
3) 單擊主窗口工具欄上的“運行”按鈕,則會打開如圖5的對話框,輸入“60”,按“確定”,則會顯示所有學生不及格的課程信息,參見圖6。
4 操作查詢
操作查詢是這樣一種查詢,使用這種查詢只需要進行一次操作就可以對許多記錄更改和移動。它包括4種查詢:1) 刪除查詢:可以從一個或多個表中刪除一組記錄。使用刪除查詢,通常會刪除整個記錄,而不只是記錄中所選字段;2) 更新查詢:可以對一個或多個表中的一組記錄作全局更新。使用更新查詢,可以更新表中的已有數據記錄;3) 追加查詢:將一個或多個表中的一組記錄添加到一個或多個表的末尾;4) 生成表查詢:可以根據一個或多個表全部或部分數據新建表。生成查詢有助于創建表以導出到其他Microsoft Access數據庫或包含所有舊記錄的歷史表。
5 SQL查詢
SQL查詢即用戶使用SQL語句創建的查詢,所有的查詢都可以看作是SQL查詢,其背后都隱含著SQL 窗口。實際上,Access 2003的各種查詢都可以通過SQL語句來實現。
5.1 選擇查詢用SQL實現
SELECT學號,課程名
FROM 選課
5.2 交叉查詢
TRANSFORM Count(選課.學號) AS 學號之計數
SELECT 選課.課程名, Count(選課.學號) AS [總計 學號]
FROM 選課
GROUP BY 選課.課程名
PIVOT 選課.成績;
5.3 參數查詢
SELECT 學生.姓名, 課程.課程名稱, 選課.成績
FROM 學生, 課程, 選課
WHERE 學生.學號=選課.學號 AND
選課.課程號=課程.課程號 AND
成績<60;
5.4 操作查詢
1) 刪除查詢
DELETE
FROM 選課
WHERE 課程名=’網絡’ ;
2) 更新查詢
UPDATE 選課
SET 課程名=’網絡工程’
WHERE 課程名=’網絡’ ;
3) 追加查詢
CREATE TABLE 課程平均成績
(課程號 CHAR(15)平均分SMALLINT);
INSERT
INTO 課程平均成績(課程號, 平均分)
SELECT 選課.課程號, AVG(成績)
FROM 課程, 選課
WHERE 選課.課程號=課程.課程號
GROUP BY 選課.課程號;
4) 生成表查詢
SELECT 學生.姓名, 課程.課程名稱, 選課.成績
INTO 123
FROM 課程
INNER JOIN (選課 INNER JOIN 學生 ON 選課.學號 = 學生.學號) ON 課程.課程號 = 選課.課程號
ORDER BY 學生.姓名。
參考文獻:
[1] 薩師煊,王珊.數據庫系統概論[M].4版.北京:高等教育出版社,2004.
[2] 梁燦,趙艷鐸.Access數據庫應用基礎教程[M].北京:清華大學出版社,2005.
[3] 章立民.Access 2003——用150個范例學查詢[M].北京:電子工業出版社,2006.
[4] 許新華,唐勝群,宋振云,等.并行數據庫查詢優化技術的最新進展[J].計算機工程與設計,2009,30(16):3814-3819.
[5] 魏玲玲,姚磊岳,王榮福,等.粗關系數據庫查詢模型[J].計算機工程,2009,35(16):51-53.