Tempo di lettura: 3 minuti

mysqlUna volta che hai organizzato la struttura della tabella, il passo successivo è quello di capire il tipo di dati. Ci sono tre tipi principali: testo, numeri e date/ora.
La scelta del tipo è determinata dalle informazioni che possono o non possono essere memorizzate in una cella della tabella.
Utilizzare l’opzione più corretta per ogni colonna è importante in quanto può influenzare le prestazioni complessive del database.

Dati di tipo testo

Tipo Descrizione
CHAR( ) Una dimensione fissa compresa tra 0 e 255 caratteri.
VARCHAR( ) Una dimensione variabile compresa tra 0 e 255 caratteri.
TINYTEXT Una stringa lunga al massimo 255 caratteri.
TEXT Una stringa lunga al massimo 65535 caratteri.
BLOB Una stringa lunga al massimo 65535 caratteri.
MEDIUMTEXT Una stringa lunga al massimo 16777215 caratteri.
MEDIUMBLOB Una stringa lunga al massimo 16777215 caratteri.
LONGTEXT Una stringa lunga al massimo 4294967295 caratteri.
LONGBLOB Una stringa lunga al massimo 4294967295 caratteri.

Le parentesi () permettono di inserire il numero massimo di caratteri ammessi in quel campo.

 VARCHAR(20)

CHAR e VARCHAR sono i tipi più diffusi. CHAR è una stringa di lunghezza fissa ed è principalmente utilizzato quando i dati non variano di lunghezza. VARCHAR è una stringa di lunghezza variabile e viene utilizzato principalmente quando i dati possono variare in lunghezza, senza comunque superare i 255 caratteri.

CHAR può essere elaborato più velocemente dal database perché i campi mantengono la stessa lunghezza. VARCHAR può essere un po’ più lento in quanto viene calcolato ciascun campo nella colonna, ma consente di risparmiare spazio di memoria. Quale usare in ultima analisi, spetta a voi.

Utilizzando sia un CHAR e che VARCHAR nella stessa tabella, MySQL cambia automaticamente il CHAR in VARCHAR per ragioni di compatibilità.

BLOB, acronimo di Binary Large Object, e TEXT sono tipi di campo di lunghezza variabile che memorizzano grandi quantità di dati. Sono simili a una versione più grande di VARCHAR. Questi tipi possono memorizzare una grande quantità di dati, ma sono anche processati molto più lentamente.

Dati di tipo numero

Tipo Descrizione
TINYINT() Da -128 a 127
Da 0 a 255 UNSIGNED.
SMALLINT() Da -32768 a -32767
Da 0 a 65535 UNSIGNED.
MEDIUMINT() Da -8388608 a 8388607
Da 0 a -16777215 UNSIGNED.
INT() Da -2147483648 a 2147483647
Da 0 a -4294967295 UNSIGNED.
BIGINT() Da -9223372036854775808 a 9223372036854775807
Da 0 a -18446744073709551615 UNSIGNED.
FLOAT Un piccolo numero con un punto decimale fluttuante.
DOUBLE( , ) Un grande numero con un punto decimale fluttuante.
DECIMAL( , ) Un DOUBLE memorizzato come stringa, con un punto decimale fisso.

I tipi interi hanno un’opzione in più chiamata UNSIGNED (senza segno). Normalmente, il numero intero va da un valore negativo a un valore positivo. L’utilizzo di una istruzione UNSIGNED sposterà tale intervallo in modo che inizi da zero, invece da un numero negativo.

Dati di tipo data/ora

Tipo Descrizione
DATE YYYY-MM-DD
DATETIME YYYY-MM-DD HH:MM:SS
TIMESTAMP YYYYMMDDHHMMSS
TIME HH:MM:SS

Dati di altri tipi

Tipo Descrizione
ENUM( ) Enumerazione breve, il che significa che ogni colonna può avere uno dei pochi possibili valori specificati.
SET Simile a ENUM, tranne per il fatto che ogni colonna può avere più di uno dei possibili valori specificati.

ENUM è l’abbreviazione di lista enumerata. Questa colonna può memorizzare solo uno dei valori che sono dichiarati nella lista specificata contenuta nelle parentesi ().

ENUM ('y', 'n')

È possibile elencare fino a 65535 valori in un elenco ENUM. Se si inserisce un valore che non è nell’elenco, verrà inserito un valore vuoto.

SET è simile a ENUM eccetto SET può contenere fino a 64 voci di elenco e può memorizzare più di una scelta.