2012-07-19 68 views
12

INT(1) - 我知道,1不代表1位數字,它只代表客戶端輸出顯示格式。INT(1)在MySQL中代表什麼?

,但是那是什麼意思

我宣佈YEARint(1),我仍然可以看到所有的4個字節。請告訴我INT(1)是什麼意思?

SELECT * FROM TEST_USERDB; 
+----+--------+------+ 
| ID | NAME | YEAR | 
+----+--------+------+ 
| 1 | abcccc | 2012 | 
| 2 | stack | 99 | 
+----+--------+------+ 
+4

http://alexander.kirk.at/2007/08/24/what-does-size-in-intsize-of-mysql-mean/做了解釋它 – 2012-07-19 15:16:49

+0

的一個好工作順便說一句:MySQL有一個[數據類型'YEAR'](http://dev.mysql.com/doc/refman/5.0/en/year.html)... – feeela 2012-07-19 15:18:47

+0

這是由客戶端應用程序如何解釋'顯示寬度'傳遞元數據。該參數不是列的約束值 – a1ex07 2012-07-19 15:19:26

回答

18

一種unsigned int具有4294967295不管最大值如果 INT(1)int(10)並且將使用4個字節的數據。

那麼,括號裏的數字是什麼意思?它幾乎來到 下來顯示,其稱爲顯示寬度。顯示寬度是從1到255的 數字。如果要讓所有整數值「出現」,則可以設置顯示寬度。如果在行上啓用zerofill,則 該字段對於int(1)0000000000對於 int(10)將具有默認值0。

Read more

+1

你的意思是1只在int(1)中有意義,如果我使用自動填充? – chicharito 2012-07-19 15:21:02

+2

當然,只有在使用'UNSIGNED'和'ZEROFILL'的*整數類型*時纔會使用。我可以找到它[這裏]提到(http://everythingmysql.ning.com/profiles/blogs/data-type-confusion-what-is-an)。 – Lion 2012-07-19 15:22:17