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

MySQL 數據類型深度解析:數值、字符串、日期時間、NULL 值全維度詳解

     編輯:MySQL 綜合教學

MySQL 數據類型深度解析:數值、字符串、日期時間、NULL 值全維度詳解

系統梳理 MySQL 列類型體系:數值類型(整數/浮點/定點)、字符串類型(定長/可變長/二進制/文本/枚舉/集合)、日期時間類型、NULL 語義,附存儲需求、範圍、選型建議。

一、數值類型

1. 整數類型

類型存儲有符號範圍無符號範圍
TINYINT1B-128~1270~255
SMALLINT2B-32768~327670~65535
MEDIUMINT3B-8388608~83886070~16777215
INT4B-2147483648~21474836470~4294967295
BIGINT8B-9.22e18~9.22e180~1.84e19

屬性:UNSIGNED(禁負、翻倍正數)、ZEROFILL(前導零填充)、AUTO_INCREMENT(自增、配合主鍵/唯一鍵)。

2. 浮點/定點類型

類型存儲精度範圍
FLOAT4B~7位±1.17E-38 ~ ±3.40E+38
DOUBLE8B~15位±2.22E-308 ~ ±1.79E+308
DECIMAL(M,D)M+2B精確D位依賴M,D

金額必用 DECIMAL,避免浮點誤差。

二、字符串類型

1. 定長/可變長

類型最大長度存儲特點
CHAR(M)255BM字節定長,右補空格,檢索去空格
VARCHAR(M)65535BL+1/2字節可變長,最常用

2. 二進制/文本大對象

類型最大長度存儲備註
TINYBLOB/TEXT255BL+1B
BLOB/TEXT64KBL+2B
MEDIUMBLOB/TEXT16MBL+3B
LONGBLOB/TEXT4GBL+4B

差異:BLOB 二進制、區分大小寫排序;TEXT 非二進制、不區分大小寫。BLOB/TEXT 無默認值、不可全長索引、臨時表落盤。

3. 枚舉與集合

類型成員數存儲用法
ENUM655351-2B單選,內部按索引存儲
SET641-8B多選,位掩碼存儲

三、日期時間類型

類型存儲範圍零值特點
DATE3B1000-01-01 ~ 9999-12-310000-00-00標準日期
TIME3B-838:59:59 ~ 838:59:5900:00:00可存時長
DATETIME8B1000-01-01 00:00:00 ~ 9999-12-31 23:59:590000-00-00 00:00:00無時區
TIMESTAMP4B1970-01-01 08:00:01 ~ 2038-01-19 11:14:070000-00-00 00:00:00**帶時區**,寫NULL自動取當前時間
YEAR1B1901 ~ 21550000

TIMESTAMP 顯示格式受 M 影響(TIMESTAMP(14) 完整、TIMESTAMP(8) 只日期等)。

四、NULL 值語義

  • 非類型值:表示「未知/缺失/不適用」,非空字符串、非零數字。
  • 運算傳播:任何與 NULL 運算結果為 NULL。
  • 統計忽略:COUNT(col) 不計 NULL,COUNT(*) 計行數。
  • 索引:可索引 NULL 值(InnoDB/MyISAM 均支持)。

五、列類型屬性總結

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
屬性適用類型作用
UNSIGNED數值禁負、擴大正數範圍
ZEROFILL數值前導零填充顯示
AUTO_INCREMENT整數自增主鍵
BINARYCHAR/VARCHAR二進制比較(區分大小寫)
CHARACTER SET字符串指定列字符集
COLLATE字符串指定列校對規則
DEFAULT除 BLOB/TEXT默認值
NOT NULL所有禁止 NULL