首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 資料類型完整速查表:整數、浮點、日期時間、字串、Decimal、Boolean 範圍與選擇指南

     編輯:MySQL 綜合教學

MySQL 資料類型完整速查表:整數、浮點、日期時間、字串、Decimal、Boolean 範圍與選擇指南

選對資料類型是效能與儲存空間優化的基石。本文整理 MySQL 所有內建類型的儲存範圍、位元組數、適用場景與避坑提醒,作為建表時的桌邊參考卡。

1. 整數類型(精確數值)

類型位元組有號範圍無號範圍適用場景
TINYINT1-128 ~ 1270 ~ 255布林旗標、極小計數、枚舉替代
SMALLINT2-32,768 ~ 32,7670 ~ 65,535小範圍計數、狀態碼
MEDIUMINT3-8,388,608 ~ 8,388,6070 ~ 16,777,215中等計數、節省空間
INT / INTEGER4-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295通用 ID、計數器、IPv4 (UNSIGNED)
BIGINT8-9.22e18 ~ 9.22e180 ~ 1.84e19巨大 ID、高精度時間戳、雪花算法 ID

提示:INT(4) 的 4 僅為顯示寬度,不影響儲存範圍;非負業務務必加 UNSIGNED。

2. 浮點類型(近似數值)

類型位元組精度說明
FLOAT4~7 位有效數字單精度,科學計算、座標
DOUBLE8~15 位有效數字雙精度,預設浮點類型

避坑:貨幣、精確計算禁用 FLOAT/DOUBLE,改用 DECIMAL。

3. 日期時間類型

類型位元組範圍特性
YEAR11901 ~ 2155僅年份
DATE31000-01-01 ~ 9999-12-31日期
TIME3-838:59:59 ~ 838:59:59時間
DATETIME81000-01-01 00:00:00 ~ 9999-12-31 23:59:59無時區,靜態時間點
TIMESTAMP41970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC含時區自動轉換、預設 CURRENT_TIMESTAMP、ON UPDATE 自動刷新

選擇建議:優先 TIMESTAMP(4 Bytes、自動維護),跨時區應用必選;歷史/未來超出 2038 年用 DATETIME。

4. 字串類型

類型最大長度儲存特性適用場景
CHAR(N)255 字元定長,右側補空格固定長度代碼(MD5、UUID、國籍代碼)
VARCHAR(N)65,535 字元 (共享 64KB)變長,1-2 Bytes 長度前綴通用變長字串
TINYTEXT255 BytesBlob 族,離頁儲存極短文本
TEXT64 KB一般文本
MEDIUMTEXT16 MB長文本
LONGTEXT4 GB超長文本
ENUM65,535 個元素內部存數字 ID固定集合(狀態、類型),建議改 TINYINT
SET64 個元素位圖存儲多選集合,建議改 TINYINT 位運算

5. 精確定點數:DECIMAL(M,D)

  • M:總有效位數(精度),最大 65(MySQL 5.0+)
  • D:小數位數(刻度),0 ≤ D ≤ M,預設 0
  • 儲存:每 9 位數字壓縮為 4 Bytes,餘數對應 1-4 Bytes
  • 適用:貨幣、金融、精確計量(如 DECIMAL(19,4) 滿足大多數幣制)

6. Boolean

  • 實際為 TINYINT(1),1 Byte
  • 值:TRUE (1)、FALSE (0)
  • 建議:直接用 TINYINT UNSIGNED 或 BIT(1),語義更明確

7. 類型選擇決策樹

  1. 整數 → 最小滿足範圍的 TINYINT/SMALLINT/MEDIUMINT/INT/BIGINT + UNSIGNED
  2. 精確小數 → DECIMAL(M,D)
  3. 近似浮點 → DOUBLE(預設)
  4. 日期時間 → TIMESTAMP 優先,超出範圍用 DATETIME
  5. 字串 → 定長 CHAR、變長 VARCHAR、大文本 TEXT 族、二進位 BLOB 族
  6. 枚舉/集合 → 改用 TINYINT + 應用層常數定義

牢記「剛好夠用、優先定長、非負加 UNSIGNED、金額用 DECIMAL」,即可在建表時做出最優類型決策。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved