資料庫管理:數據操作 (18.2)
你好!資料庫不僅僅是儲存資訊的地方;它們更是讓這些資訊發揮價值的強大工具。本章將教你如何向資料庫下達指令,讓它能計算出新的數值、將資料排序,並精確地找出你需要的記錄。
你可以把這想像成在學習如何與資料庫對話,讓它幫你處理那些繁瑣的工作!
1. 在資料庫中進行計算
數據操作通常從數學開始。我們透過計算來產生原本未直接輸入表格的實用資訊。
1.1 計算欄位與控制項
當你設計資料庫報表或查詢時,可以指示系統對現有的欄位進行計算。運算結果會放置在一個稱為計算欄位(用於查詢)或計算控制項(用於表單/報表)的新區域中。
範例: 如果你有一個 [價格] 欄位和一個 [數量] 欄位,你可以建立一個名為 [總成本] 的計算欄位。
公式: [總成本] = [價格] * [數量]
1.2 公式與函數
我們使用兩種主要工具來執行計算:
公式 (Formulae):
這涉及應用於欄位名稱或數值的基本算術運算。
- 加法: +
- 減法: -
- 乘法: *
- 除法: /
函數 (Functions):
這是預先建立的指令,能快速執行複雜或重複性的任務,通常涉及整欄的數據。你需要掌握這些關鍵的聚合函數:
- SUM: 計算數值欄位中所有數值的總和。(例如:所有銷售額的總和。)
- AVERAGE (AVG): 計算欄位中數值的平均值。
- MAXIMUM (MAX): 找出數值欄位中的最大值。(例如:最高考試分數。)
- MINIMUM (MIN): 找出數值欄位中的最小值。(例如:最便宜商品的價格。)
- COUNT: 計算符合特定條件的記錄總數。(例如:計算 A 班有多少名學生。)
計算欄位使用公式(基本算術)或函數(聚合運算)從現有欄位中產生新數據。
2. 數據排序(排列記錄)
排序是指將數據按照特定的順序排列,以便於閱讀和分析。
2.1 遞增與遞減排序
- 遞增排序 (Ascending Order): 將數據由小到大排列。
- 數字:1, 2, 3...
- 文字:A, B, C...
- 日期:由舊到新。
- 遞減排序 (Descending Order): 將數據由大到小排列。
- 數字:...3, 2, 1
- 文字:Z, Y, X...
- 日期:由新到舊。
2.2 使用多重條件排序
有時,僅使用一個欄位排序是不夠的,你通常需要使用多個條件進行排序。
資料庫會先按主要排序鍵 (Primary sort key) 進行排序;如果某些記錄在主要排序鍵的值相同,則會使用次要排序鍵 (Secondary sort key) 來決定順序。
範例: 如果你要排序學生名單:
- 按 [班別] 遞增排序(主要鍵)。
- 再按 [姓氏] 遞增排序(次要鍵)。
結果:所有 1A 班的學生會被分在一起,而在該組內,學生的名字會按姓氏字母順序排列。
3. 使用查詢搜尋並選擇數據
查詢 (Query) 本質上是你向資料庫提出的問題。它允許你選出符合特定要求(稱為準則/條件 (Criteria))的記錄子集(即篩選出來的一小組記錄)。
3.1 設定選擇準則
準則就是你設定用來決定顯示哪些記錄的規則。
範例: 找出所有 [城市] 為「London」且 [餘額] 超過 500 的客戶。
如果起初覺得有點困難,別擔心;練習才是關鍵!主要的挑戰在於選擇正確的運算子。
3.2 比較運算子
這些運算子用於將欄位數值與準則數值(如數字或文字)進行比較。
- = (等於):尋找欄位值與準則完全相等的記錄。
- > (大於):尋找大於準則的記錄。(例如:>100)
- < (小於):尋找小於準則的記錄。(例如:<50)
- >= (大於或等於)
- <= (小於或等於)
- <> (不等於):尋找欄位值與準則不相等的記錄。
你知道嗎? 你通常不需要輸入 "=" 符號;大多數資料庫軟體除非另有指定,否則都會預設為「等於」(例如,如果你在準則列中只輸入 'London',它會自動視為 =[London])。
4. 查詢中的邏輯與特殊運算子
當你需要使用多於一個條件時,請使用邏輯運算子 (Logical operators)(AND、OR、NOT)來連接它們。
4.1 AND 運算子(嚴格規則)
AND 運算子用於記錄必須滿足所有準則才能被選取的情況。
類比: 你需要既高且快才能加入籃球隊。如果你只是高但不快,你就會被排除在外。
在資料庫中,由 AND 連接的準則通常放在查詢設計格的同一行中。
準則範例: [性別] = '男' AND [年齡] >= 18
只選取 18 歲或以上的男性。
4.2 OR 運算子(靈活規則)
OR 運算子用於記錄只要滿足至少一個準則就能被選取的情況。
類比: 你可以使用信用卡或現金付款。只要你有其中一種,就可以付款。
在資料庫中,由 OR 連接的準則通常放在不同的行(通常標記為 'Criteria' 和 'or')中。
準則範例: [部門] = '銷售部' OR [部門] = '市場部'
選取在銷售部工作,或在市場部工作,或兩者皆是的員工(雖然通常員工只屬於一個部門)。
4.3 NOT 運算子(排除規則)
NOT 運算子用於排除符合特定準則的記錄。
準則範例: NOT [國家] = 'USA'
選取國家欄位非「USA」的所有記錄。
4.4 LIKE 運算子與萬用字元
LIKE 運算子用於在文字欄位中進行部分比對搜尋。你需要與 LIKE 運算子配合使用萬用字元 (Wildcards)。
萬用字元是一種特殊字元,代表一個或多個未知的字元。具體的萬用字元取決於你使用的軟體,但最常見的有兩個:
- * (星號): 代表任意數量的字元(零個或多個)。
- ? (問號): 代表單個字元。
萬用字元的應用範例:
- 準則: LIKE "S*"
意義: 找出所有以字母 'S' 開頭的項目(例如:Smith, Sanchez, Silver)。 - 準則: LIKE "*ton"
意義: 找出所有以 'ton' 結尾的項目(例如:Newton, Brighton, Dalton)。 - 準則: LIKE "R??a"
意義: 找出以 'R' 開頭且以 'a' 結尾的四個字母單字(例如:Rita, Rosa)。 - 準則: LIKE "*@cambridge.org"
意義: 找出所有屬於 cambridge.org 網域的電子郵件地址。
數據操作的關鍵在於轉換與篩選。使用算術處理總數與新數值,使用函數進行摘要(SUM, AVG),使用排序來整理順序,並利用查詢(搭配準則、邏輯運算子與萬用字元)來精確篩選所需的數據子集。