int(3) to nie jest liczba 3-cyfrowa, tylko INT o wielkości 3 bajtów. Przy danych typu VARCHAR itp. 1 bajt = 1 znak, więc te dwie wartości są sobie równoważne.
Znaczy to tyle, że INT zostanie ucięty do maksymalnego osiągalnego zakresu, jeżeli ten zakres zostanie przekroczony, VARCHAR zostanie ucięty do takiej ilości znaków, jaką zadeklarujesz.
[edit]
Sprawdziłem dokładnie i zdaje się, że nabredziłem trochę jeśli chodzi o INT'a. Z tego co widzę i sprawdziłem wpisując do bazy różne wartości, pole INT ma już swój ustalony rozmiar, więc nie ma znaczenia co wpiszemy do pola 'Długość'. Możemy jedynie wybrać TINY/SMALL/-/MEDIUM/BIG INT
http://dev.mysql.com/doc/refman/5.0/en/sto...quirements.html