MySQL - Tipi di dati
La definizione corretta dei campi in una tabella è importante per l'ottimizzazione complessiva del database. Dovresti usare solo il tipo e la dimensione del campo che devi veramente usare. Ad esempio, non definire un campo largo 10 caratteri, se sai che utilizzerai solo 2 caratteri. Questi tipi di campi (o colonne) sono anche indicati come tipi di dati, dopotype of data immagazzinerete in quei campi.
MySQL utilizza molti diversi tipi di dati suddivisi in tre categorie:
- Numeric
- Data e ora
- Tipi di stringa.
Vediamoli ora in dettaglio.
Tipi di dati numerici
MySQL utilizza tutti i tipi di dati numerici ANSI SQL standard, quindi se si arriva a MySQL da un sistema di database diverso, queste definizioni vi sembreranno familiari.
Il seguente elenco mostra i tipi di dati numerici comuni e le loro descrizioni:
INT- Un numero intero di dimensioni normali che può essere firmato o non firmato. Se firmato, l'intervallo consentito è compreso tra -2147483648 e 2147483647. Se non firmato, l'intervallo consentito è compreso tra 0 e 4294967295. È possibile specificare una larghezza massima di 11 cifre.
TINYINT- Un numero intero molto piccolo che può essere firmato o non firmato. Se firmato, l'intervallo consentito è compreso tra -128 e 127. Se non firmato, l'intervallo consentito è compreso tra 0 e 255. È possibile specificare una larghezza fino a 4 cifre.
SMALLINT- Un piccolo numero intero che può essere firmato o non firmato. Se firmato, l'intervallo consentito è compreso tra -32768 e 32767. Se non firmato, l'intervallo consentito è compreso tra 0 e 65535. È possibile specificare una larghezza fino a 5 cifre.
MEDIUMINT- Un numero intero di medie dimensioni che può essere firmato o non firmato. Se firmato, l'intervallo consentito è compreso tra -8388608 e 8388607. Se non firmato, l'intervallo consentito è compreso tra 0 e 16777215. È possibile specificare una larghezza fino a 9 cifre.
BIGINT- Un numero intero grande che può essere firmato o non firmato. Se firmato, l'intervallo consentito va da -9223372036854775808 a 9223372036854775807. Se non firmato, l'intervallo consentito è compreso tra 0 e 18446744073709551615. È possibile specificare una larghezza fino a 20 cifre.
FLOAT(M,D)- Un numero in virgola mobile che non può essere annullato. È possibile definire la lunghezza del display (M) e il numero di decimali (D). Questo non è necessario e verrà impostato automaticamente su 10,2, dove 2 è il numero di decimali e 10 è il numero totale di cifre (compresi i decimali). La precisione decimale può arrivare a 24 posizioni per un FLOAT.
DOUBLE(M,D)- Un numero a virgola mobile a doppia precisione che non può essere deselezionato. È possibile definire la lunghezza del display (M) e il numero di decimali (D). Questo non è richiesto e il valore predefinito sarà 16,4, dove 4 è il numero di decimali. La precisione decimale può arrivare a 53 posizioni per un DOPPIO. REAL è sinonimo di DOPPIO.
DECIMAL(M,D)- Un numero a virgola mobile decompresso che non può essere rimosso. Nei decimali decompressi, ogni decimale corrisponde a un byte. È necessario definire la lunghezza del display (M) e il numero di decimali (D). NUMERIC è sinonimo di DECIMAL.
Tipi di data e ora
I tipi di dati di data e ora di MySQL sono i seguenti:
DATE- Una data nel formato AAAA-MM-GG, tra 1000-01-01 e 9999-12-31. Ad esempio, 30 dicembre ° 1973 sarebbe stato archiviato come 1973/12/30.
DATETIME- Una combinazione di data e ora nel formato AAAA-MM-GG HH: MM: SS, tra 1000-01-01 00:00:00 e 9999-12-31 23:59:59. Ad esempio, 3:30 del pomeriggio del 30 dicembre ° 1973 potrebbero essere memorizzati come 1973/12/30 15:30:00.
TIMESTAMP- Un timestamp tra la mezzanotte, 1 gennaio st 1970 e qualche volta nel 2037. Questo appare come il formato DATETIME precedente, solo senza i trattini tra i numeri; 3:30 del pomeriggio del 30 dicembre ° 1973 potrebbero essere memorizzati come 19.731,230153 miliardi (AAAAMMGGHHMMSS).
TIME - Memorizza l'ora in un formato HH: MM: SS.
YEAR(M)- Memorizza un anno in un formato a 2 o 4 cifre. Se la lunghezza è specificata come 2 (ad esempio YEAR (2)), YEAR può essere compresa tra 1970 e 2069 (da 70 a 69). Se la lunghezza è specificata come 4, YEAR può essere compreso tra 1901 e 2155. La lunghezza predefinita è 4.
Tipi di stringa
Sebbene i tipi numerico e di data siano divertenti, la maggior parte dei dati che memorizzerai sarà in un formato stringa. Questo elenco descrive i tipi di dati di stringa comuni in MySQL.
CHAR(M)- Una stringa di lunghezza fissa compresa tra 1 e 255 caratteri (ad esempio CHAR (5)), riempita a destra con spazi fino alla lunghezza specificata quando memorizzata. Non è necessario definire una lunghezza, ma il valore predefinito è 1.
VARCHAR(M)- Una stringa di lunghezza variabile compresa tra 1 e 255 caratteri. Ad esempio, VARCHAR (25). È necessario definire una lunghezza durante la creazione di un campo VARCHAR.
BLOB or TEXT- Un campo con una lunghezza massima di 65535 caratteri. I BLOB sono "oggetti binari di grandi dimensioni" e vengono utilizzati per archiviare grandi quantità di dati binari, come immagini o altri tipi di file. I campi definiti come TESTO contengono anche grandi quantità di dati. La differenza tra i due è che gli ordinamenti e i confronti sui dati memorizzati sonocase sensitive su BLOB e sono not case sensitivenei campi TEXT. Non si specifica una lunghezza con BLOB o TEXT.
TINYBLOB or TINYTEXT- Una colonna BLOB o TEXT con una lunghezza massima di 255 caratteri. Non si specifica una lunghezza con TINYBLOB o TINYTEXT.
MEDIUMBLOB or MEDIUMTEXT- Una colonna BLOB o TEXT con una lunghezza massima di 16777215 caratteri. Non si specifica una lunghezza con MEDIUMBLOB o MEDIUMTEXT.
LONGBLOB or LONGTEXT- Una colonna BLOB o TEXT con una lunghezza massima di 4294967295 caratteri. Non si specifica una lunghezza con LONGBLOB o LONGTEXT.
ENUM- Un'enumerazione, che è un termine di fantasia per la lista. Quando si definisce un ENUM, si crea un elenco di elementi da cui è necessario selezionare il valore (o può essere NULL). Ad esempio, se desideri che il tuo campo contenga "A" o "B" o "C", definiresti ENUM come ENUM ('A', 'B', 'C') e solo quei valori (o NULL) potrebbe mai popolare quel campo.
Nel prossimo capitolo, discuteremo come creare tabelle in MySQL.