Access數據庫簡介

Access是Microsoft公司推出的Office系列辦公自動化軟件的一個組件
它是一個小型的數據庫管理系統。
它廣泛應用於財務、行政、金融、統計和審計等眾多領域。
在1992年11月Microsoft公司推出了第一個供個人使用的關係數據庫系統Access 1.0
此後Access不斷地改進和優化,從1995年開始,Access作為Microsoft Office套裝軟件的一部分,先後推出了多個版本
目前比較好用,而且比較穩定的版本是Access 2010
你在安裝Office 2010後,便可啟動Access數據庫管理系統:
「開始」→「所有程序」→「Microsoft Office」
「Microsoft Access 2010」命令,啟動Access 2010。
Access數據庫創建表
在Access 2010中,它給我們提供了六大數據庫對象,Access的主要功能就是通過這六大數據對象來完成的:
表(Table)
查詢(Query)
窗體(Form)
報表(Report)
宏(Macro)
模塊(Module)
創建數據表的方式有以下幾種:
1、通過複製粘貼創建數據表
首先創建了一個空的數據庫,找到保存到的路徑,雙擊打開:

點擊 「創建」選項卡:

選擇「表」後,出現了表1,這個就是我們創建的表了,但它是一個空的表:

這個空的表默認的表名就是表1,當然,我們可以給它改成其它的我們便於識別的名字,下面這個圖就是了:

點擊確定:

從Excel表裏面取個現成的數據:

複製後粘貼:

上面這個數據表已經不是普通的數據表了,它是以數據庫的形式存在數據表裏面,我們可以用數據庫命令對這個數據表進行相應操作了。
2、通過導入外部數據創建數據表
Access數據庫也可以通過導入外部數據的方式來建立數據表。
首先,點擊「外部數據」選項卡,大家可以看到,供我們導入數據的文件格式有Excel文件、Access文件、文本文件、其他文件格式等等。

在其它文件格式當中,最常用的就是最後一個dBASE文件,它是VF數據庫格式,它的擴展名是.dbf

也可以直接導入Excel文件當中的數據:

點擊確定:

選中一個數據表:

下一步:

可以添加主鍵,也就是前面ID那個字段,它就會自動有個編號,所謂的主鍵,就是不能有重複,它的作用是方便以最快的速度找到想要的行數據:

輸入剛剛導入數據表的名稱即可:

也可以導入文本文件,點擊「外部數據「選項卡下的「文本文件」:

找到要導入文本文件所在的路徑:

點擊確定,選擇「帶分隔符」項:

點擊下一步:

繼續下一步:

點擊下一步:

還可以導入VF數據庫文件,實際就是將別的數據庫格式文件的數據直接移植到ACCESS數據庫
點擊「外部數據」選項卡下的「其他」,最後一項dBASE文件就是導入VF數據格式的文件:

點擊後,選擇好路徑:

然後點擊確定就OK了:

Access數據庫查詢
Access為你提供了幾種不同類型的查詢,主要分為兩大類:選擇查詢和操作查詢
在進行查詢前,我們首先要明確我們的目的,也就是你想要一個什麼樣的結果?
知道我們想要什麼了,才能進一步寫查詢語句。
例如,校長讓教務處主任統計一下哪個班級的英語平均成績最好?哪個班級語文平均成績最好?

要統計這個數據,主要分以下幾步:
第一步:創建查詢
點擊「創建」選項卡的查詢設計:


關閉單擊右鍵「SQL視圖」


第二步:寫查詢語句
Select 班級,avg(英語分數),avg(語文分數)
From學生成績表4
group by 班

Select:查詢;
班級,avg(英語分數),avg(語文分數):這三個就是我們要的結果,avg是英文平均的縮寫
From學生成績表4:這裡是從「學生成績表4」裏面查
group by 班級:group by是分組的意思,就是按哪個字段進行分類
第三步:運行
紅色的「嘆號」就是運行

出現下面這個統計結果
第一列是英語平均分
第二列是語文平均分

可以為每個字段加一個別名,As後面接的是一個別名,
也可以把它看作是一個代號
這個別名是為了讓你能夠識別「avg(英語分數)」和 「avg(語文分數)」的
Select 班級,avg(英語分數) as 英語平均分,avg(語文分數) as 語文平均分
From學生成績表4
group by 班

查詢結果有變化:

可以保存這個查詢:

常用的選擇查詢可以歸納以下幾種類型
第一種查詢語句:
Select *
from 學生成績表4
它的意義就是查詢「學生成績表4」中所有的數據,下圖便是:

運行之後,就出現下圖這樣的結果,和「學生成績表4」中的數據一模一樣。

第二種查詢語句:
Select *
from 學生成績表4
where 英語分數>=60
較之前多了where 英語分數>=60,就是表示加了條件限制,只查詢英語成績及格的數據,where後面接的就是限定條件。

運行之後,就出現下圖這樣的結果,顯示的只是英語成績及格的人員,不及格的不顯示。

第三種查詢語句:
Select 班級,avg(英語分數)
from 學生成績表4
where 英語分數>=60
group by 班級
較之前多了「group by 班級」,而且把「*」改成了「班級,avg(英語分數)」,就是表示對不同班級進行分組查詢,而且只查詢及格人員的平均成績,也就是中上等學生之間的比較,把不及格人員排除在外了。

運行後,是下圖這樣的結果,顯示了不同班級英語成績及格學生的平均分數。
可以看到二班及格學生的英語平均成績最高
二班中上等生的英語成績要普遍高於其它班級的中上等生

Access數據庫查詢語句幾個常用的統計函數
1、avg()函數
這個比較熟悉,就是取字段的平均值:求每個班級語文的平均分:
Select 班級,avg(語文分數)
from 學生成績表
group by 班級

運行結果:

2、sum()函數
這個函數和我們Excel裏面的比較類似,它就是求和函數,求每個班級語文的總分:
Select 班級,sum(語文分數)
from 學生成績表
group by 班級

運行結果:

3、count()函數
統計記錄數,求每個班級的學生人數:
SELECT 班級, count(學號)
FROM 學生成績表
GROUP BY 班級;

運行結果:

4、max()函數
取字段最大值,求每個班級的語文最高分:
SELECT 學號, max(語文分數)
FROM 學生成績表
GROUP BY 學號;

運行結果:

5、min()函數
取字段最小值,求每個班級的語文最低分:

運行結果:

查詢語句中where和having的條件用法
where和having在查詢語句中的作用都是條件限制
它們在查詢語句中的位置是不一樣的,而且限制的內容也不一樣
1、所處位置不一樣
在查詢語句中where作為普通條件限制,它是在group by 之前
SELECT 班級, avg(語文分數) AS 語文平均分
FROM 學生成績表
WHERE 英語分數>=60
GROUP BY 班級

而having是一個過濾聲明,是在查詢返回結果集以後對查詢結果進行的條件限制,位置是在group by 之後
SELECT 班級, avg(語文分數) AS 語文平均分
FROM 學生成績表
WHERE 英語分數>=60
GROUP BY 班級
HAVING avg(語文分數)>=60;

2、後接內容不一樣
在查詢語句中where後面只能接普通條件,不能接聚合函數條件
所謂的聚合函數就是我們上一期提到的函數都可稱為聚合函數
下面where後這樣寫是錯誤的:
SELECT 班級, avg(語文分數) AS 語文平均分
FROM 學生成績表
WHERE avg(語文分數)>=60//錯誤
GROUP BY 班級

在查詢語句中having作為查詢結果返回後的條件限制,需要接返回結果後的條件
下面having後這樣寫是錯誤的,因為返回結果已經不存在「英語分數」這個字段了:
SELECT 班級, avg(語文分數) AS 語文平均分
FROM 學生成績表
WHERE 英語分數>=60
GROUP BY 班級
HAVING 英語分數>=60;//錯誤

3、運行結果不一樣
在where後接的條件表示要在英語成績及格的學生中進行統計
統計這些學生的語文成績怎麼樣
從下面的結果可以看到:
在一班英語及格的學生中語文成績並不好平均成績沒有達到及格線
而其它班級英語和語文成績都較好。

而having後加了個條件是avg(語文分數)>=60
這表示在統計結果中只顯示平均成績及格的班級,不及格的班級不顯示
從結果看以看到:
下面這個結果較之前少了一個班級,就是一班,因為一班語文平均成績沒及格

同時查詢多個表
下面這個數據庫有兩個成績單
一個是期中考試
一個是期末考試
要看一看學生成績有沒有進步:

創建一個查詢,並寫上下面的查詢語句:
SELECT A.學號, A.姓名, A.英語分數 AS 其中英語分, B.英語分數 AS 其末英語分
FROM 基礎信息 AS A, 期末考試 AS B
WHERE A.學號=B.學號;

SELECT:後面接的就是我們想要的信息,如學號,姓名,期中英語分,期末英語分;
FROM:後面接的就是涉及的表名,這裏面我們就涉及兩個表,一個是「期中考試」,一個是「期末考試」;
WHERE:後面接的就是限定條件,因為我們查的是兩個表,而這兩個表必須有一個紐帶能夠聯繫到一起,而這個紐帶就是學生的學號,因為每個學生的學號是唯一的,並沒有重複,所以,我們查詢兩個表的時候必須找到一個紐帶,這個紐帶不能重複,否則我們無法準確的區分學生的成績。
運行之後,得到下面的結果:

可以看到,趙風車的成績下降的最快,期中考了70分,而期末考了35分
其他人的成績有上升較快的,劉玲的成績由30分上升到76分
這樣每個學生的成績就一目了然了,無論涉及幾個表,只要找到這幾個表共有的紐帶,就可以查詢每個表相對應的信息了。
簡單的嵌套查詢
先來看下面這個簡單的查詢:
SELECT 班級, avg(英語分數) AS 英語平均分, avg(語文分數) AS 語文平均分
FROM 學生成績表4
GROUP BY 班級;

運行結果是:

下面這個就是嵌套查詢了:要看一下哪個班級英語平均分和語文平均分都及格了?
SELECT *
FROM (SELECT 班級, avg(英語分數) AS 英語平均分, avg(語文分數) AS 語文平均分 FROM 學生成績表y GROUP BY 班級) AS [%$##@_Alias]
WHERE 英語平均分>=60 AND 語文平均分>=60;

運行結果是這樣的,可以看到只顯示兩門成績都及格的班級。:

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/221542.html