Mysql 中定义字段后的数据的用处:
int(1)和int(10)似乎没有什么差别,都表示最大四个字节的整型数据。
例如定义一个名字为test的表:
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`id` int(1) NOT NULL,
`ids` int(10) default NULL,
`c` char(1) default NULL,
`cs` varchar(2) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `test` (
`id` int(1) NOT NULL,
`ids` int(10) default NULL,
`c` char(1) default NULL,
`cs` varchar(2) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `test` VALUES ('1', '1', 'a', 'aa');
INSERT INTO `test` VALUES ('10', '10', 'a', 'aa');
INSERT INTO `test` VALUES ('2147483647', '2147483647', 'a', 'aa');
-- Records
-- ----------------------------
INSERT INTO `test` VALUES ('1', '1', 'a', 'aa');
INSERT INTO `test` VALUES ('10', '10', 'a', 'aa');
INSERT INTO `test` VALUES ('2147483647', '2147483647', 'a', 'aa');
可以发现:
无论是int(1)还是int(10)都最大存取2147483647 (二进制31个1,因为正负取值),可见最大存取4个字节,即int的最大字节数。
varchar(1)最大存取一个字符,varchar(2)最大存取两个字符。