INT (5) vs SMALLINT (5): numeri tra parentesi dopo il tipo numerico


29

Nelle definizioni delle tabelle MySQL esiste una differenza tra INT(5)e SMALLINT(5)? O rappresentano entrambi le stesse dimensioni?

Risposte:


41

An inte a smallinthanno dimensioni diverse e di conseguenza gamme. Il (5)è smallint(5)o int(5)è chiamato "Numerico Tipo di attributo" e rappresenta la "larghezza di visualizzazione" del campo,

MySQL supporta un'estensione per specificare facoltativamente la larghezza di visualizzazione dei tipi di dati interi tra parentesi seguendo la parola chiave di base per il tipo. Ad esempio, INT(4)specifica un INTcon una larghezza di visualizzazione di quattro cifre. Questa larghezza di visualizzazione facoltativa può essere utilizzata dalle applicazioni per visualizzare valori interi di larghezza inferiore alla larghezza specificata per la colonna riempiendoli a sinistra di spazi. (Cioè, questa larghezza è presente nei metadati restituiti con set di risultati. Sia che venga utilizzato o meno dipende dall'applicazione.)

Se utilizzato insieme all'attributo facoltativo (non standard) ZEROFILL, il riempimento predefinito degli spazi viene sostituito con zeri. Ad esempio, per una colonna dichiarata come INT(4) ZEROFILL, 5viene recuperato un valore di 0005.

Questa è una "estensione" di MySQL e zerofill è una "estensione" su un'estensione.

Per il metodo sano di controllare la visualizzazione di un tipo numerico, non usare Attributi di tipo numerico e invece usare

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.