Summario: in questo tutorial, imparerai a conoscere MySQL INT
o il tipo di dati interi e come usarlo nella progettazione della tua tabella di database. Inoltre, ti mostreremo come usare la larghezza di visualizzazione e gli attributi ZEROFILL di una colonna intera.
Introduzione al tipo MySQL INT
In MySQL, INT
sta per l’intero che è un numero intero. Un numero intero può essere scritto senza una componente frazionaria, per esempio, 1, 100, 4, -10, e non può essere 1,2, 5/3, ecc. Un intero può essere zero, positivo e negativo.
MySQL supporta tutti i tipi di interi standard SQL INTEGER
o INT
e SMALLINT
. Inoltre, MySQL fornisce TINYINT
MEDIUMINT
e BIGINT
come estensioni allo standard SQL.
Il tipo di dati INT
di MySQL può essere firmato e senza segno. La tabella seguente illustra le caratteristiche di ogni tipo di intero, compresa la memorizzazione in byte, il valore minimo e il valore massimo.
Type | Storage | Minimum Value | Maximum Value |
---|---|---|---|
(Bytes) | (Signed/Unsigned) | (Signed/Unsigned) | |
TINYINT | 1 | -128 | 127 |
0 | 255 | ||
SMALLINT | 2 | -32768 | 32767 |
0 | 65535 | ||
MEDIUMINT | 3 | -8388608 | 8388607 |
0 | 16777215 | ||
INT | 4 | -2147483648 | 2147483647 |
0 | 4294967295 | ||
BIGINT | 8 | .9223372036854775808 | 9223372036854775807 |
0 | 18446744073709551615 |
Esempi sul tipo di dati MySQL INT
Guardiamo alcuni esempi di utilizzo del tipo di dati interi.
A) Uso di MySQL INT per un esempio di colonna
Perché il tipo intero rappresenta numeri esatti, di solito lo si usa come chiave primaria di una tabella. Inoltre, la colonna INT
può avere un attributo AUTO_INCREMENT
.
Quando si inserisce un valore NULL
o 0 nella colonna INT AUTO_INCREMENT
, il valore della colonna viene impostato al prossimo valore di sequenza. Notate che il valore di sequenza inizia con 1.
Quando inserite un valore, che non è NULL
o zero, nella colonna AUTO_INCREMENT
, la colonna accetta il valore. Inoltre, la sequenza viene reimpostata al valore successivo al valore inserito.
Prima di tutto, create una nuova tabella chiamata items
con una colonna intera come chiave primaria:
Code language: SQL (Structured Query Language) (sql)
Potete usare sia INT
che INTEGER
nella dichiarazione CREATE TABLE
di cui sopra perché sono intercambiabili. Ogni volta che inserisci una nuova riga nella tabella items
, il valore della colonna item_id
viene aumentato di 1.
Poi, la seguente istruzione INSERT
inserisce tre righe nella tabella items
.
Code language: SQL (Structured Query Language) (sql)
Poi, interroga i dati della tabella items
usando la seguente istruzione SELECT
:
Code language: SQL (Structured Query Language) (sql)
Dopo di che, inserisci una nuova riga il cui valore della colonna item_id
è specificato esplicitamente.
Code language: SQL (Structured Query Language) (sql)
Siccome il valore corrente della colonna item_id
è 10, la sequenza viene resettata a 11. Se inserisci una nuova riga, la colonna AUTO_INCREMENT
userà 11 come prossimo valore.
Code language: SQL (Structured Query Language) (sql)
Infine, interroga di nuovo i dati della tabella items
per vedere il risultato.
Code language: SQL (Structured Query Language) (sql)
Nota che a partire da MySQL 5.1, la colonna AUTO_INCREMENT
accetta solo valori positivi e non permette valori negativi.
B) Usando MySQL INT UNSIGNED esempio
Primo, creare una tabella chiamata classes
che ha la colonna total_member
con il tipo di dati intero senza segno:
Code language: SQL (Structured Query Language) (sql)
Secondo, inserire una nuova riga nella tabella classes
:
Code language: SQL (Structured Query Language) (sql)
Ha funzionato come previsto.
Terzo, tentare di inserire un valore negativo nella colonna total_member
:
Code language: SQL (Structured Query Language) (sql)
MySQL ha emesso il seguente errore:
Code language: SQL (Structured Query Language) (sql)
MySQL INT con l’attributo display width
MySQL fornisce un’estensione che permette di specificare la larghezza di visualizzazione insieme al tipo di dato INT
. La larghezza di visualizzazione è racchiusa tra parentesi dopo la parola chiave INT
, ad esempio INT(5)
specifica un INT
con una larghezza di visualizzazione di cinque cifre.
È importante notare che l’attributo di larghezza di visualizzazione non controlla gli intervalli di valori che la colonna può memorizzare. L’attributo display width è tipicamente usato dalle applicazioni per formattare i valori interi. MySQL include l’attributo display width come metadata del set di risultati restituito.
MySQL INT con l’attributo ZEROFILL
In aggiunta all’attributo display width, MySQL fornisce un attributo non standard ZEROFILL
. In questo caso, MySQL sostituisce gli spazi con lo zero. Considera il seguente esempio.
Primo, crea una tabella chiamata zerofill_tests
:
Code language: SQL (Structured Query Language) (sql)
Secondo, inserisci una nuova riga nella tabella zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
Terzo, interroga i dati dalla tabella zerofill_tests
.
Code language: SQL (Structured Query Language) (sql)
La colonnav1
ha una larghezza di visualizzazione 2 che includeZEROFILL.
Il suo valore è 1 quindi, vedi01
nell’output. MySQL sostituisce il primo spazio con 0.
La colonna v2 ha una visualizzazione con 3 incluso ZEROFILL
. Il suo valore è 6 quindi, vedete 00
come zeri iniziali.
La colonna v3 ha la larghezza di visualizzazione 5 con ZEROFILL
, mentre il suo valore è 9, quindi MySQL imbottiglia 0000
all’inizio del numero nell’output.
Nota che se usi l’attributo ZEROFILL
per una colonna intera, MySQL aggiungerà automaticamente un attributo UNSIGNED
alla colonna.
In questo tutorial, hai imparato come usare il tipo di dati INT
di MySQL per progettare tabelle di database.
- Questo tutorial è stato utile?
- SìNo