本站小編為你精心準備了Access 數據庫設計與查詢探析參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘 要:本文為了實現對數據庫的基本操作,首先必須建立數據庫的連接方式,數據庫常用接口技術分為 ODBC、OLEDB、ADO 三類。在本文中以 Access 數據庫的連接來說明數據庫設計和查詢。
關鍵詞:Access 數據庫;設計與查詢;ODBC 技術
1 ODBC技術
ODBC 技術是開放服務結構中有關數據庫的一個組成部分,它提供了一組對數據庫訪問的標準 API(應用程序編程接口)。“ODBC數據源管理器”提供了三種 DSN 數據源[1],分別為用戶 DSN 數據源、系統 DSN 數據源和文件 DSN 數據源。ODBC 的連接(必須先注冊—DSN)常用接口技術(表 1)。ODBC 連接數據庫方式:(1)Access 數據庫的連接:Set con=Server>Create Object(“adb.Connection”)Con.Open”DSN”=”數據源名稱”(2)SQL Server 數據庫的連接:Set con=Server.Created Object(“adb.Connection”)Con.connectionstring=”DSN= 數據源名稱 ;UID=ka;PWD=kaCon.open;
2 OLEDB技術
OLEDB[2]是面向不同的數據源的低層應用接口。OLEDB 不僅包括 ODBC 的結構化查詢語言(SQL),還具有面向其他非 SQL數據類型的通道。OLEDB 定義了一組 COM 接口,對各種數據庫服務進行封裝,并允許創建組件,以便實現這些服務。OLEDB 包含了連接 ODBC 的底層“連接器”技術,OLEDB 最主要三個部分組成:data providers Access 中的 mdb 文件,就是 Data Providersdata consumers 一個應用程序或網頁都是 OLEDB 數據使用者。service components 數據服務部件OLEDB 連接數據庫步驟:(1)access 數據庫連接方法set conn=Server.Create Object("adb.Connection")con.open "Provider=Microsoft.Jet.OLEDB.4.0;data source="&server.Map Path("dbname(絕對路徑)")&";persist security info=false"(2)SQL Server 數據庫連接方法set con=server.Create Object("adb.Connection")sql="Provider=SQLOLEDB; datasource=(local); initial catalog=mdbname;user id=ka;password=ka;"con.open(sql)
3 ADO組件
ADO 是一個基于 com 的自動化連接組件。它提供了編程語言和數據訪問方式一個中間層。允許開發人員編寫訪問數據的代碼而不用關心數據庫是如何實現的,而只用關心到數據庫的連接。整個 ADO 由兩個部分組成:
3.1 NET數據提供程序
(.NET Data Provider)(1)connection 對象:在應用程序與數據庫之間建立連接關系。(2)command 對象:對數據庫進行訪問操作。(3)dataset 對象:是虛擬數據源訪問。(4)datareader 對象:從數據源讀取返回數據。 (5)dataadapter 對 象: 從 數 據 源 中 檢 索 出 數 據 并 填 充 到Data Set 中。
3.2 數據集(Data Set)
支持 ADO.NET 斷開式、分布式數據方案的核心,相當于內存中暫存的數據庫。數據庫訪問流程模型如圖 1 所示,Acces 數據庫訪問流程圖如圖 2 所示。
4 據庫操作語句
4.1 代碼訪問
靈活性較強,可根據需要進行綁定設置。滿足數據顯示要求多樣化,編寫代碼較多,思路要清晰。
4.2 控件訪問
比較方便,實用直觀,數據顯示方式有局限性。(1)對讀取的數據需要計算和加工后再顯示(2)顯示樣式和數據內容有關聯(3)用 SQL 語句難以一次完成的查詢
4.3 數據庫設計時要遵循的三范式
(1)無重復列,且每列為最小信息單元。表中喜歡顏色這一列有多種選擇,是不符合數據庫要求的,最好將顏色做成一張表用編號來表示顏色,調用顏色時可以調用編號人名和顏色之間是一對多的關系。(2)無重復行,行內信息不可依賴于主鍵。(3)要求一個數據庫的表中不包含已經在其它表中已包含的非主要關鍵字。在上面的表中已經有了 st_name 字段表示姓名,在下面的表中就不能有包含姓名的字段,而要用 st_id 來表示。
5 通過一個成績表查詢的案例
5.1 SQL語句功能
SQL (Structured Query Language) 數據操縱和數據定義語言,這種語言具有交互性特點,能為用戶訪問數據庫提供極大的便利。 在 SQL 中,關系模式稱為 (base table);存儲模式稱為 (stored file);子模式稱為 (view),我們常用的 Access、SQL-server、oracle都是關系型數據庫。
5.2 查詢語句
SELECT *數據庫FROM[TABLE] 查詢表WHERE[FIELD]=3 條件語句PRDER BY[FELD2] 字段排序DESC 反向排序(無 正向排序)SELECT * FROM[table]WHERE[field]=3ORDER BY [field2]DESC以一個學生年度考試數據查詢為例:要查詢 小李 2019 年度第二學期 數學 72.4ASP.NET 訪問數據庫方法(表 2)。如圖 3 所示的表是我們平常常用的一個種表格,但它并不符合數據庫的三范式,將它拆分為四張表,通過拆分的表就符合數據庫的三范式。在最主要的分數表中,除了分數外都用數字方式表示,它與其他的表之間都通過數字來進行鏈接。將四張表拖入到 T_student、T_score、 T_testtype、T_subject 拖入到查詢生成器中,然后切換到【SQL 視圖】在 Selec 后面加上 * 號,就可以查看到全視圖形式,每個同學的所有信息我們都可以獲取查詢到。
5.2.1 簡單查詢
查詢輸出 2019 年度第一學期期末考試,數學大于 80 分的學生,我們分析需要輸出姓名、科目、分數。使輸出結果符合用戶習慣。 得到的數據關鍵是 Where 子句:WHERE TT_ID=1 AND SBJ_ID=2 AND SC_SCORE>80;
5.2.2 交叉查詢
查詢出每個學生的多門成績,就要應用交叉查詢方式要查詢出信息我們要進行兩部操作:(1)通過結構庫關系中獲取信息。分別修改表 T_student 的獲取字段為 ST_name,T_subject 的獲取字段為 SBJ_NAME。(2)從表中獲取下面信息(表 3)。打開Access,建立好表,在【查詢向導】中選擇【交叉表查詢向導】(1)行標簽選擇學生姓名 SC_STID 字段(2)列標簽選擇科目 SC_SBJID 字段(3)交叉區域選擇 SC_SCORE 字段選中 T_SCORE 表,打開設計視圖,將其余三張表拖入,在字段選項中分別選擇學生姓名 ST_NAME、考試科目 SBJ_NAME、分值SC_SCORE。這樣在一張表中就可以查詢出多個學生的各門成績,達到了在一張表中顯示多個信息。
參考文獻
[1]https://blog.csdn.net/ithomer/article/details/6624684用 oledb 連接數據庫:
[2] 李晨 . 基于 ACCESS 的數據庫查詢功能模塊設計 [J]. 電腦迷 , 2018(6):46.
[3] 霍莉 . 基于 Access 數據庫的計算查詢教學實例 [J]. 電子技術與軟件工程 ,2018(19):187-188.
作者:玉冰 單位:云南農業職業技術學院