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

MySQL 數據類型詳解:整數、浮點、定點、字符串、日期、枚舉

     編輯:MySQL 綜合教學

MySQL 數據類型詳解:整數、浮點、定點、字符串、日期、枚舉

選擇合適的數據類型是 Schema 設計的基石,影響存儲空間、查詢性能、數據完整性。本文系統梳理 MySQL 所有內建類型。

一、數值類型

1. 整數類型

類型字節有符號範圍無符號範圍用途
TINYINT1-128~1270~255極小整數、布爾標誌
SMALLINT2-32768~327670~65535小整數
MEDIUMINT3-8388608~83886070~16777215中等整數
INT/INTEGER4-2147483648~21474836470~4294967295標準整數、主鍵
BIGINT8-9.22E18~9.22E180~1.84E19極大整數、雪花ID

顯示寬度:INT(4) 僅影響 ZEROFILL 時的左填充,**不限制存儲範圍**。

UNSIGNED:無符號,擴大正數範圍,節省 1 bit 符號位。

ZEROFILL:自動加 UNSIGNED,不足寬度左補 0。

2. 浮點與定點

類型字節精度範圍用途
FLOAT(M,D)4單精度(~7位有效數字)±3.4E38科學計算、近似值
DOUBLE(M,D)8雙精度(~15位)±1.7E308高精度科學計算
DECIMAL(M,D)M+2精確十進制(字符串存儲)取決於 M,D財務金額、精確計算

DECIMAL(10,2) 存 99999999.99,超出四捨五入報錯(非截斷)。

二、字符串類型

類型最大長度特點用途
CHAR(N)255 字符定長,右補空格固定長度代碼、MD5、UUID
VARCHAR(N)65535 字符(共享 64KB 行上限)變長,1-2 字節存長度通用字符串
TINYTEXT255 字節無排序、無默認值短文本
TEXT64KB同上長文本
MEDIUMTEXT16MB同上中等長文本
LONGTEXT4GB同上極大文本
BLOB 系列對應 TEXT 大小二進制,區分大小寫圖片、文件、序列化數據

CHAR vs VARCHAR:頻繁更新定長列用 CHAR 避免碎片;不定長用 VARCHAR 節省空間。

三、日期時間類型

類型字節範圍格式用途
DATE31000-01-01 ~ 9999-12-31YYYY-MM-DD生日、入職日期
TIME3-838:59:59 ~ 838:59:59HH:MM:SS耗時、鬧鐘
YEAR11901 ~ 2155YYYY年份
DATETIME81000-01-01 00:00:00 ~ 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS通用時間戳,無時區
TIMESTAMP41970-01-01 00:00:01 UTC ~ 2038-01-19YYYYMMDDHHMMSS自動更新、跨時區

TIMESTAMP:插入 NULL/不指定 → 自動填充當前時間;受 time_zone 影響。**2038 年問題**需關注,長期項目優先 DATETIME 或 BIGINT 存毫秒數。

四、復合類型

  • ENUM('a','b','c'):單選,內部存數字索引(1~65535),0 為錯誤值(空串)。
  • SET('a','b','c'):多選,位掩碼存儲,最多 64 元素,自動去重。

錯誤值查詢:WHERE enum_col = '' OR enum_col = 0。

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