Database MySQL – Tipi di dato numerici e date

mysql-logo

In questa sessione relativa al Database MySQL vediamo quali sono i tipi di dato utilizzabili. MySQL consente di utilizzare nelle proprie colonne diversi tipi di dato, compresi dati binari; in ogni caso sono solo tre i tipi di dato principali:

  • Numeri
  • Testo
  • Data e orario

La scelta del tipo di dato più appropriato è fondamentale per avere la massima versatilità e performance del database MySQL. La scelta del tipo di dato più giusto consente ricerche più efficaci e più veloci; consente anche un notevole risparmio di memoria, quando il database MySQL incomincia a diventare grande.

Database MySQL – Tipi numerici

Tra i tipi di dato numerici, oltre al tipo intero, MySQL mette a disposizione due tipi di dato a virgola mobile, semplice e a doppia precisione. Tutti i tipi interi possono essere SIGNED (positivi e negativi) o UNSIGNED (solo positivi). Possono avere anche la caratteristica di AUTO_INCREMENT.

  • TINYINT: numeri molto piccoli; adatto per le età. In realtà, dovremmo avere utilizzato questo tipo di dati per età e numero di figli dei dipendenti. Può memorizzare numeri compresi tra 0 e 255 se viene applicata la clausola UNSIGNED, altrimenti l’intervallo è compreso tra -128 e 127. Occupano un byte.
  • SMALLINT: numeri piccoli. Se UNSIGNED possono avere un valore tra 0 e 65.535, altrimenti tra -32.768 e 32.767. Occupano due byte.
  • MEDIUMINT: numeri medi. Senza segno hanno un valore compreso tra 0 e 16.777.215; se SIGNED vanno da -8.388.608 a 8.388.607. Occupano tre byte.
  • INT: numeri interi. Il tipo di dato che dovrebbe essere considerato di default. Come UNSIGNED vanno da 0 a 4.294.967.295, con segno da -2.147.683.648 a 2.147.683.647. Occupano quattro byte.
  • BIGINT: numeri grandi, in realtà enormi. Utilizzabili per memorizzare numeri molto grandi. Quelli senza segno vanno da 0 a 18.446.744.073.709.551.615, i SIGNED vanno da -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Occupano otto byte.
  • FLOAT: numeri in virgola mobile (singola precisione), usati per rappresentare numeri non interi. Memorizzano un’approssimazione del numero. Dato il numero enorme di cifre che può avere l’intervallo possibile viene rappresentato come potenze del 10 (10 elevato a…). Possono rappresentare numeri che vanno da -3.402823466E+38 a -1.175494351E-38 e da 1.175494351E-38 a 3.402823466E+38. Occupano quattro byte.
  • DOUBLE: numeri in virgola mobile a doppia precisione, simili ai FLOAT ma utilizzando il doppio dei byte possono rappresentare dei numeri più grandi o più precisi. Possono rappresentare numeri che vanno da -1.7976931348623157E+308 a -2.2250738585072014E-308, 0, e da 2.2250738585072014E-308 a 1.7976931348623157E+308. Occupano otto byte.
  • DECIMAL: Numeri interi o decimali che vengono rappresentati come stringhe. La possibile rappresentazione è variabile, dipende da come vengono dichiarati. Anche l’occupazione in byte è variabile in base alla dichiarazione.

Database MySQL – Tipi data e orario

Il database MySQL fornisce diversi tipi di dato in grado di memorizzare date e orario. Più che negli altri casi la scelta di un tipo o di un altro dipende dal tipo di utilizzo che si pensa di fare. Diverse sono anche le funzione MySQL in grado di lavorare su questi tipi di dato.

  • DATE: Memorizza una data in formato YYYY-MM-DD (Anno di quattro cifre, mese in due cifre e giorni in due cifre). I valori consentiti vanno da ‘1000-01-01’ a ‘9999-12-31’.
  • DATETIME: Memorizzano data in formato YYYY-MM-DD e orario in formato HH:MM:SS (ore in due cifre, minuti in due cifre e secondi in due cifre). I valori consentiti vanno da ‘1000-01-01 00:00:00’ a ‘9999-12-31 23:59:59’. Se necessario possono memorizzare anche frazioni di secondo, arrivando al microsecondo (6 cifre), in tal caso il formato di memorizzazione diventa: YYYY-MM-DD HH:MM:SS[.frazione]. In quest’ultimo caso i valori consentiti vanno da ‘1000-01-01 00:00:00.000000’ to ‘9999-12-31 23:59:59.999999’.
  • TIMESTAMP: simile a DATETIME, servono per memorizzare un ora del sistema. I valori consentiti vanno da ‘1970-01-01 00:00:01.000000’ a ‘2038-01-19 03:14:07.999999’.
  • TIME: Memorizza solamente un orario, ignorando la data. Il formato di memorizzazione è ‘HHH:MM:SS’ (ore, minuti, secondi). Possono rappresentare frazioni di secondo arrivando alla sesta cifra decimale. Il valore memorizzabile va da ‘-838:59:59.000000’ a ‘838:59:59.000000’.
  • ANNO(4): Memorizza l’anno in quattro cifre. Può rappresentare anni che vanno dal 1901 al 2155.
  • ANNO(2): Memorizza l’anno in due cifre. Essendo l’anno memorizzato in due cifre, la rappresentazione possibile è piuttosto limitata. Visto che con due cifre la rappresentazione possibile va da 0 a 99, si usa la seguente convenzione: da ’70’ a ’99’ sono gli anni che vanno dal 1970 al 1999; da ‘0’ a ’69’ sono gli anni che vanno dal 2000 al 2069. Se possibile evitare questo tipo di dato e usare ANNO(4), l’anno in quattro cifre.

Tags:

About the Author

Post a Reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Top