Quando si crea una tabella in un database, dovrebbe avere sia un nome che un tipo di dati. Il tipo di dati di una colonna definisce i valori che contiene la colonna, come intero, denaro, binario, carattere, data e ora. Pertanto, è compito dello sviluppatore determinare quali tipi di dati verranno archiviati in ciascuna colonna durante la creazione di database e tabelle.
In parole povere, i tipi di dati sono linee guida che aiutano SQL a capire quale tipo di dati è richiesto all'interno di una colonna. È anche efficiente nell'identificare come SQL interagisce con i dati archiviati.
Un punto da notare è che i tipi di dati potrebbero contenere nomi diversi in database diversi e, nei casi in cui i nomi sono gli stessi, altri aspetti e dettagli come le dimensioni differiranno. Pertanto, si consiglia di fare sempre riferimento alla documentazione ogni volta che si verificano casi simili.
Le seguenti caratteristiche possono identificare i tipi di dati in MySQL:
- I valori dei tipi di dati che possono essere indicizzati e quelli che non possono essere indicizzati
- Il tipo di valori che rappresentano
- Lo spazio che occupano, indipendentemente dal fatto che i valori siano di lunghezza variabile o fissa
- Come MySQL si confronta con i diversi valori di tipi di dati specifici
Prima di approfondire e trattare i tipi di dati MySQL, è essenziale apprendere e comprendere le convenzioni utilizzate dalle descrizioni dei tipi di dati, come evidenziato di seguito:
- (M ):per i tipi interi, indica la larghezza massima che il tipo di dati può visualizzare.
:indica il numero totale di cifre che possono essere memorizzate per i tipi a virgola fissa e a virgola mobile.
:Per i tipi di stringa, mostra la lunghezza massima
Nota:M il valore massimo consentito dipende dal tipo di dati
• (D ):vale solo per i tipi a virgola fissa e a virgola mobile. Indica la scala (il numero di cifre che seguono il punto decimale). Il valore massimo possibile è 10, mentre non dovrebbe essere più significativo di M -2
• Le parentesi quadre ([e]) mostrano le parti opzionali del tipo di definizione.
• f sp: questa convenzione si applica ai tipi timestamp, DateTime e time. Rappresenta la precisione dei secondi frazionari (il numero di cifre che seguono il punto decimale per i secondi frazionari). Il dato fsp il valore deve essere compreso tra 0 e 6. Il valore 0 significa che non ci sono parti frazionarie presenti nel valore dato. Tuttavia, nei casi in cui il valore viene omesso, la precisione viene indicata come 0.
In MySQL, esistono tre categorie principali di tipi di dati che contengono sottocategorie. I tipi di dati principali sono:
- Tipi di dati di stringa
- Tipi di dati di data e ora.
- Tipi di dati numerici
Esistono altri tipi di dati supportati da MySQL, come i tipi di dati spaziali e i tipi di dati JSON.
Questo articolo copre in modo completo tutti i tipi di dati sopra menzionati. Quindi, per avere una chiara comprensione dei tipi di dati, attenersi a questo articolo.
Tipi di dati stringa
I tipi di dati stringa vengono utilizzati principalmente per contenere dati binari e testo normale come immagini e file. Inoltre, MySQL ha la capacità di confrontare e cercare valori di stringa in base al modello di corrispondenza, come espressioni regolari e operatori.
Di seguito è riportata un'illustrazione dettagliata di tutti i tipi di dati stringa supportati da MySQL:
CHAR ( dimensione ): Questa è la lunghezza fissa di una stringa. Può contenere lettere, caratteri speciali o numeri. Il parametro dimensione denota la lunghezza della colonna in caratteri e può variare da 0 a 255. La dimensione predefinita è 1.
VARCHAR ( dimensione ): Questa è la lunghezza variabile di una stringa. Contiene numeri, caratteri speciali o lettere. Il parametro dimensione mostra la lunghezza massima in caratteri della colonna e può variare da 0 a 65535.
BINARIO ( dimensione ): Questi sono uguali a CHAR(), memorizzando solo stringhe di byte binari. Il parametro dimensione specifica la lunghezza della colonna in byte. Il valore predefinito è 1
VARBINARIO ( dimensione ): Questo è uguale a VARCHAR(), solo che memorizza stringhe di byte binari. Il parametro dimensione specifica la lunghezza massima della colonna in byte.
TINYTEXT: Contiene stringhe che contengono una lunghezza massima di 255 caratteri.
TESTO ( dimensione ): Contiene stringhe che contengono una lunghezza massima di 65.535 byte.
BLOB ( dimensione ): Per oggetti binari di grandi dimensioni (BLOB). Possono contenere fino a 65.535 byte di dati.
TINYBLOB: Per oggetti binari di grandi dimensioni (BLOB). Contiene una lunghezza massima di 255 byte.
LONGLOB: Per oggetti binari di grandi dimensioni (BLOB). Possono contenere fino a 4.294.967.295 byte di dati.
TESTO LUNGO: Contiene stringhe che contengono una lunghezza massima di 4.294.967.295 caratteri.
TESTO MEDIUM: Contiene stringhe che contengono una lunghezza massima di 16.777.215 caratteri.
MEDIUMBLOB: Per oggetti binari di grandi dimensioni (BLOB). Possono contenere fino a 16.777.215 byte di dati.
IMPOSTA ( val1, val2, val3, … ): Questo è un oggetto stringa che contiene più di un valore (stringhe che contengono 0 o più valori). Sono scelti da un elenco di possibili valori proprio come ENUM. Tuttavia, in un elenco SET, puoi elencare solo fino a 64 valori.
ENUM ( val1, val2, val3, … ): Questo è un oggetto stringa che può contenere solo un valore scelto da un elenco di tutti i valori possibili. In un elenco ENUM, puoi elencare fino a 65535 valori. Se viene inserito un valore non presente nell'elenco, il valore inserito sarà vuoto. Inoltre, è essenziale notare che i valori sono ordinati in base all'ordine in cui sono stati inseriti dall'utente.
Tipi di dati di data e ora
I tipi di dati di data e ora specificano i valori temporali come DateTime, timestamp, anno, ora e data. Ciascuno dei tipi temporali citati ha valori che includono zero. Ogni volta che viene inserito un valore non valido, MySQL non può rappresentarlo. Pertanto, si opta per uno zero.
Di seguito è riportata un'illustrazione completa dei tipi di dati di data e ora supportati da MySQL:
DATA: Il formato della data standard è rispettivamente anni, mesi e giorni (AAAA-MM-GG) e l'intervallo supportato va da "01-1000-01" a "31-12-9999".
DATA ORA ( fsp ): Questa è la combinazione di data e ora. Il formato standard, in questo caso, è rispettivamente anni, mesi, giorni, ore, minuti e secondi (AAAA-MM-GG hh:mm:ss)
Nota: L'aggiunta di un DEFAULT e ON UPDATE in una colonna è essenziale per avviare l'inizializzazione automatica e aggiorna l'ora e la data correnti.
TIMESTAMP ( fsp ): Dall'epoca Unix, i valori del timestamp vengono memorizzati come numero di secondi come ('1970-01-01 00;00;00' UTC). Il formato standard è rispettivamente anni, mesi, giorni, ore, minuti e secondi (AAAA-MM-GG hh:mm:ss) mentre l'intervallo supportato è compreso tra '('1970-01-01 00;00;01' UTC a ('2038-01-09 03;14;07' UTC. DEFAULT_CURRENT_TIMESTAMP e ON UPDATE CURRENT_TIMESTAMP sono vitali per l'inizializzazione e l'aggiornamento automatico della data e dell'ora correnti.
ORA ( fsp ): Il formato dell'ora standard supportato è rispettivamente ore, minuti e secondi (hh:mm:ss) e l'intervallo supportato è compreso tra "-838:59:59" e "838:59:59".
ANNO: Un anno è rappresentato in un formato a quattro cifre:i valori consentiti nel formato a quattro cifre vanno da 1902 a 2155 e 0000.
Nota: L'ultima versione di MySQL (8.0) non supporta il formato a due cifre dell'anno.
Tipi di dati numerici
I tipi di dati numerici includono tutti i tipi di dati numerici esatti come intero, decimale e numerico. Contiene anche i tipi di dati numerici approssimativi come float, double, double precision e real. I tipi di dati numerici memorizzano i valori di bit poiché supportano i tipi di dati BIT. Di solito, i tipi di dati numerici in MySQL sono divisi in due categorie:tipi di dati con segno e tipi di dati senza segno; tuttavia, questa è un'eccezione ai tipi di dati bit.
Di seguito è riportata un'illustrazione dettagliata contenente tutti i tipi di dati numerici supportati da MySQL e la loro descrizione:
BIT ( dimensione ): Questo è un tipo di valore bit per cui il numero di bit per valore è indicato in termini di dimensione . Il parametro dimensione ha la capacità di contenere valori da 1 a 64 e il suo valore predefinito per la dimensione è 1.
TINYINT ( dimensione ): Questo è un numero intero molto piccolo il cui intervallo con segno è compreso tra -128 e 127 mentre il suo intervallo senza segno è compreso tra 0 e 255. Il parametro dimensione denota la larghezza massima da visualizzare, che è circa 255.
BOOLEANO: È uguale a BOOL
BOOL: In un BOOL, i valori diversi da zero sono considerati veri. Allo stesso tempo, i valori Zero sono considerati falsi.
INT ( dimensione ): Questo è un numero intero medio il cui intervallo con segno è compreso tra -2147483648 e 2147483647, mentre l'intervallo senza segno è compreso tra 0 e 4294967295. Il parametro size specifica la larghezza massima da visualizzare, che è circa 255.
MEDIUMINT ( dimensione ): Questo è anche un numero intero medio il cui intervallo con segno è compreso tra -32768 e 32767 mentre il suo intervallo senza segno è compreso tra 0 e 65535. Il parametro size specifica la larghezza massima da visualizzare, che è circa 255.
PICCOLA ( dimensione ): Questo è un piccolo numero intero il cui intervallo con segno è compreso tra -32768 e 32767, mentre l'intervallo senza segno è compreso tra 0 e 16777215. La dimensione parametro, in questo caso, serve per specificare la larghezza massima di visualizzazione, il cui range è di circa 255.
GALLEGGIANTE ( taglia, d ): È un numero a virgola mobile il cui numero totale di cifre è indicato come dimensione. Il d parametro aiuta a specificare il numero di cifre dopo la virgola decimale.
Nota: questo parametro è stato deprecato in MySQL versione 8.0.17. Pertanto, non verrà riprodotto nelle versioni future di MySQL.
INTERO ( dimensione ): Questo equivale a un INT (dimensione ).
GALLEGGIANTE( p ): È un numero in virgola mobile. Il P viene utilizzato per determinare se verrà utilizzato un FLOAT o un DOUBLE in un tipo di dati risultante. Quando il P -value varia da 0 a 24, i dati sono noti come FLOAT (). Mentre quando il P -value varia da 25 a 53, quindi il tipo di dati cambia in DOUBLE ().
DIC ( taglia, d ): Questo è l'equivalente di un DECIMAL (size, d )
DOPPIA ( taglia, d ): Questo indica una dimensione standard numero a virgola mobile il cui numero totale di cifre è dato dalla dimensione. Il d parametro aiuta a specificare il numero di cifre dopo la virgola decimale.
DECIMA ( taglia, d ): È un numero esatto in virgola fissa il cui numero totale di cifre è specificato in termini di dimensione . Il d parametro specifica le cifre del numero dopo la virgola decimale. La dimensione massima il numero è 65, mentre il d il numero massimo è 30. Pertanto, il valore predefinito per d è 0, mentre il valore predefinito per dimensione è 10.
Nota: tutti i tipi numerici contengono opzioni extra; ZEROFILL e UNSIGNED. Se viene aggiunta l'opzione UNSIGNED, MySQL non consentirà i valori negativi nella colonna. D'altra parte, se viene aggiunta l'opzione ZEROFILL, MySQL aggiungerà automaticamente l'attributo UNSIGNED a detta colonna.
Altri tipi di dati
Tipo di dati booleano
Il tipo intero più piccolo TINYINT (1), viene utilizzato per rappresentare valori booleani in MySQL poiché MySQL non contiene un tipo di dati BOOL o BOOLEAN integrato. Pertanto, quando si lavora con BOOL e BOOLEAN, è necessario associarli a TINYINT (1).
Tipo di dati spaziali
MySQL fornisce supporto per diversi tipi di dati spaziali che hanno vari tipi di valori geografici e geometrici, come indicato di seguito:
GEOMETRIA: Questo è un aggregato o un punto che può contenere il valore spaziale di qualsiasi tipo purché abbia una posizione.
POLIGONO: Questa è una superficie piana rappresentata da una geometria a più lati. Può essere definito da zero o solo da un confine esterno e più interni.
MULTILINESTRING: Questa è una geometria multi-curva che contiene una raccolta di valori LINESTRING.
MULTIPOLYGON: Questo è un oggetto multi-superficie rappresentato da un insieme di diversi elementi poligonali, ed è una geometria bidimensionale
PUNTO: Questo è un punto o una coppia che contiene le coordinate X e Y. Si può dire che sia un punto in una geometria che rappresenta una singola posizione.
COLLEZIONE GEOMETRIA: Questa è una raccolta di valori GEOMETRIA
LINESTRING: Questa è una curva che contiene uno o più valori di punti. Nei casi in cui una stringa di linea contiene solo due punti, significa che rappresenta una linea.
MULTIPUNTO: Questa è una raccolta di valori POINT per cui il punto non può essere ordinato o collegato in alcun modo.
Tipo di dati JSON
MYSQL ha supportato il tipo di dati JSON nativo sin dall'inizio della versione 5.7.8, che ha consentito l'archiviazione e la gestione dei documenti JSON in modo rapido ed efficace. Inoltre, il tipo di dati JSON nativo è responsabile della fornitura di un formato di archiviazione ottimale e della convalida automatica dei documenti JSON.
Conclusione
Questo articolo ha trattato in modo completo tutti gli aspetti relativi ai tipi di dati MySQL che ti aiuteranno a capire quali tipi di dati dovrebbero essere usati e come dovrebbero essere usati. Riteniamo che l'articolo aiuterà anche a migliorare la tua conoscenza di MySQL.