圖書館管理系統源代碼:access圖書館管理系統建立

Access資料庫簡介

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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、通過複製粘貼創建數據表

首先創建了一個空的資料庫,找到保存到的路徑,雙擊打開:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

點擊 「創建」選項卡:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

點擊確定:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

複製後粘貼:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

上面這個數據表已經不是普通的數據表了,它是以資料庫的形式存在數據表裡面,我們可以用資料庫命令對這個數據表進行相應操作了。

2、通過導入外部數據創建數據表

Access資料庫也可以通過導入外部數據的方式來建立數據表。

首先,點擊「外部數據」選項卡,大家可以看到,供我們導入數據的文件格式有Excel文件、Access文件、文本文件、其他文件格式等等。

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

點擊確定:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

選中一個數據表:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

下一步:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

點擊下一步:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

繼續下一步:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

點擊下一步:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

還可以導入VF資料庫文件,實際就是將別的資料庫格式文件的數據直接移植到ACCESS資料庫

點擊「外部數據」選項卡下的「其他」,最後一項dBASE文件就是導入VF數據格式的文件:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

點擊後,選擇好路徑:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

然後點擊確定就OK了:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

Access資料庫查詢

Access為你提供了幾種不同類型的查詢,主要分為兩大類:選擇查詢和操作查詢

在進行查詢前,我們首先要明確我們的目的,也就是你想要一個什麼樣的結果?

知道我們想要什麼了,才能進一步寫查詢語句。

例如,校長讓教務處主任統計一下哪個班級的英語平均成績最好?哪個班級語文平均成績最好?

一文學會ACCESS資料庫,管理數據不再使用EXCEL

要統計這個數據,主要分以下幾步:

第一步:創建查詢

點擊「創建」選項卡的查詢設計:

一文學會ACCESS資料庫,管理數據不再使用EXCEL
一文學會ACCESS資料庫,管理數據不再使用EXCEL

關閉單擊右鍵「SQL視圖」

一文學會ACCESS資料庫,管理數據不再使用EXCEL
一文學會ACCESS資料庫,管理數據不再使用EXCEL

第二步:寫查詢語句

Select 班級,avg(英語分數),avg(語文分數) 
From學生成績表4 
group by 班
一文學會ACCESS資料庫,管理數據不再使用EXCEL

Select:查詢;

班級,avg(英語分數),avg(語文分數):這三個就是我們要的結果,avg是英文平均的縮寫

From學生成績表4:這裡是從「學生成績表4」裡面查

group by 班級:group by是分組的意思,就是按哪個欄位進行分類

第三步:運行

紅色的「嘆號」就是運行

一文學會ACCESS資料庫,管理數據不再使用EXCEL

出現下面這個統計結果

第一列是英語平均分

第二列是語文平均分

一文學會ACCESS資料庫,管理數據不再使用EXCEL

可以為每個欄位加一個別名,As後面接的是一個別名,

也可以把它看作是一個代號

這個別名是為了讓你能夠識別「avg(英語分數)」和 「avg(語文分數)」的

Select 班級,avg(英語分數) as 英語平均分,avg(語文分數)  as 語文平均分 
From學生成績表4 
group by 班
一文學會ACCESS資料庫,管理數據不再使用EXCEL

查詢結果有變化:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

可以保存這個查詢:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

常用的選擇查詢可以歸納以下幾種類型

第一種查詢語句:

Select * 
from 學生成績表4

它的意義就是查詢「學生成績表4」中所有的數據,下圖便是:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

第二種查詢語句:

  Select * 
  from 學生成績表4 
  where 英語分數>=60

較之前多了where 英語分數>=60,就是表示加了條件限制,只查詢英語成績及格的數據,where後面接的就是限定條件。

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

第三種查詢語句:

Select 班級,avg(英語分數) 
from 學生成績表4 
where 英語分數>=60 
group by 班級

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

運行後,是下圖這樣的結果,顯示了不同班級英語成績及格學生的平均分數。

可以看到二班及格學生的英語平均成績最高

二班中上等生的英語成績要普遍高於其它班級的中上等生

一文學會ACCESS資料庫,管理數據不再使用EXCEL

Access資料庫查詢語句幾個常用的統計函數

1、avg()函數

這個比較熟悉,就是取欄位的平均值:求每個班級語文的平均分:

Select 班級,avg(語文分數) 
from 學生成績表  
group by 班級
一文學會ACCESS資料庫,管理數據不再使用EXCEL

運行結果:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

2、sum()函數

這個函數和我們Excel裡面的比較類似,它就是求和函數,求每個班級語文的總分:

Select 班級,sum(語文分數) 
from 學生成績表  
group by 班級
一文學會ACCESS資料庫,管理數據不再使用EXCEL

運行結果:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

3、count()函數

統計記錄數,求每個班級的學生人數:

SELECT 班級, count(學號)
FROM 學生成績表
GROUP BY 班級;
一文學會ACCESS資料庫,管理數據不再使用EXCEL

運行結果:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

4、max()函數

取欄位最大值,求每個班級的語文最高分:

SELECT 學號, max(語文分數)
FROM 學生成績表
GROUP BY 學號;
一文學會ACCESS資料庫,管理數據不再使用EXCEL

運行結果:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

5、min()函數

取欄位最小值,求每個班級的語文最低分:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

運行結果:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

查詢語句中where和having的條件用法

where和having在查詢語句中的作用都是條件限制

它們在查詢語句中的位置是不一樣的,而且限制的內容也不一樣

1、所處位置不一樣

在查詢語句中where作為普通條件限制,它是在group by 之前

SELECT 班級, avg(語文分數) AS 語文平均分
FROM 學生成績表
WHERE 英語分數>=60
GROUP BY 班級
一文學會ACCESS資料庫,管理數據不再使用EXCEL

而having是一個過濾聲明,是在查詢返回結果集以後對查詢結果進行的條件限制,位置是在group by 之後

SELECT 班級, avg(語文分數) AS 語文平均分
FROM 學生成績表
WHERE 英語分數>=60
GROUP BY 班級
HAVING avg(語文分數)>=60;
一文學會ACCESS資料庫,管理數據不再使用EXCEL

2、後接內容不一樣

在查詢語句中where後面只能接普通條件,不能接聚合函數條件

所謂的聚合函數就是我們上一期提到的函數都可稱為聚合函數

下面where後這樣寫是錯誤的:

SELECT 班級, avg(語文分數) AS 語文平均分
FROM 學生成績表
WHERE avg(語文分數)>=60//錯誤
GROUP BY 班級
一文學會ACCESS資料庫,管理數據不再使用EXCEL

在查詢語句中having作為查詢結果返回後的條件限制,需要接返回結果後的條件

下面having後這樣寫是錯誤的,因為返回結果已經不存在「英語分數」這個欄位了:

SELECT 班級, avg(語文分數) AS 語文平均分
FROM 學生成績表
WHERE 英語分數>=60
GROUP BY 班級
HAVING 英語分數>=60;//錯誤
一文學會ACCESS資料庫,管理數據不再使用EXCEL

3、運行結果不一樣

在where後接的條件表示要在英語成績及格的學生中進行統計

統計這些學生的語文成績怎麼樣

從下面的結果可以看到:

在一班英語及格的學生中語文成績並不好平均成績沒有達到及格線

而其它班級英語和語文成績都較好。

一文學會ACCESS資料庫,管理數據不再使用EXCEL

而having後加了個條件是avg(語文分數)>=60

這表示在統計結果中只顯示平均成績及格的班級,不及格的班級不顯示

從結果看以看到:

下面這個結果較之前少了一個班級,就是一班,因為一班語文平均成績沒及格

一文學會ACCESS資料庫,管理數據不再使用EXCEL

同時查詢多個表

下面這個資料庫有兩個成績單

一個是期中考試

一個是期末考試

要看一看學生成績有沒有進步:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

創建一個查詢,並寫上下面的查詢語句:

SELECT A.學號, A.姓名, A.英語分數 AS 其中英語分, B.英語分數 AS 其末英語分
FROM 基礎信息 AS A, 期末考試 AS B
WHERE A.學號=B.學號;
一文學會ACCESS資料庫,管理數據不再使用EXCEL

SELECT:後面接的就是我們想要的信息,如學號,姓名,期中英語分,期末英語分;

FROM:後面接的就是涉及的表名,這裡面我們就涉及兩個表,一個是「期中考試」,一個是「期末考試」;

WHERE:後面接的就是限定條件,因為我們查的是兩個表,而這兩個表必須有一個紐帶能夠聯繫到一起,而這個紐帶就是學生的學號,因為每個學生的學號是唯一的,並沒有重複,所以,我們查詢兩個表的時候必須找到一個紐帶,這個紐帶不能重複,否則我們無法準確的區分學生的成績。

運行之後,得到下面的結果:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

可以看到,趙風車的成績下降的最快,期中考了70分,而期末考了35分

其他人的成績有上升較快的,劉玲的成績由30分上升到76分

這樣每個學生的成績就一目了然了,無論涉及幾個表,只要找到這幾個表共有的紐帶,就可以查詢每個表相對應的信息了。

簡單的嵌套查詢

先來看下面這個簡單的查詢:

SELECT 班級, avg(英語分數) AS 英語平均分, avg(語文分數) AS 語文平均分
FROM 學生成績表4
GROUP BY 班級;
一文學會ACCESS資料庫,管理數據不再使用EXCEL

運行結果是:

一文學會ACCESS資料庫,管理數據不再使用EXCEL

下面這個就是嵌套查詢了:要看一下哪個班級英語平均分和語文平均分都及格了?

SELECT *
FROM (SELECT 班級, avg(英語分數) AS 英語平均分, avg(語文分數) AS 語文平均分 FROM 學生成績表y GROUP BY 班級)  AS [%$##@_Alias]
WHERE 英語平均分>=60 AND 語文平均分>=60;
一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

一文學會ACCESS資料庫,管理數據不再使用EXCEL

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 13:12
下一篇 2024-12-09 13:12

相關推薦

發表回復

登錄後才能評論