DB2 內建類型分五大族 + 一特殊類型:
| 類型 | 別名 | 長度 | 精度/範圍 | 備註 |
|---|---|---|---|---|
| SMALLINT | INT2 | 2 位元組 | -32,768 ~ 32,767 | 5 位數字精度 |
| INTEGER | INT, INT4 | 4 位元組 | -2,147,483,648 ~ 2,147,483,647 | 10 位精度 |
| BIGINT | INT8 | 8 位元組 | -9.22E18 ~ 9.22E18 | 19 位精度 |
| DECIMAL(p,s) | DEC, NUMERIC, NUM | 壓縮 BCD | p≤31, s≤p, 範圍 -10^31+1 ~ 10^31-1 | 隱含小數點、精確財務計算首選 |
| REAL | FLOAT(24) | 4 位元組 (32 位) | ±1.175E-37 ~ ±3.402E+38 | 單精度浮點、近似值 |
| DOUBLE | DOUBLE PRECISION, FLOAT(53) | 8 位元組 (64 位) | ±2.225E-307 ~ ±1.797E+308 | 雙精度浮點、近似值 |
所有數值帶符號,精度指除符號外位數。
| 類型 | 最大長度 | 用途 |
|---|---|---|
| CHAR(n) | 254 位元組 | 定長、代碼、標識 |
| VARCHAR(n) | 32,672 位元組 | 變長通用文本 |
| LONG VARCHAR | 32,700 位元組 | 舊版長文本,建議改 CLOB |
| CLOB(n[K|M|G]) | 2,147,483,647 位元組 (2GB) | 大文本、文檔、日誌 |
CLOB 單位:K=1024, M=1048576, G=1073741824。支援 SBCS/MBCS 混合編碼。
| 類型 | 最大長度 (雙位元組字符數) | 用途 |
|---|---|---|
| GRAPHIC(n) | 127 | 定長雙位元組 (中日韓) |
| VARGRAPHIC(n) | 16,336 | 變長雙位元組 |
| LONG VARGRAPHIC | 16,350 | 舊版長雙位元組 |
| DBCLOB(n[K|M|G]) | 1,073,741,823 字符 (1GB 字符) | 大型雙位元組文本 |
長度單位為雙位元組字符數,非位元組數。DBCLOB 專為 DBCS 數據設計。
| 類型 | 最大長度 | 用途 |
|---|---|---|
| BLOB(n[K|M|G]) | 2,147,483,647 位元組 (2GB) | 圖片、音訊、視訊、序列化物件、非結構化二進制 |
單位同 CLOB。不進行字符集轉換,純位元組流儲存。
| 類型 | 組成 | 範圍/格式 | 長度 |
|---|---|---|---|
| DATE | 年(0001-9999)、月(1-12)、日(1-n) | YYYY-MM-DD | 10 位元組 |
| TIME | 時(0-24)、分(0-59)、秒(0-59) | HH:MM:SS (24:00:00 合法) | 8 位元組 |
| TIMESTAMP | 年、月、日、時、分、秒、微秒(0-999999) | YYYY-MM-DD-HH.MM.SS.ffffff | 26 位元組 |
非字串非數值,支援特定算術 (如 DATE + 5 DAYS) 與字串轉換 (CHAR())。
yyyy-mm-dd-hh.mm.ss.ffffff,各段前導零可省略,微秒可截斷/省略 (尾零補齊)| 業務需求 | 推薦類型 | 避坑提醒 |
|---|---|---|
| 整數 ID/計數器 | BIGINT (未來擴充) | INTEGER 易溢出 |
| 金額/匯率/精確小數 | DECIMAL(p,s) | 絕禁 FLOAT/REAL/DOUBLE |
| 科學計算/測量近似值 | DOUBLE | REAL 精度不足 |
| 短代碼/標籤 | CHAR/VARCHAR | CHAR 省空間但需補齊 |
| 長文本/文章/JSON | CLOB | LONG VARCHAR 已棄用 |
| 中日韓純文本 | VARGRAPHIC/DBCLOB | 節省空間、排序正確 |
| 圖片/文件二進制 | BLOB | 勿存路徑,存內容 |
| 業務日期/時間點 | DATE/TIMESTAMP | 勿用字串存日期 |
| 外部文件引用+完整性 | DATALINK | 需檔案系統協同 |
精準選型 = 存儲效率 + 查詢效能 + 數據正確性 三贏。