MySQL常用数据类型
- 整数类型
- 实数类型
- 字符类型
- 日期类型
整数类型
- TINYINT
- SMALLINT
- MEDIUMINT
- INT
- BIGINT
占用空间
占用字节 | 有符号位表示范围 | 无符号位表示范围 | |
---|---|---|---|
TINYINT | 1字节 | -128~127 | 0~255 |
SMALLINT | 2字节 | -32768~32767 | 0~65535 |
MEDIUMINT | 3字节 | -8388608~8388607 | 0~16777215 |
INT | 4字节 | -2147483648~2147483647 | 0~4294967295 |
BIGINT | 8字节 | -9223372036854775808 ~9223372036854775807 |
0~18446744073709551615 |
1字节 = 8bit
有符号位范围 -2(n-1) ~ 2(n-1)-1
无符号位范围 0~2(n)-1
n为比特位数
实验步骤
CREATE TABLE `ts_integer` (
`f_id` bigint(20) PRIMARY KEY AUTO_INCREMENT,
`f_type` tinyint,
`f_flag` tinyint(1),
`f_num` smallint(5) unsigned ZEROFILL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into ts_integer values(1, 1, 1, 1);
insert into ts_integer values(9223372036854775807, 127, 127, 65535);
#这个会提示主键冲突9223372036854775807自增1后比最大值大,保存9223372036854775807
insert into ts_integer(f_type,f_flag,f_num) values(127, 127, 65535);
show warnings;
select i.*, length(i.f_flag) as len_flag from