cof*_*tor 24 mysql integer phpmyadmin
我正在使用phpMyAdmin来创建我的表结构.
我可以从MySQL的文档页面上读到有关整数类型的大小限制: MySQL整数类型参考
所以这里是我在创建专栏时感到困惑的地方.
我想在表中创建一个列:tbl_note_categories调用notescounter
我不认为自己会在tbl_notes任何具体的情况下创造成千上万的音符categoryid.但我相信我会为每个categoryid创建数百个音符.
我正在选择:tinyint,smallint,mediumint.根据上面的文档链接,我猜测smallint是我的最佳选择.
所以这是我的困惑.PhpMyAdmin要求指定Length/Values参数.我要确保这个新列(notescounter)是无符号的,给我高达65536.这是否意味着我需要长度/值为(5)?
我猜长度是字符长度,但我不确定.(与varchar比较)

Bil*_*win 49
不,这是一个关于MySQL的常见误解.实际上,"长度"对整数的大小或它可以存储的值的范围没有影响.
TINYINT总是8位,可以存储2 8个不同的值.SMALLINT总是16位,可以存储2 16个不同的值.INT总是32位,可以存储2 32个不同的值.BIGINT总是64位,可以存储2 64个不同的值.还有一个MEDIUMINT,但是在MySQL上工作的工程师告诉我,MEDIUMINT总是在内部被提升为32位INT,因此使用MEDIUMINT实际上没有任何好处.
长度仅用于显示,这仅在您使用该ZEROFILL选项时才有意义.
请参阅我的答案中的示例,在INT(10)和INT(12)之间有什么区别(当应用于我的代码时)?
是的,您要指定长度为5.
在MySQL中,整数类型的"length"属性是可选的.这是一个非标准的MySQL扩展.
当从列声明中省略它时,MySQL提供了一个默认值.对于SMALLINT UNSIGNED,默认值为5.
此值对可以为整数类型存储的值范围没有任何影响.它指定"显示长度",它在结果集元数据中返回,客户端可以选择使用或忽略它.
http://dev.mysql.com/doc/refman/5.5/en/numeric-type-attributes.html