it-swarm.dev

INT (5) vs SMALLINT (5): liczby w nawiasach po typie numerycznym

Czy w definicjach tabel MySQL występuje różnica między INT(5) a SMALLINT(5)? A może oba reprezentują ten sam rozmiar?

30
BenV

An int i smallint mają różne rozmiary i w związku z tym zakresy.(5) To smallint(5) lub int(5) nazywa się „Atrybut typu liczbowego” i reprezentuje „szerokość wyświetlania” pola,

MySQL obsługuje rozszerzenie opcjonalnego określania szerokości wyświetlania liczb całkowitych typów danych w nawiasach następujących po słowie kluczowym typu dla tego typu. Na przykład INT(4) określa INT o szerokości wyświetlania czterech cyfr. Ta opcjonalna szerokość wyświetlania może być wykorzystywana przez aplikacje do wyświetlania wartości całkowitych o szerokości mniejszej niż szerokość określona dla kolumny, wypełniając je spacjami. (Oznacza to, że ta szerokość jest obecna w metadanych zwracanych z zestawami wyników. To, czy zostanie użyta, czy nie, zależy od aplikacji).

W przypadku użycia w połączeniu z opcjonalnym (niestandardowym) atrybutem ZEROFILL, domyślne wypełnienie spacji jest zastępowane zerami. Na przykład dla kolumny zadeklarowanej jako INT(4) ZEROFILL, wartość 5 Jest pobierana jako 0005.

To jest „rozszerzenie” MySQL, a zerofill to „rozszerzenie” rozszerzenia.

W przypadku rozsądnej metody kontrolowania wyświetlania typu liczbowego nie używaj atrybutów typu liczbowego, a zamiast tego używaj

42
Derek Downey