Homepage -> Guida MySQL

Tipi di Dati


Le colonne che possono essere definite in una tabella MySQL possono essere di diversi tipi. Possiamo suddividerle in dati numerici, dati relativi a date e tempo, stringhe e dati geometrici. Prima di tutto però dobbiamo ricordare che tutti i tipi di colonne possono contenere (se dichiarato nella loro definizione) il valore NULL, nel caso in cui il valore della cella in questione abbia un valore nullo.

Per capire meglio i vari tipi ed i loro utilizzo, riprendiamo l'esempio della tabella "Persone":


Tabella "Persone"
*Identificativo Nome Cognome Sesso Data di Nascita
1 Andrea Rossi M 15/12/1982
2 Piero Russo M 01/05/2000
3 Maria Coletti F 23/10/1960


Nel creare tale tabella, dovremmo specificare il tipo di dato associato ad ogni campo; ad esempio, il campo Identificativo sarà un intero, mentre Nome e Cognome saranno dei caratteri. Vediamo quindi i principali tipi di dato:


Tipo
Uso
tinyint rappresenta un numero intero di piccolissime dimensioni nel range da -128 a 127, oppure da 0 a 255.
int rappresenta un numero intero nel range da -2147483648 a 2147483647, oppure da 0 a 4294967295.
smallint rappresenta un numero intero di piccole dimensioni ed il suo range è da -32768 a 32767, oppure da 0 a 65535.
bigint rappresenta un numero intero di grandi dimensioni ed il suo range è da -9223372036854775808 a 9223372036854775807, oppure da 0 to 18446744073709551615.
decimal(n,m) rappresenta un numero decimale.
float(n,m) rappresenta un numero a virgola mobile.
double(n,m) rappresenta un numero a doppia precisione.
char(n) rappresenta n caratteri di dimensioni da 0 a 255.
varchar(n) rappresenta una stringa di n caratteri (es.: ciao ). La lunghezza va da 0 a 65.535 caratteri.
longtext usato per scrivere testi lunghi, maggiori di 150 caratteri, occupanti una dimensione fino a 4 GB.
date usato per scrivere le date, nella forma '2006-01-31' .
time usato per scrivere l'ora (ore, minuti e secondi), da '-838:59:59' a '838:59:59'.
year è un dato di 1 byte, usato per scrivere l'anno nella forma '2001' o '01'.
datetime usato per scrivere data ed ora. Per rappresentare, in un database, un simile dato, si può memorizzare il valore della data e dell'ora (es.: domenica 23/11/1980, 22:12:12 ) anche come varchar; ciò è vantaggioso se si utilizza un linguaggio di programmazione quale il php.


I dati di tipo TINYINT, SMALLINT, MEDIUMINT, INT e BIGINT rappresentano numeri interi composti rispettivamente da 1, 2, 3, 4 e 8 bytes.

La precisione dei numeri in virgola mobile è affidabile fino (circa) alla settima cifra decimale per i FLOAT e alla quindicesima per i DOUBLE. Una colonna FLOAT occupa 4 byte, una DOUBLE ne occupa 8.

INTEGER equivale a INT. DOUBLE PRECISION equivale a DOUBLE. REAL equivale a DOUBLE. FLOAT(p) è un numero in virgola mobile la cui precisione in bit è indicata da p.

BOOL e BOOLEAN equivalgono attualmente a TINYINT(1).

Esistono poi altri tipi di dati; per la descrizione di questi tipi vi rimando alla guida ufficiale.