SQL-92 定義多種數值類型,是資料庫數值處理的基礎。不同資料庫實作精度、截斷規則不同,資料遷移時極易損失精度,開發前務必釐清平台差異。
精確數值類型
- NUMERIC(p, s) / DECIMAL(p, s):精確十進制,總位數 p,小數位數 s。DECIMAL 小數位數下限為 s,上限由廠商定。
- INTEGER(p) / INT:精確整數,二進制或十進制視實作而定,標度固定 0,廠商定義最大/最小精度。
- SMALLINT(p):精確小整數,精度上限 ≤ INTEGER。
近似數值類型
- FLOAT(p):指數形式,二進制精度 p,截斷規則由廠商定。
- REAL:單精度浮點數,預設精度 < DOUBLE PRECISION。
- DOUBLE PRECISION:雙精度浮點數,預設精度 > REAL。
關鍵提醒
所有數值類型間可相互比較、指派,結果通常保留最大精度。但跨平台(如 Oracle ↔ SQL Server)移植時,同名類型長度不同會導致截斷或數值變更,必須詳閱文件並測試。