附录: 数据库数据类型

数值类型
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
福利社
打赏
设置