我正在尝试进入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)
感谢您的帮助!
答案 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是最大显示宽度等等。