整数类型 | 字节 | 范围 |
Tinyint | 1 | 有符号:-128~127 |
无符号:0~255 | ||
Smallint | 2 | 有符号:-32768~32767 |
无符号:0~65535 | ||
Mdeiumint | 3 | 有符号:-8388608~8388607 |
无符号:0~1677215 | ||
Int、integer | 4 | 有符号:-2147483648~2147483647 |
无符号:0-4294967295 | ||
Bigint | 8 | 有符号:-9223372036854775808~9223372036854775807 |
无符号:0~9223372036854775807*2+1 |
特点:
①如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字
②如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值
③如果不设置长度,会有默认的长度
长度代表了显示的最大宽度,如果不够会用0在左边填充,但必须搭配zerofill使用!|
案例:
创建表 tab_int 并设置列t1 为int型(有符号)
CREATE TABLE test (t1 INT(7))
创建表 tab_int 并设置列t1 为int型(无符号)(★SQL SERVER 不支持无符号整形)
CREATE TABLE test (t1 INT(7)) unsigned
创建表 tab_int 并设置列t1 为int型(并且用0填充不够的位数)(★SQL SERVER 不支持无符号整形)
★当使用zerofill 则默认为无符号
CREATE TABLE test (t1 INT(7)) zerofill
insert into test values (123)
select * from test
结果如下: