bit: 位字段,用于存储位数据。需要指定位数。
tinyint: 是 MySQL 中最小的整数类型,占用 1 个字节,范围为 -128 到 127 (有符号),0 到 255(无符号)
smallint: 占用 2 个字节,范围为 -32768 到 32767 (有符号),0 到 65535(无符号)
mediumint: 占用 3 个字节,范围为 -8388608 到 8388607 (有符号),0 到 16777215(无符号)
int/integer: 占用 4 个字节,范围为 -2147483648 到 2147483647 (有符号),0 到 4294967295(无符号)
bigint: 占用 8 个字节,范围为 -9223372036854775808 到 9223372036854775807(有符号),0 到 18446744073709551615(无符号)
float: 单精度浮点数,占用 4 个字节,能代表的数值范围比整数类型要大
double: 双精度浮点数,占用 8 个字节,能表示的数值范围更广,精度更高
decimal: 高精度小数,可以保存精确的小数位数,适合于货币、税率等需要精确计算的场景,占用的空间取决于它的精度
numeric: 也是一种高精度小数类型,与 decimal 类似,但在某些数据库系统中有所不同。在 PostgreSQL 中,numeric 也可以保存精确的小数位数,可以指定它的精度和标度
char: 是一种定长字符类型,用于存储固定长度的字符串,如 char(10) 表示最多能存储 10 个字符的字符串。在 MySQL 中,占用空间为定义长度的字节数,如果字符串长度小于定义长度则在右边补空格
varchar: 是一种变长字符类型,用于存储可变长度的字符串,如 varchar(50) 表示最多能存储 50 个字符的字符串。在 MySQL 中,占用存储实际长度和 1 或 2 个字节长度标识符的空间
tinytext: 是一种最长能存储 255 个字符的变长字符串类型,在 MySQL 中实际占用空间不超过 256 个字节
text: 是一种能存储更长字符串的变长字符类型,最长能存储 65535 个字符,在 MySQL 中实际占用空间不超过 2^16-1 个字节
mediumtext: 是一种更长的变长字符类型,最长可存储 16777215 个字符,在 MySQL 中实际占用空间不超过 2^24-1 个字节
longtext: 是一种最长可存储 4294967295 个字符的变长字符类型,在 MySQL 中实际占用空间不超过 2^32-1 个字节
tinyblob: 是一种最长能存储 255 个字节的二进制字符串类型,在 MySQL 中实际占用空间不超过 256 个字节
blob: 可存储更长的二进制字符串类型,最长可达 65535 字节,在 MySQL 中实际占用空间不超过 2^16-1 个字节
mediumblob: 是一种更长的二进制字符串类型,最长可达 16777215 字节,在 MySQL 中实际占用空间不超过 2^24-1 个字节
longblob: 是一种最长可存储 4294967295 字节的二进制字符串类型,在 MySQL 中实际占用空间不超过 2^32-1 个字节
date: 用于存储日期,格式为 YYYY-MM-DD,在 MySQL 中占用 3 个字节
time: 用于存储时间,格式为 HH:MM:SS,在 MySQL 中占用 3 个字节
year: 存储年份,格式为 4 位数,如 1970,在 MySQL 中占用 1 个字节
datetime: 用于存储日期和时间,格式为 YYYY-MM-DD HH:MM:SS,在 MySQL 中占用 8 个字节
timestamp: 同样用于存储日期和时间,但与 datetime 相比有所不同,在 MySQL 中占用 4 个字节
binary: 是一种定长二进制字符串类型,在 MySQL 中占用存储实际长度和 1 或 2 个字节长度标识符的空间
enum: 用于将多个字符值组合在一起,此时该字段只能存储这些字符值中的一个,如 enum('red', 'green', 'blue') 表示该字段只能存储这三个值中的一个,在 MySQL 中占用 1 或 2 个字节,取决于枚举选项的数量
varbinary: 是一种变长二进制字符串类型,在 MySQL 中占用存储实际长度和 1 或 2 个字节长度标识符的空间
set: 用于将多个字符值组合在一起,此时该字段可以存储这些字符值中的多个(可重复),如 set('apple', 'banana', 'cherry') 表示该字段可以存储这三个值中的任意多个,在 MySQL 中占用 1、2、3、4 或 8 个字节,取决于集合选项的数量
real: 是一种单精度浮点数类型,在 MySQL 中占用 4 个字节
geometry:是 MySQL 扩展的一种数据类型,用于存储各种几何数据类型,如点、线段、多边形等,它可以存储三维空间的数据,在 MySQL 中占用约 2^31-1 个字节
geometrycollection:是 geometry 的集合类型,可以存储多个 geometry 对象,在 MySQL 中占用约 2^31-1 个字节
json:是一种存储 JSON 数据的数据类型,在 MySQL 中占用约 2^16-1 个字节
point:是一种二维点类型,在 MySQL 中占用约 16 个字节
multipoint:是 point 的集合类型,可以存储多个 point 对象,在 MySQL 中占用约 2^31-1 个字节
linestring:是一种二维线段类型,在 MySQL 中占用约 32 个字节
multilinestring:是 linestring 的集合类型,可以存储多个 linestring 对象,在 MySQL 中占用约 2^31-1 个字节
polygon:是一种二维多边形类型,在 MySQL 中占用约 48 个字节
multipolygon:是 polygon 的集合类型,可以存储多个 polygon 对象,在 MySQL 中占用约 2^31-1 个字节
以上来自chatgpt3.5