it-swarm.it

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

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

30
BenV

n int e un smallint hanno dimensioni diverse e di conseguenza intervalli. Il (5) È smallint(5) o int(5) si chiama "Attributo del tipo numerico" 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 INT con una larghezza di visualizzazione di quattro cifre. Questa larghezza di visualizzazione facoltativa può essere utilizzata dalle applicazioni per visualizzare valori interi con una larghezza inferiore alla larghezza specificata per la colonna riempiendoli a sinistra di spazi. (Cioè, questa larghezza è presente nei metadati restituiti con set di risultati. Se viene 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, viene recuperato un valore di 5 Come 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

42
Derek Downey