MySQL的RDBMS支持多種數據類型,以滿足不同場景下的數據存儲需求。以下是一些常見的數據類型:
-
整數類型:
- TINYINT:占用1個字節,取值范圍為-128到127(有符號)或0到255(無符號)。
- SMALLINT:占用2個字節,取值范圍為-32,768到32,767(有符號)或0到65,535(無符號)。
- MEDIUMINT:占用3個字節,取值范圍為-8,388,608到8,388,607(有符號)或0到16,777,215(無符號)。
- INT:占用4個字節,取值范圍為-2,147,483,648到2,147,483,647(有符號)或0到4,294,967,295(無符號)。
- BIGINT:占用8個字節,取值范圍為-9,223,372,036,854,775,808到9,223,372,036,854,775,807(有符號)或0到18,446,744,073,709,551,615(無符號)。
-
實數類型:
- FLOAT:單精度浮點數,占用4個字節。
- DOUBLE:雙精度浮點數,占用8個字節。
- DECIMAL:定點數,可以指定精度和小數位數,分別占用2到16個字節(視精度而定)。
-
字符串類型:
- CHAR:固定長度的字符串,占用長度+1個字節(存儲時包括結束符)。
- VARCHAR:可變長度的字符串,最大長度可達65,535字節,實際占用長度取決于字符串內容。
- TEXT:長文本,最大長度可達65,535字節。
- MEDIUMTEXT:中等長度的文本,最大長度可達16,777,215字節。
- LONGTEXT:超長文本,最大長度可達4,294,967,295字節。
-
日期和時間類型:
- DATE:日期類型,格式為YYYY-MM-DD,占用3個字節。
- TIME:時間類型,格式為HH:MM:SS,占用3個字節(不包括微秒部分,微秒支持從MySQL 5.6.4開始)。
- DATETIME:日期時間類型,格式為YYYY-MM-DD HH:MM:SS,占用8個字節(從MySQL 5.6.4開始支持微秒)。
- TIMESTAMP:時間戳類型,范圍從1970-01-01 00:00:01 UTC到2038-01-19 03:14:07 UTC,占用4個字節(對于MySQL 5.6及更早版本,使用TIMESTAMP時存儲的是UTC時間;從MySQL 5.6.5開始,可以指定時區,存儲本地時間)。
- YEAR:年份類型,僅占用1個字節。
-
二進制數據類型:
- BINARY:固定長度的二進制字符串,與CHAR類型類似但用于二進制數據。
- VARBINARY:可變長度的二進制字符串,與VARCHAR類型類似但用于二進制數據。
- BLOB:二進制大對象,用于存儲二進制數據,最大長度可達65,535字節。
- MEDIUMBLOB:中等長度的二進制大對象,最大長度可達16,777,215字節。
- LONGBLOB:長二進制大對象,最大長度可達4,294,967,295字節。
-
空間類型(MySQL 5.7及更高版本引入):
- GEOMETRY:用于存儲幾何對象。
- POINT:表示二維空間中的點。
- LINESTRING:表示二維空間中的線段。
- POLYGON:表示二維空間中的多邊形。
- GEOMETRYCOLLECTION:表示多個幾何對象的集合。
這些數據類型提供了豐富的選項,以適應各種數據存儲需求。在實際應用中,應根據具體場景選擇合適的數據類型。