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:表示多个几何对象的集合。
这些数据类型提供了丰富的选项,以适应各种数据存储需求。在实际应用中,应根据具体场景选择合适的数据类型。