it-swarm-eu.dev

INT (5) vs. SMALLINT (5): čísla v závorkách za číslicovým typem

V definicích tabulky MySQL je rozdíl mezi INT(5) a SMALLINT(5)? Nebo oba představují stejnou velikost?

30
BenV

int a smallint mají různé velikosti a následně rozsahy.(5) Je smallint(5) nebo int(5) se nazývá "Atribut číselného typu" a představuje "šířku zobrazení" pole,

MySQL podporuje rozšíření pro volitelné určení šířky zobrazení celočíselných datových typů v závorkách následujících za základním klíčovým slovem pro daný typ. Například INT(4) určuje INT se šířkou zobrazení čtyř číslic. Tuto volitelnou šířku zobrazení mohou aplikace použít k zobrazení celočíselných hodnot, jejichž šířka je menší než šířka specifikovaná pro sloupec, přičemž je doleva vyplní mezerami. (To znamená, že tato šířka je přítomna v metadatech vrácených se sadami výsledků. Zda se používá nebo ne, závisí na aplikaci.)

Při použití ve spojení s volitelným (nestandardním) atributem ZEROFILL je výchozí výplň mezer nahrazena nulami. Například pro sloupec deklarovaný jako INT(4) ZEROFILL je hodnota 5 Načtena jako 0005.

Toto je MySQL "rozšíření" a zerofill je "rozšíření" na rozšíření.

Pro rozumný způsob ovládání zobrazení číselného typu nepoužívejte atributy Numeric type a místo toho použijte

42
Derek Downey