附录: 数据库数据类型

数值类型
TINYINT
整数(1 byte)
1 byte
-128 ~ 127
0 ~ 255(无符号)
SMALLINT
整数(2 bytes)
2 bytes
-32768 ~ 32767
0 ~ 65535(无符号)
MEDIUMINT
整数(3 bytes)
3 bytes
-8388608 ~ 8388607
0 ~ 16777215(无符号)
INT
INTEGER
整数(4 bytes)
4 bytes
-2147483648 ~ 2147483647
0 ~ 4294967295(无符号)
BIGINT
SERIAL
整数(8 bytes)
8 bytes
-9223372036854775808 ~ 9223372036854775807
0 ~ 18446744073709551615(无符号)
SERIAL的别名:BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
FLOAT
单精度浮点数
4 bytes
FLOAT(p)
单精度浮点数
4 bytes 或 8 bytes
0 <= p <= 23,单精度4字节
24 <= p <= 53,双精度8字节
FLOAT 和 DOUBLE 都是近似值,容易出现数据偏差,不推荐使用
DOUBLE
REAL
双精度浮点数
8 bytes
DECIMAL(M,D)
NUMERIC(M,D)
可选精度的精确数字
可变
M是表示有效数字的精度。 M的范围是 1-65。如果M省略,默认值为 10。
D是表示小数点后的位数。 D的范围是 0-30。如果D省略,默认值为 0。
BIT(M)
位值类型
(M+7)/8 bytes
1 <= M <= 64, 如果 M 省略,则默认为 1
BOOL
BOOLEAN
TINYINT(1)
布尔值
日期类型
YEAR[(4)]
年份类型
1 byte
1901 ~ 2155
DATE
日期类型
3 bytes
1000-01-01 ~ 9999-12-31
TIME[(fsp)]
时间类型
3 bytes + 小数秒(0 ~ 3 bytes)
-838:59:59.000000 ~ 838:59:59.000000
0 <= fsp <= 6
小数秒精度占用: [ 0:占用 0 个字节;1 ~ 2:占用 1 个字节; 3 ~ 4:占用 2 个字节;5 ~ 6:占用 3 个字节 ]
TIME、TIME(0) 占用 3 bytes(固定 3 bytes)
TIME(1)、TIME(2) 占用 4 bytes(固定 3 bytes + 小数秒 1 bytes)
TIME(3)、TIME(4) 占用 5 bytes(固定 3 bytes + 小数秒 2 bytes)
TIME(5)、TIME(6) 占用 6 bytes(固定 3 bytes + 小数秒 3 bytes)
DATETIME[(fsp)]
日期时间类型
5 bytes + 小数秒(0 ~ 3 bytes)
0 <= fsp <= 6,默认为 0
MySQL 5.6.4版本前占用 8 字节,MySQL 5.64版本后占用 5 bytes + 小数秒
小数秒精度占用: [ 0:占用 0 个字节;1 ~ 2:占用 1 个字节; 3 ~ 4:占用 2 个字节;5 ~ 6:占用 3 个字节 ]
TIMESTAMP[(fsp)]
时间戳类型
4 bytes + 小数秒(0 ~ 3 bytes)
'1970-01-01 00:00:01.000000'UTC ~ '2038-01-19 03:14:07.999999'UTC
0 <= fsp <= 6,默认为 0
TIMESTAMP存储的是自 '1970-01-01 00:00:00'UTC 以来的秒数
字符串类型
CHAR(M)
定长字符串
M bytes
0 ~ 255 bytes
M * w <= M <= 255,其中 w 为每个字符占用的字节数(gbk中每个字符占用2字节)
BINARY(M)
定长二进制数据(字节数组)
M bytes
0 ~ 255 bytes
0 <= M <= 255,默认为 1
VARCHAR(M)
变长字符串
如果 0 <= L <= 255,则占用 L + 1 个字节;如果 L >= 255,则占用 L + 2 个字符(L为字符串占用字节数)
0 <= L <= 65535 bytes(L为字符串占用字节数)
VARBINARY(M)
变长二进制数据
TINYBLOB
TINYTEXT
文本类型
L + 1 个字节(L为字符串占用字节数,L < 2^8)
0 ~ 256 bytes
BLOB
TEXT
文本类型
L + 2 个字节(L为字符串占用字节数,L < 2^16)
2 ~ 65536 bytes
MEDIUMBLOB
MEDIUMTEXT
文本类型
L + 3 个字节(L为字符串占用字节数,L < 2^24)
3 ~ 16777216 bytes
LONGBLOB
LONGTEXT
文本类型
L + 4 个字节(L为字符串占用字节数,L < 2^32)
4 ~ 4294967296 bytes
ENUM('value1', 'value2', ...)
枚举类型
1 或 2 个字节,取决于枚举值的数量(最多 65,535 个值)
SET('value1', 'value2', ...)
Set类型
1、2、3、4 或 8 个字节,取决于集合成员的数量(最多 64 个成员)
其它类型
JSON
JSON类型
推广
共 0 条评论

快来抢沙发...

  • 0
  • 10 / page
    Go to
福利社
打赏
设置