MySQL数据类型的问题

时间:2012-02-11 01:28:35

标签: mysql sql phpmyadmin xampp

我正在尝试进入Xampp数据库的几个表有问题。我继续得到“超出列边界”错误(我将其解释为意味着我声明了一个太大的DataType)。我正在使用适合大小的w3schools页面(http://www.w3schools.com/sql/sql_datatypes.asp)。根据网站:

如果声明为无符号,

TINYINT 可以保存0到225之间的数字

如果声明为无符号,

BIGINT 可以保存0到18446744073709551615范围内的数字

DOUBLE 没有列出范围

我正在寻找的是一个例子(我已经浏览了很多网站和一本MySQL书,但没有发现任何内容)以最大的形式宣布这些,或者说明如何宣告这些和类似的dataytypes工作。我目前的理解是:

TINYINT(尺寸)如果签名,则大小可以达到127,而无符号则为225:

tinyint_var TINYINT(127)

tinyint_unsigned_var TINYINT(225) UNSIGNED

BIGINT(尺寸)如果签名或者18446744073709551615为无符号,则大小可以是9223372036854775807

biginT_var BIGINT(9223372036854775807)

bigint_unsigned_var BIGINT(18446744073709551615)

DOUBLE(大小,小数)不确定此澄清的界限是什么。

我在BIGINT上遇到错误:

bigint_var BIGINT(1000000000)

和DOUBLE:

double_var DOUBLE(1000, 2)

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您似乎误解了声明的SQL表示法。这样:

tinyint_var TINYINT(127)

正在尝试声明显示宽度为127位的TINYINT(请参阅http://dev.mysql.com/doc/refman/5.6/en/numeric-type-attributes.html)。正如您所读到的那样,TINYINT只保存最多最多,255的值,其值不能接近127位数,因此显示宽度为不允许使用127位数字。

(同样,对于你的其他例子。)

答案 1 :(得分:0)

TINYINT是一个1字节的值。它的范围是0-255,所以3是最大显示宽度等等。