MySQL中默认INT类型与显式指定SIGNED/UNSIGNED的INT有差异吗?
MySQL INT类型属性相关问题解答
1. INT显式指定UNSIGNED和不指定属性的区别
- 取值范围差异:默认不指定属性的INT为有符号类型,取值范围是
-2147483648 ~ 2147483647;UNSIGNED修饰的INT为无符号类型,取值范围是0 ~ 4294967295 - 存储行为差异:默认有符号INT支持存储负整数,UNSIGNED INT不允许存储负数值,若写入负数会根据SQL_MODE配置触发报错或值截断
- 存储空间一致:两种类型都占用4字节存储空间,没有差异
2. 两种建表声明是否存在差异
你提到的两种建表语句:
CREATE TABLE table1 ( column1 INT ); CREATE TABLE table2 ( column2 INT SIGNED );
二者完全一致,没有任何差异。SIGNED是MySQL所有整数类型的默认属性,不显式声明时会默认启用该属性。两种声明方式定义的字段,在取值范围、存储规则、占用空间上完全相同。
内容的提问来源于stack exchange,提问作者Payel Senapati
相关产品推荐
相关产品推荐

