MySQL数据库数据类型

时间:2011-07-30 20:17:22

标签: mysql database data-structures

我是数据库编程的新手,我有一个非常基本的问题:

在我用于在我的数据库中创建表的PHPMyAdmin GUI中,当“type”(即.atatatype)列具有数据类型时,它是什么意思,之后括号中的内容。 例如: int(20),bigint(30).....

我理解int和bigint类型意味着使用的字节数,因此意味着可以存储的值的范围。但括号中的值是什么意思?

(20)和(30)代表什么......这对...有什么影响......

很抱歉,如果Q是基本的,我正在尝试理解数据库......

非常感谢

3 个答案:

答案 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. 显示宽度不会更改数据类型的存储要求。
  2. 显示宽度不会以任何方式改变实际数据(即:它存储数据的整个值)
  3. 在查询中调用时,无论显示宽度如何,该列都会返回它的完整值(该书直接与上面提到的声明相矛盾)

答案 1 :(得分:0)

括号中的值是字段的大小或长度。 [编辑打击]如果设置为2,则uint字段只能包含0到99之间的值。[/ strike]您可以自己设置此值,因此如果您希望您的值不超过此限制,则可以节省一些内存。与varchar有关。

这是另一个关于varchar大小的线程:What are the optimum varchar sizes for MySQL?

答案 2 :(得分:0)