2012-07-19 22 views
12

INT(1) - Wiem, że 1 nie oznacza jednej cyfry, reprezentuje jedynie format wyświetlania wyjścia klienta.Co oznacza INT (1) w MySQL?

ale co to oznacza

i zadeklarowały YEAR jak int(1), wciąż widzę wszystkie 4 bajty. proszę powiedz mi, co oznacza 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/ robi dobrą robotę wyjaśniając –

+0

BTW: MySQL ma [typ danych 'ROK'] (http://dev.mysql.com/doc/refman/5.0/en/year.html) ... – feeela

+0

To od aplikacji klienta zależy jak interpretować" szerokość wyświetlania " metadane. Parametr nie ogranicza wartości kolumny – a1ex07

Odpowiedz

18

An unsigned int ma wartość max 4294967295 bez względu na to, czy jego INT(1) lub int(10) i użyć 4 bajtów danych.

Co oznacza liczba w nawiasie? Dosyć to przychodzi w dół, aby wyświetlić, nazywa się szerokość wyświetlania. Szerokość wyświetlania to od 1 do 255. Możesz ustawić szerokość wyświetlania, jeśli chcesz, aby wszystkie wartości całkowite były "wyświetlane". Jeśli włączysz zerofill w wierszu, , pole będzie miało domyślną wartość 0 dla int(1) i 0000000000 dla int(10).

Read more

+1

Czy masz na myśli 1 w int (1) ma sens tylko wtedy, gdy używam autouzupełniania? – chicharito

+2

Oczywiście, jest używany tylko, jeśli użyjesz 'UNSIGNED' i' ZEROFILL' z * typem całkowitym *. Mogę go znaleźć [tutaj] (http://everythingmysql.ning.com/profiles/blogs/data-type-confusion-what-is-an). – Lion