2010-11-11 112 views
10

简单的问题。我尝试过在Google上搜索,经过大约6次搜索后,我认为这会更快。什么是SQL Int(N)的大小?

SQL中的整数有多大?

// table creation statement. 
intcolumn INT(N) NOT NULL, 
// more table creation statement. 

INT(N)元素有多大?它的范围是什么?是2^N还是N Bytes? (2^8N)?甚至还有一些我不知道的东西?

回答

12

这取决于数据库。 MySQL有一个extension其中INT(N)表示一个INT,显示宽度为4位十进制数字。这些信息保存在元数据中。 INT本身仍然是4个字节,并且值10000和更大的值可以被存储(并且可能被显示,但这取决于应用程序如何使用结果集)。

+0

嘿,谢谢你的朋友!这是我的问题:) – Michael 2010-11-11 04:05:14

+0

注意这与VARCHAR(n)类型非常不同,其中n在这种情况下是允许的最大存储字符。请参阅{http://stackoverflow.com/questions/5634104/what-is-the-size-of-column-of-int11-in-mysql-in-bytes,http://stackoverflow.com/a/1262249/ 1357094} – cellepo 2016-10-03 19:51:51

-1

这完全取决于您正在使用的数据库引擎。但我相信大多数引擎认为INT/INTEGER类型为32位。大多数引擎会让你指定签名。

实际的N只指定位数。所以一个无符号的INT(3)的范围是0-999。

+1

该数字不表示整数的长度。大整数仍然可以存储在“int(3)”列中 – Luke 2014-09-24 11:01:19