文章

PostgreSQL - 第 2 天 - 基本數據類型

課程簡介

數據類型在資料庫設計中至關重要,因為它定義了資料的儲存方式和使用方法。PostgreSQL 支援多種數據類型,從基本的數字、文字到進階的 JSON 和地理空間數據類型。我們將介紹一些最常用的數據類型,並解釋如何在建立資料表時選擇適合的數據類型。


常用數據類型

  1. 數字類型
    • INTEGER:儲存整數,範圍為 -2147483648 到 2147483647。
    • BIGINT:儲存更大的整數,適用於需要更大範圍的數值。
    • SERIAL:自動遞增的整數,常用作主鍵。
    • NUMERIC(精度, 小數位):精確的數字類型,適合用於需要高精度的金融數據(例如 NUMERIC(10, 2) 表示最多 10 位數字,含 2 位小數)。
    • FLOATDOUBLE PRECISION:浮點數類型,適用於非精確計算。
  2. 文字類型
    • CHAR(n):固定長度的字串,未達到指定長度時會自動填充空白。
    • VARCHAR(n):可變長度的字串,最多可儲存 n 個字符。
    • TEXT:可儲存任意長度的字串,適合用於長文本(例如文章內容)。
  3. 日期與時間類型
    • DATE:僅儲存日期,格式為 YYYY-MM-DD。
    • TIME:僅儲存時間,格式為 HH:MI:SS。
    • TIMESTAMP:同時儲存日期和時間,格式為 YYYY-MM-DD HH:MI:SS。
    • INTERVAL:用於表示時間間隔,例如 INTERVAL '2 days' 表示兩天。
  4. 布林值類型
    • BOOLEAN:僅接受 TRUEFALSENULL,適合用於開關類別的欄位。
  5. 其他常見類型
    • UUID:通用唯一識別碼(Universally Unique Identifier),常用於生成不重複的 ID。
    • ARRAY:陣列類型,可以儲存同一數據類型的多個值,例如 INTEGER[]
    • JSONJSONB:用於儲存 JSON 格式的數據,其中 JSONB 是二進制格式,查詢速度更快。
    • BYTEA:用於儲存二進制數據,適合用於儲存文件或圖片。

建立資料表示例

我們可以使用以上數據類型來建立一個範例資料表,以了解如何應用不同的數據類型。

1
2
3
4
5
6
7
8
9
CREATE TABLE 客戶 (
    客戶ID SERIAL PRIMARY KEY,
    姓名 VARCHAR(100) NOT NULL,
    電話 CHAR(10),
    電子郵件 VARCHAR(255),
    註冊日期 DATE DEFAULT CURRENT_DATE,
    帳戶餘額 NUMERIC(10, 2) DEFAULT 0.00,
    是否活躍 BOOLEAN DEFAULT TRUE
);

在這個範例中:

  • 客戶ID 使用 SERIAL 生成自動遞增的唯一 ID。
  • 姓名 欄位使用 VARCHAR(100) 來儲存最多 100 字的名字。
  • 帳戶餘額 使用了 NUMERIC(10, 2),適合用於高精度的貨幣值。
  • 註冊日期 使用 DATE,並設定預設值為當天的日期。

本日總結

今天我們介紹了 PostgreSQL 中的基本數據類型,並通過範例說明了這些數據類型的使用方法。掌握數據類型選擇對於資料庫設計至關重要。明天我們將進一步學習資料表的基本操作,包括如何創建、修改和刪除資料表。

本文章以 CC BY 4.0 授權