DB2 內置數據類型豐富,主要分為五大類:數值型、字符串型、圖形字符串型、二進制字符串型、日期時間型,另含特殊類型 DATALINK。本文系統梳理各類型定義、範圍、存儲特性及適用場景,供建表選型參考。
所有數值型均帶符號,精度指除符號外的位數。
| 類型 | 別名 | 存儲 | 精度/範圍 | 說明 |
|---|---|---|---|---|
| SMALLINT | 小整型 | 2 字節 | 5 位 -32,768 ~ 32,767 | 節省空間的小整數 |
| INTEGER / INT | 大整型 | 4 字節 | 10 位 -2,147,483,648 ~ 2,147,483,647 | 最常用整數類型 |
| BIGINT | 巨整型 | 8 字節 | 19 位 -9.22E18 ~ 9.22E18 | 超大整數場景 |
| DECIMAL(p,s) / NUMERIC(p,s) | 小數型 | 壓縮 BCD | 最大精度 31 位 -10^31+1 ~ 10^31-1 | 精確定點數,p=精度,s=小數位 |
| REAL | 單精度浮點 | 4 字節 | 32 位近似值 ±1.175E-37 ~ ±3.402E+38 | 單精度科學計算 |
| DOUBLE / FLOAT | 雙精度浮點 | 8 字節 | 64 位近似值 ±2.225E-307 ~ ±1.79769E+308 | 高精度科學計算 |
字節序列,分定長與變長:
雙字節字符序列,適合中日韓等多字節字符集:
| 類型 | 組成 | 範圍 | 長度 |
|---|---|---|---|
| DATE | 年、月、日 | 0001-01-01 ~ 9999-12-31 | 10 字節 |
| TIME | 時、分、秒 | 00:00:00 ~ 24:00:00 | 8 字節 |
| TIMESTAMP | 年、月、日、時、分、秒、微秒 | 0001-01-01-00.00.00.000000 ~ 9999-12-31-24.00.00.000000 | 26 字節 |
三者均可進行特定算術運算,並兼容特定格式字符串表示(如 YYYY-MM-DD、HH:MM:SS、YYYY-MM-DD-HH.MM.SS.NNNNNN),前導零可省略。
包含對數據庫外部文件的邏輯引用,實現數據庫與文件系統的關聯管理。
選型建議: 整數優先用
INTEGER;金額等精確計算必用DECIMAL;長文本用CLOB;二進制媒體用BLOB;多語言雙字節字符用GRAPHIC/VARGRAPHIC;時間點精確到秒用TIMESTAMP。