Access數據庫這些功能如果你掌握了,數據從此為你所用

數據表“合計”公式的應用
我們先來打開一個“學生成績表4”,如下圖:

然後點擊“開始”選項卡下面的“合計公式”
在數據表的最後一行出現了“匯總”字樣:

你可以在匯總一行的每個字段下選擇想要的結果
對於數字格式的字段會有7種結果
而對於文本則只有一個“計數”結果:

下面是文本字段:

分別對字段班級1求“計數”
對英語求“平均分”
對語文求“最高分”
對數學求“最低分”
得到如下的結果是有21條數據
英語平均分是62.3分
語文最高分是96分
數學最低分是47分,如下圖:

數據表的“篩選”功能
從2007以後版本的Access數據庫開始兼容了Excel的一些基本操作功能
再加上本身的數據庫功能,使得它倍受青睞
你如果想在Access數據庫中,對錶實現一些簡單的“篩選”功能,可以不用寫“查詢語句”,直接用鼠標操作即可
假如你想對下面的學生成績表進行篩選
你需要二班語、數、外成績及格的人員數據:

通常在數據庫中,你需要寫“查詢語句”來實現上述的任務
創建一個查詢,並寫上語句:
select *
from 學生成績表
where 班級=‘二班 and 英語分數>=60 and 語文分數>=60 and 數學分數>=60

點擊紅色嘆號運行,結果如下:

可以看到,二班的學生三門課同時都及格的只有兩名學生
學號分別是17號和21號,你如果不寫查詢語句怎麼完成這個操作呢?
其實很簡單,從下面能夠看到,每個字段名字旁邊都有一個黑色的三角號:

點擊黑色小三角:

直接選中二班,點確定:

看到了嗎,數據只有二班的了,接着點擊英語分數旁邊的黑色小三角:

界面有點不一樣了,因為它是數字格式的字段
你不要一個一個地去選,比較麻煩
直接點擊數字篩選器,再點擊大於(實際上這是個大於等於):

輸入60即可,然後確定,以此類推,語文和數據都這麼弄,就得到下面的結果:

這個不用寫語句,同樣可以實現
所以零基礎的小白學習Access數據庫也是相當容易的
數據表中數據的“排序”功能
你想要對下面的學生成績表,按英語分數由低到高進行排序:

如果你用查詢語句實現,你可以創建一個查詢並寫上語句:
select *
from 學生成績表
order by 英語分數
這裡面的order by表示由低到高進行排序:

點擊紅色嘆號運行,結果如下:

如果你想要由高到低排序怎麼辦?
SQL語句這麼寫:
select *
from 學生成績表
order by 英語分數 desc
只是在原來的基礎上多了一個“desc”,即為由高到低排序:

運行結果:

你除了寫查詢語句進行排序外,還可以通過簡單的鼠標操作來實現數據的排序問題
打開學生成績表,右鍵點擊“英語分數”字段:

可以看到,有升序和降序兩種選擇
你只需要選擇一種我們想要的排序即可,排序結果如下(由低到高排序):

這種用鼠標操作的排序是非常簡單的
“left”的用法
“left”在Access數據庫中表達的含義是“左截取”
也就是從左面開始截取字符,它的用法是:
left(字段名稱,2),表示對某個字段進行左截取2個字符
你要對下面的“學生信息表”中的出生日期精確到月份即可,就可以用到left:

你可以創建一個查詢並寫上語句:
select *,left(出生日期,6) as csrq
from 學生信息表
這裡面的left(出生日期,6)即為對字段“出生日期”從左面開始取6位
關於“as csrq”表示一個別名,前面的文章已經講過:

點擊紅色嘆號運行,結果如下:

可以看到出生日期精確到月份了
從“出生日期”字段左面取了6位,這只是一個查詢,並沒有生成真正的數據表
如果要生成真正的數據表,需要這樣:
select *,left(出生日期,6) as csrq
into 學生信息表改
from 學生信息表
加一個“into 學生信息表改”即可:

運行結果:

這時你的數據庫中就生成了一個實實在在的表了“學生信息表改”
“top”用法
對於下面的“學生成績表”
你只想要顯示前7行數據
在查詢語句中怎麼進行控制呢?

你可以創建一個查詢並寫上語句:
select top 7 *
from 學生成績表
這裡面的top 7就是顯示前7行
*就是顯示所有字段的數據:

點擊紅色嘆號運行,結果如下:

假如你只想要顯示班級,學號和英語分數這幾個字段
應該這麼寫:
select top 7 班級,學號,英語分數
from 學生成績表

運行結果:

“文本類型”轉換為“時間類型”
下面是學生的入學時間表
為了方便錄入數據,錄入人員在“入學時間”字段錄入的是文本類型的數據
你怎麼才能把它轉換為真正的日期型呢?

第一步:加一個“入學時間1”字段,類型選擇“日期/時間”型:

可以看到“入學時間1”字段,這個字段的類型就是“日期/時間”型的:

第二步:創建查詢,寫語句:
UPDATE 入學表
SET 入學時間1 = CDATE(LEFT(入學時間,4)&"/"&MID(入學時間,5,2)&"/"&RIGHT(入學時間,2))

CDATE函數就是將文本轉換為日期,裡面由三部分組成,每個部分用”/”隔開:
1、LEFT(入學時間,4):表示年,用left實現,左邊截取4位
2、MID(入學時間,5,2):表示月,用mid實現,從每5位開始截取2位
3、RIGHT(入學時間,2):表示日,用right實現,右邊截取2位
“&”用於連接每一部分與”/”。
第三步:運行結果:

可以看到入學時間1字段變成了日期型的
SQL查詢“不重複”數據
對於下面的“學生成績表7”,裡面有一些重複的數據
你怎麼來查詢不讓它重複呢?

你可以創建一個查詢並寫上語句:
select distinct 班級,學號,語文分數,數學分數
from 學生成績表7
order by 學號
distinct就是顯示唯一的數據值,後面接想要的字段名稱即可
order by的作用就是按學號進行升序排序

運行,結果如下:

除了這種方法,還有一種方法同樣可以實現這種操作
SQL語句改為:
select 班級,學號,語文分數,數學分數
from 學生成績表7
group by 班級,學號,語文分數,數學分數
order by 學號

運行結果:

SQL查詢“between and”的用法
SQL查詢語句中“between and”表示條件的範圍,一般跟在where的後面
下面是“學生成績表”
你想要查詢英語分數在40分到70分之間的學生:

你可以創建一個查詢並寫上語句:
select *
from 學生成績表
where 英語分數 between 40 and 70”
這裡面的between…and就表示在哪個區間:

運行結果如下:

查詢語句“字符匹配”
下面是所有學生成績表:

你想要把所有姓“張”的學生的成績提出來,應該怎麼辦?
創建一個“查詢”並寫上語句:
select *
from 學生成績表
where 姓名 like '張*'

從查詢語句可以看出“like”可以實現字符匹配
like ‘張*’字符匹配,“*”代表通配符
你想要提取姓“張”的學生,所以“張”字開頭,後面用“*”代替後面的名字
運行結果如下:

如果,你想要把所有學生名字中帶“冰”字的學生成績提出來,應該怎麼辦?
創建一個“查詢”並寫上語句:
select *
from 學生成績表
where 姓名 like '*冰*'

前後都加通配符,表示“冰”字可以在名字中的任何位置
運行結果如下:

如何用not like 來提取不包含這些字的學生
看下面這個語句:
select *
from 學生成績表
where 姓名 not like '張*'

運行結果如下:

當然,如果想要提名字最後一個字是“玲”字和最後一個字不是“玲”字的學生成績,也很容易
SQL查詢語句【in】和【null】的用法
1、【in】的用法
下面是學生成績表:

你只要一班和二班學生成績信息,創建一個查詢
查詢語句為:
select *
from 學生成績表
where 班級 in('一班','二班')
【in】的用途就是把班級限制在(‘一班’,’二班’)這個集合中
下面就是集合限制的查詢語句:

當然,集合裡面是可以有多個元素的,也可以加上三班或者四班
運行結果如下:

顯示的查詢結果能夠看出,只有“一班”和“二班”的學生成績
那如果在“in”的前面加個“not”表達什麼含義呢?看下面的【not in】的用法:
查詢語句:
select *
from 學生成績表
where 班級 not in('一班','二班')
語句中多了一個“not”:

運行結果如下:

2、【null】的用法
從下面的學生成績表中可以看到,有些學生的班級信息漏掉了
你要把這些學生找出來

看這個查詢:
select *
from 學生成績表
where 班級 is null

運行結果:

那麼【is not null】就表示不為空:
select *
from 學生成績表
where 班級 is not null

運行結果:

用【and】進行多條件查詢實例
下面是一個“學生成績表”:

想要在學生成績表中提取一班、二班和三班學生的三科成績
這些學生英語不及格,但數學成績及格
語文分在50-70分之間,並且名字中不能包括“冰”字
創建一個查詢:
select *
from 學生成績表
where 班級 in('一班','二班','三班') and 姓名 not like '*冰*' and 英語分數<60 and 數學分數>=60 and (語文分數 between 50 and 70)

這個SQL查詢語句看着有點長,實際上並不複雜:
條件1,班級 in(‘一班’,’二班’,’三班’),這個用到了“in”,表示所在的集合;
條件2,姓名 not like ‘*冰*’,這個用到了“not like”,表示不包含;
條件3,英語分數<60,這個用到了“<”,表示小於;
條件4,數學分數>=60,這個用到了“>=”,表示大於等於;
條件5,語文分數 between 50 and 70,這個用到了“between…and”,表示介於兩個數之間。
同時滿足這一個條件,最後的查詢結果是:

有9個學生滿足以上五個條件。
其實,在條件1中,你還可以這樣寫:
條件1,班級 not in(‘四班’,null)

運行的結果如下,查詢的結果也是這9個學生:

用【or】進行“並列或”的條件查詢
下面是一個“學生成績表”:

想要在學生成績表中提取一班和三班學生的三科成績
這些學生三門課只要有一門不及格就提出來
並且這些學生只能姓“張”或者姓“劉”
創建一個查詢:
select *
from 學生成績表
where 班級 in('一班','三班') and (姓名 like '張*' or 姓名 like '劉*') and (英語分數<60 or 數學分數<60 or 語文分數<60 )

來分析一下:
條件1,班級 in(‘一班’,’三班’),這個表示一班和三班的都提出來;
條件2,(姓名like ‘張*’ or 姓名like ‘劉*’),這個表示姓張的或者姓劉的學生都提出來;
條件3,(英語分數<60 or 數學分數<60 or 語文分數<60 ),這個表示只要學生有一科沒及格就提出來。
以上的【or】都表示“或者”,最後的查詢結果是一共有16個學生符合條件:

你只要用括號把大的條件分清,再用or或者and去限制小的條件,基本是不會出錯的。
用“rnd()”函數產生隨機數
下面是一個“學生成績表”
已經添加了三個字段,都是數字格式的,用於生成三組不同類型的隨機數字
還添加了一個自動編號格式的ID字段:

至於如何添加字段,可以翻看以前的文章
然後創建一個查詢,並寫上SQL查詢語句:
update 學生成績表
set 隨機數1=rnd(id)

以前講過update set的用法,它是對錶進行更新操作,也就是修改表
來分析一下隨機數字是怎麼產生的:
隨機數1=rnd(id) 表示rnd(id)產生一組0-1之間的隨機數
並放到隨機數1這個字段
Access數據庫很特殊,這裡面用到了id字段
它就是一個自動編號字段,運行結果如下:

那如何產生0-100之間的隨機數字呢?請看下面的語句:
update 學生成績表
set 隨機數2=rnd(id)*100
將rnd(id)乘以100,表示0-100之間的隨機數字,結果如下:

上面產生的隨機數都是從0開始的
那麼,如何產生兩個固定數字之間的數呢?
假如你想要50-100之間的數呢?
請看下面的語句:
update 學生成績表
set 隨機數3=rnd(id)*50+50
rnd(id)是0-1之間
rnd(id)*50就表示0-50之間
rnd(id)*50+50就表示50-100之間
運行結果如下:

實現字段數據的“自動計算”
下面是一個“學生成績表”
有語、數、外三科成績:

你想要加一個總分,實現字段的自動計算
第一步:打開表,點擊設計視圖:

增加一個總分字段,數據類型選擇“計算”:

在上面的空白處鍵入“[英語分數]+[數學分數]+[語文分數]”
所表達的含義是新增加的“總分”字段的內容是“語數外三個字段的和”:

點擊確定後,回到數據表視圖下
可以看到多了一個“總分”字段,並且自動計算出了總分:

假使,你對期中的一科成績進行修改,那麼總分會自動更新結果:

可以看到英語分數修改了,總分跟着就自動計算
導入VF數據庫時出錯的處理方法
有一些VF數據表需要導入Access數據庫:

你想要把它們導入到Access數據庫
第一步:點外部數據選項卡下的其他,選擇最後一項dBASE文件:

選擇VF數據庫所在的路徑後,雙擊文件即可:

確定後,出現了下面的錯誤信息“外部表不是預期的格式”:

什麼原因呢?
這是因為Access數據庫並不識別現有的VF數據庫格式
只需要把VF數據庫另存一下,改一下格式就可以了
首先,我們把VF數據表打開,點擊文件,選擇導出:

確定後,出現下面這個界面,將默認的VF3.0格式改成下面的Dbase 格式:

確定後可以看到再次導入VF數據時,彈出了下面的界面:

說明你已經成功導入了這個表:

輕鬆實現對Access數據庫的基本設置
第一步,雙擊打開你的數據庫:

第二步,點擊“文件”選項卡,選擇“選項”:

選擇選項後,會彈出以下界面:

第三步,對常規、當前數據庫、數據表和對象設計器等四項進行設置:
1、常規:

選擇藍色後,點擊確定,可以看到數據庫的顏色變啦:

變成藍色了,你也可以選擇黑色:

2、“當前數據庫”設置:

選擇選項卡式,你的數據表可以很容易的找到:

下面這是重疊式的:

3、“數據表”設置:

你可以對數據表進行基本的設置
你選擇凸起的效果,字號大一點並加粗:

4、“對象設計器”設置:

你可以對默認的字段類型和字段大小等進行修改
原來是文本的可以設置數字的
這樣你增加一個字段後,它的類型就自動是數字的:

總結
1、了解Access數據庫
Access是Microsoft公司推出的Office系列辦公自動化軟件的一個組件,是一個小型的數據庫管理系統。它廣泛應用於財務、行政、金融、統計、審計和科研項目等眾多領域。
2、創建Access數據庫
“開始”→“所有程序”→“Microsoft Office” →“Microsoft Access 2010” →啟動Access 2010:

在右下角,你可以選擇將該數據庫保存的路徑及文件名稱:

3、創建“數據表”
打開空的數據庫→創建→表
創建了名字為表1的表,你可以給它改名字

你可以直接將Excel表裡面的數據粘貼過來:

粘貼之後給你的表起個名字:

當然了,也可以導入其它格式的數據到你這個數據庫裡面
4、創建“查詢”
創建→查詢設計→單擊右鍵→SQL視圖
可以寫查詢語句了:

5、查詢分類
分兩大類:
一是選擇查詢
二是操作查詢

顯示的圖標都不太一樣,不同圖標表示不同種類的查詢,前面的文章講的很詳細。
6、常用的SQL查詢語句寫法
一是(選擇查詢):
Select *
from 學生成績表
where 英語分數>=60
二是(更新查詢):
update 學生成績表
set 英語分數=英語分數+5
三是(生成表查詢):
Select 學號, 數學分數
into 數學成績表
from 學生成績表
四是(追加查詢):
Insert into 一班成績
select *
from學生成績表
五是(刪除查詢):
delete *
from 一班成績
where 班級 = '二班'
7、常用的函數用法。
Access數據庫中一些常用的函數,如:avg()函數、sum()函數、count()函數、max()函數、min()函數、left()函數、cdate()函數
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/223042.html