四大類型中數值型種類最多、約束最複雜、跨平台移植精度損失風險最高。Oracle/SQL Server 同名類型長度常不同,導致資料截斷/數值變更。
1234.56 → Precision=6, Scale=2 → NUMERIC(6,2)| 類型 | 語法 | 特性 |
|---|---|---|
| NUMERIC | NUMERIC(p,s) | 精確數值、十進制捨入、總長度=p(+1 若 s>0)、小數位數符合 s |
| DECIMAL / DEC | DECIMAL(p,s) | 精確數值、十進制、總長度=p(+1 若 s>0)、小數位數≥s (上限由廠商定) |
| INTEGER / INT | INTEGER(p) | 精確整數、二/十進制 (視位元數)、Scale=0、廠商定義最大/最小精度 |
| SMALLINT | SMALLINT(p) | 精確整數、同 INT 位數處理、Scale=0、最大精度≤INT |
| 類型 | 語法 | 特性 |
|---|---|---|
| FLOAT | FLOAT(p) | 近似數值、指數形式 (如 1.23e-45)、二進制精度、廠商定義最大精度 |
| REAL | REAL | 近似數值、二進制精度、最大精度由廠商定、預設精度 < DOUBLE PRECISION |
| DOUBLE PRECISION | DOUBLE PRECISION | 近似數值、二進制精度、最大精度由廠商定、預設精度 > REAL |
各廠商在標準基礎上建立實際類型:同名類型 (INT, REAL) 或特定用途新類型。下一篇將討論 Datetime/Interval。