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


29

Czy w definicjach tabel MySQL jest coś pomiędzy INT(5)i SMALLINT(5)? A może oba reprezentują ten sam rozmiar?

Odpowiedzi:


41

An inti smallintmają różne rozmiary, a co za tym idzie zakresy. (5)To smallint(5)czy int(5)nazywa się „typ liczbowy atrybut” i oznacza „szerokość wyświetlania” w tej dziedzinie,

MySQL obsługuje rozszerzenie do opcjonalnego określania szerokości wyświetlania całkowitych typów danych w nawiasach następujących po podstawowym słowie kluczowym dla tego typu. Na przykład INT(4)określa INTszerokość z czterema cyframi. Ta opcjonalna szerokość wyświetlania może być używana 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 zwróconych z zestawami wyników. To, czy zostanie użyta, czy nie, zależy od aplikacji).

W połączeniu z opcjonalnym (niestandardowym) atrybutem ZEROFILLdomyślne wypełnienie spacji jest zastępowane zerami. Na przykład dla kolumny zadeklarowanej jako INT(4) ZEROFILLwartość 5jest pobierana jako 0005.

Jest to „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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.