我是数据库编程的新手,我有一个非常基本的问题:
在我用于在我的数据库中创建表的PHPMyAdmin GUI中,当“type”(即.atatatype)列具有数据类型时,它是什么意思,之后括号中的内容。 例如: int(20),bigint(30).....
我理解int和bigint类型意味着使用的字节数,因此意味着可以存储的值的范围。但括号中的值是什么意思?
(20)和(30)代表什么......这对...有什么影响......
很抱歉,如果Q是基本的,我正在尝试理解数据库......
非常感谢
答案 0 :(得分:12)
基本上这是显示宽度。
我已经找到了对这个概念的非常好的解释here is所以决定不自己描述它并让你自己从原始来源阅读它。
与为字符串数据类型指定max-length的方式相同(例如 VARCHAR(5 )=最多5个字符),数字数据类型单元格可以指定“显示长度” (例如: INT(5))。
有一种常见的误解,即在INT列上指定显示长度将限制该列的范围。例如,通常认为将列定义为 INT(1 < / strong>)会将列的无符号范围减小到0 - 9,而 INT(2 )会将列的无符号范围减小到0 - 99.实际情况并非如此。 INT 数据列始终具有可行的无符号范围0 - 4294967295,或者有符号范围-2147483648至2147483647,无论指定的显示宽度如何,是否为1( INT( 1))或20( INT(20))。
答案 1 :(得分:0)
括号中的值是字段的大小或长度。 [编辑打击]如果设置为2,则uint字段只能包含0到99之间的值。[/ strike]您可以自己设置此值,因此如果您希望您的值不超过此限制,则可以节省一些内存。与varchar有关。
这是另一个关于varchar大小的线程:What are the optimum varchar sizes for MySQL?
答案 2 :(得分:0)
链接到解释它的mysql doc http://dev.mysql.com/doc/refman/5.7/en/numeric-type-attributes.html