mysql data types what are different data types mysql
Scopri i diversi tipi di dati MySQL, ad esempio numerico, stringa, tipo di dati data, JSON, booleano, ecc. Con esempi:
In questo tutorial, impareremo a conoscere diversi tipi di dati supportati da MySQL. I tipi di dati vengono specificati rispetto a ciascuna colonna quando viene creata una tabella e anche durante l'aggiornamento / modifica della tabella per aggiungere una nuova colonna alla tabella esistente
Impareremo i tipi di dati in tre diverse categorie, ovvero tipo di dati numerico, tipi di dati String e tipi di dati Datetime.
Cosa imparerai:
Tipi di dati MySQL
Prerequisiti
Impareremo tutti i tipi di dati con esempi funzionanti in MySQL. Quindi si consiglia di avere MySQL installato per eseguire le query insieme ai dettagli per una migliore comprensione del concetto.
Inoltre, è possibile creare un database di esempio denominato sql_data_types che conterrebbe tutte le tabelle che utilizzeremmo per gli esempi.
create database sql_data_types; use sql_data_types;
Tipi di dati numerici
I tipi di dati numerici possono essere suddivisi in 3 tipi:
- Tipi di dati interi
- Tipi a virgola fissa
- Tipi in virgola mobile
Parliamo di ciascuno di questi:
Tipi di dati interi
Questi tipi di dati supportano numeri interi senza alcuna rappresentazione decimale. Ci sono vari sottotipi come: INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT
INT:
Sintassi:
INT((width)) (UNSIGNED) (ZEROFILL)
Fatti:
Descrizione | Gamma | Memoria | Opzioni |
---|---|---|---|
MEDIUMBLOB | 0-16.777.215 (16 MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
Tipo numerico più comunemente usato. Memorizza numeri interi DEFAULT - Valori senza segno | –2.147.483.648 a 2.147.483.647 | 4 byte | Se utilizzato con l'opzione UNSIGNED - L'intervallo cambia in Da 0 a 4.294.967.295 L'opzione Larghezza può essere utilizzata con ZEROFILL per riempire le voci con zero per valori inferiori alla larghezza |
Esempi:
Creeremo una tabella con 1 colonna con tipo di dati INT e diverse opzioni.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
Output del comando SELECT:
CREATE TABLE numbers_int_options(int_col_with_options INT(4) ZEROFILL ); INSERT into numbers_int_options values(1),(123),(1234),(12345); select * from numbers_int_options;
Output del comando precedente:
Altre varianti di INT:
Sono disponibili più opzioni per INT a seconda dei requisiti specifici. Questi sono in genere utilizzati quando la memoria o lo spazio è un problema, ma per tutti gli scopi pratici, INT è il più utilizzato.
Di seguito sono elencate le diverse varianti del tipo di dati INT disponibili:
Tipo di dati | Gamma | Esempio | Memoria / byte utilizzati |
---|---|---|---|
TINYINT | -128 - 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | uno |
PICCOLO | -32768 - 32767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | Due |
MEDIUMINT | -8388608-8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 3 |
BIGINT | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
Tipi in virgola mobile
I tipi in virgola mobile sono tipi di valore approssimativi e questo dipende dal n. di precisione del punto decimale specificato durante la dichiarazione del tipo di colonna.
Esistono 2 tipi di dati in virgola mobile: FLOAT e DOUBLE che supportano intervalli diversi e consumano memoria / archiviazione.
GALLEGGIANTE E DOPPIO
In base alla nuova sintassi consigliata, è possibile specificare sia la precisione FLOAT che DOUBLE utilizzando solo i tipi di dati FLOAT.
Sintassi:
FLOAT(p)
Qui, p -> precisione
Fatti:
Descrizione | Memoria | Opzioni | Esempi |
---|---|---|---|
FLOAT / DOUBLE rappresenta i numeri in virgola mobile con valori approssimativi Cioè quando MySQL memorizza questi valori, questi valori vengono approssimati alla precisione più vicina in base al tipo dichiarato. La precisione tra 0-23 rappresenta il tipo FLOAT mentre da 24 a 53 genererebbe un doppio tipo che consuma 8 byte | -Precisione - 0-23 => 4 byte -Precisione -24-53 => 8 byte | -Numeri in virgola mobile possono essere FIRMATI e NON FIRMATI -FLOAT è generalmente preciso fino a 7 cifre decimali mentre DOUBLE è preciso fino a 14 punti decimali -C'è anche un altro modo non standard di dichiarare FLOAT e DOUBLE con la specifica dei punti di precisione FLOAT (n, d) - dove n è il totale delle cifre ed è nessun punto decimale | -Crea una tabella con un tipo di dati DOUBLE di colonna CREATE TABLE numbers_double (double_col FLOAT (30)); -Crea una tabella con un tipo di dati DOUBLE di colonna e cifre di precisione come 5 CREATE TABLE numbers_double (double_col DOUBLE (20,5)); |
Vediamo alcuni esempi di recupero dei valori dei doppi tipi:
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
Output dell'istruzione SELECT:
Possiamo vedere qui che i valori vengono memorizzati fino a 5 punti decimali come specificato durante la dichiarazione del tipo di dati.
Tipi a virgola fissa
Questi tipi di dati vengono utilizzati per memorizzare un valore esatto con una precisione determinata. Questi tipi di dati vengono generalmente utilizzati quando è richiesta una memorizzazione di precisione esatta. Per esempio, conti bancari è un requisito per mantenere saldi con 2 punti decimali, abbiamo bisogno che i dati siano archiviati con la massima precisione.
DECIMALE / NUMERICO
Sintassi:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
Fatti:
Descrizione | Gamma | Memoria | Opzioni |
---|---|---|---|
DECIMAL è un tipo di dati numerico in MySQL e memorizza i valori esatti con la precisione specificata. La scala o la larghezza predefinita per il tipo di dati DECIMAL è 10 e la precisione 0. Si noti che i tipi di DECIMALE e NUMERICO possono essere utilizzati in modo intercambiabile. | Dipende dall'intervallo specificato Per esempio DECIMAL (5,2) avrebbe un intervallo compreso tra -999,99 e 999,99 | Formato binario degli utenti MySQL per memorizzare il tipo di dati DECIMAL - Richiede quattro byte per ogni 9 cifre - Quindi per esempio, se abbiamo DECIMAL (14,2) - richiederebbe un totale di - 9 (4) + 2 (1) => 7 byte | -Il valore massimo della larghezza può essere 265 -Il numero di decimali è facoltativo e il valore predefinito è 0 |
Esempio:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
Tipi di dati DateTime
I tipi di dati DateTime in MySQL, come suggerisce il nome, vengono utilizzati per memorizzare i valori di data e ora nel database MySQL.
Ci sono 2 tipi temporali supportati da MySQL - DATETIME e TIMESTAMP
Discutiamo entrambi nelle sezioni seguenti.
APPUNTAMENTO
Sintassi:
DATETIME(n)
Qui, n -> precisione / parte frazionaria della parte dei secondi (la precisione massima supportata è 6).
Fatti:
Descrizione | Gamma | Memoria | Esempi |
---|---|---|---|
Utilizzato per memorizzare la data e l'ora nella colonna MySQL Quando interrogato, i dati della colonna visualizzano datetime nel formato seguente: AAAA-MM-GG HH: MM: SS | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 | 5 byte Quando viene inclusa una parte frazionaria, per ogni 2 cifre frazionarie viene consumato un byte in più. | CREATE table datetime_example(date_col DATETIME); // PRODUZIONE date_col 2020-08-08 22:22:53 |
TIMESTAMP
Sintassi:
TIMESTAMP(n)
Qui, n -> parte di precisione / frazionaria della parte dei secondi (la precisione massima supportata è 6)
Fatti:
Descrizione | Gamma | Memoria | Esempi |
---|---|---|---|
Un altro tipo di dati temporali utilizzato per memorizzare datetime. Questa memorizza l'ora della data come UTC anche con un intervallo limitato tra il 1970 e il 2038 | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 4 byte | CREATE table timestamp_example(ts_col TIMESTAMP); PRODUZIONE ts_col 2020-08-08 22:19:11 |
Tipi di dati stringa
I tipi di dati stringa, come suggerisce il nome, vengono utilizzati per memorizzare stringhe / testi o blob di informazioni testuali nel database. A seconda del caso d'uso, sono disponibili diversi tipi di dati: CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET e BLOB
Comprendiamo ciascuno di questi diversi tipi di dati con esempi.
CHAR E VARCHAR
Entrambi questi tipi vengono utilizzati per memorizzare i valori String nelle colonne in MySQL, ma differiscono nel modo in cui i valori vengono archiviati e recuperati.
CHAR & VARCHAR sono dichiarati con length, che indica la lunghezza massima della stringa che si desidera memorizzare nella colonna.
Sintassi:
CHAR(n) VARCHAR(n)
Qui, n -> max n. di caratteri da memorizzare dalla colonna
Fatti:
genere | Descrizione | Gamma | Esempi |
---|---|---|---|
CHAR Sintassi - CHAR (n) | CHAR può memorizzare una stringa di lunghezza 'n' definita durante la dichiarazione. Se la stringa è inferiore a n caratteri, viene riempita di spazi. | La lunghezza del tipo di dati CHAR può variare da 0 a 255 A seconda della lunghezza, il consumo di memoria varia da 0 a 255 byte. | CREATE TABLE string_example(char_col CHAR(50)); |
VARCHAR Sintassi - VARCHAR (n) | VARCHAR consente di memorizzare stringhe di lunghezza variabile e consumare memoria rispetto alla dimensione effettiva della stringa archiviata anziché al valore massimo specificato durante la definizione della colonna. | La lunghezza del tipo di dati VARCHAR può variare da 0 a 65535 A seconda della lunghezza, il consumo di memoria varia da 0 a 65535 byte. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
BINARIO E VARBINARIO
Simile a CHAR e VARCHAR: questi tipi di dati memorizzano le stringhe ma in formato binario.
La lunghezza dei tipi di dati BINARY e VARBINARY viene misurata in byte rispetto al numero di caratteri nei tipi di dati CHAR e VARCHAR.
Sintassi:
BINARY(n) VARBINARY(n)
Qui, n -> max n. di byte da memorizzare dalla colonna.
Fatti:
genere | Descrizione | Gamma | Esempi |
---|---|---|---|
BINARIO Sintassi - BINARY (n) | BINARY può memorizzare 'n' byte binari. Per valori inferiori a n vengono riempiti a destra con 0 byte e memorizzati | La lunghezza del tipo di dati BINARIO può variare da 0 a 255 A seconda della lunghezza, il consumo di memoria varia da 0 a 255 byte. | CREATE TABLE binary_string(binary_col BINARY(50)); |
VARBINARIA Sintassi - VARBINARY (n) | VARBINARY consente di memorizzare stringhe binarie di lunghezza variabile fino a 'n lunghezza (come specificato nella definizione della colonna) | La lunghezza del tipo di dati VARBINARY può variare da 0 a 65535 A seconda della lunghezza, il consumo di memoria varia da 0 a 65535 byte. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
Comprendiamo il tipo di dati BINARIO in modo più dettagliato. Creeremo una tabella con una colonna ciascuna di tipo di dati binario e varbinary e ispezioneremo il contenuto.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
Ora abbiamo visto l'output come BLOB che significa: B inario L male OB ject - e queste non sono altro che rappresentazioni binarie / esadecimali dei valori String che abbiamo inserito nelle colonne.
Ora esamineremo i valori di queste stringhe binarie e vedremo come vengono archiviate.
Innanzitutto, vediamo il valore presente in 'binary_col' che è di tipo di dati BINARIO.
Capiamo quali sono i valori che vengono archiviati - Se noti i valori rispetto alle prime 5 voci, ad esempio la prima riga e le prime 5 colonne (0-4)
Queste sono solo le rappresentazioni HEX per i caratteri della stringa 'ciao' che abbiamo memorizzato.
Poiché si tratta di un tipo di dati BINARIO di lunghezza 50, possiamo vedere che il resto dei byte è riempito con valori '00' che non sono altro che una rappresentazione in byte per la cifra '0'.
Vedere il valore presente in 'varbinary_col' che è di tipo di dati VARBINARIO.
Qui, per VARBINARY, puoi vedere che i valori sono popolati solo per una lunghezza di 5 che è equivalente alla lunghezza della stringa che abbiamo memorizzato. Non c'è zero padding anche se abbiamo dichiarato una colonna VARBINARIA di lunghezza 50.
BLOB E TESTO
I tipi di dati BLOB e TEXT sono simili ai tipi di dati BINARY e CHAR con la differenza che possono supportare dimensioni maggiori rispetto alle loro controparti di base.
È importante notare che BLOB memorizza i dati come stringhe binarie mentre il tipo di dati TEXT archivia come stringhe non binarie. Inoltre, tutti questi tipi di dati non richiedono di specificare la lunghezza mentre si menziona il tipo di dati. Sono intrinsecamente di lunghezza variabile e consumano memoria solo rispetto a quella memorizzata come valore di colonna effettivo.
I tipi di dati BLOB vengono generalmente utilizzati per memorizzare file come immagini, documenti PDF, ecc. Come stringhe binarie in modo sicuro ed efficiente.
Di seguito sono elencati i dettagli sulle diverse varianti dei tipi di dati BLOB e TEXT:
genere | Gamma | Descrizione | Esempi |
---|---|---|---|
TINYTEXT | 0-255 (255 byte) | L'intervallo è lo stesso di VARCHAR - Utilizzato per memorizzare piccole informazioni come titoli, nomi di autori ecc. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
TESTO | 0-65535 (64 KB) | Questo tipo di dati è sufficiente per memorizzare il testo per un articolo di piccole e medie dimensioni. | CREATE TABLE text_example(text_col TEXT); |
TESTO MEDIO | 0-16.777.215 (16 MB) | Questo tipo di dati può essere sufficiente per memorizzare il testo per un intero libro di testo | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
LONGTEXT | 0 - 4.294.967.295 (4 GB) | LONGTEXT è usato raramente in modo specifico nei casi in cui MEDIUMTEXT non è sufficiente. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
TINYBLOB | 0-255 (255 byte) | Tutti i tipi di dati BLOB vengono utilizzati per memorizzare stringhe binarie e sono generalmente preferiti per archiviare file come immagini, documenti PDF o piccole applicazioni stesse. A seconda dei requisiti di dimensione, è possibile scegliere e utilizzare i diversi tipi di dati BLOB. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
BLOB | 0-65535 (64 KB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 - 4.294.967.295 (4 GB) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
ENUM
ENUM è un tipo di dati String che pre-definisce i valori consentiti che una colonna può avere. È simile ai tipi di dati ENUM che esistono in diversi linguaggi di programmazione come JAVA, C #, ecc.
I valori ENUM, quando archiviati vengono convertiti in numeri rispetto a ciascun valore di colonna, il che si traduce in un notevole risparmio di memoria per le tabelle con un numero elevato di record, ad esempio supponiamo di avere un ENUM con valori: valore1, valore2 e valore3, l'effettiva memoria di memoria sarebbe numerica indici 1,2,3 dietro le quinte.
Sintassi:
ENUM({comma separated enum values})
Query di esempio:
Crea una tabella con 2 colonne per archiviare modelli mobili come String e nomi di società come tipi di dati ENUM con valori: APPLE, SAMSUNG e NOKIA. Vediamo anche le query per recuperare i dati rispetto a un particolare valore ENUM.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA')); INSERT INTO mobile_details values ('IPHONE X', 'APPLE'),('GALAXY M1', 'SAMSUNG'), ('GALAXY M2', 1) ;
Nella query sopra, puoi vedere che abbiamo usato nomi Enum e indici numerici sia durante l'inserimento.
Proviamo a interrogare tutti i dispositivi mobili con il marchio 'SAMSUNG' e a eseguire query sull'indice numerico di SAMSUNG che è '1'.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
L'output di entrambe le query di cui sopra sarà lo stesso indicato di seguito:
IMPOSTATO
Il tipo di dati MySQL SET è un oggetto String che può avere uno o più valori da un intervallo consentito come descritto durante la definizione della colonna. È simile a ENUM ma consente di associare più valori dell'elenco definito come valori di colonna.
Inoltre, i tipi di dati SET vengono memorizzati come indici numerici a partire da 2 ^ 0, ovvero 1,2,4,8 ecc.
Sintassi:
SET({comma separated list of allowed values})
Esempio:
Proviamo a comprendere il tipo di dati SET con esempi. Creeremo una tabella denominata mobile_details con un modello di colonna di tipo String e una colonna denominata OS supportato che è un tipo di dati impostato e contiene un elenco delle versioni del sistema operativo supportate.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
Possiamo vedere che abbiamo elencato i valori del sistema operativo come parte di una colonna con il tipo di dati SET. I valori DECIMALI corrispondenti assegnati a questi sono elencati di seguito:
Ora, se vogliamo assegnare il valore SET, per esempio, 'Android8, android9' a una riga possiamo semplicemente assegnare l'aggiunta dei valori decimali assegnati, ad esempio 12 per avere lo stesso effetto.
Fare riferimento alla query INSERT sopra per l'assegnazione alla riga con il nome del modello 'GALAXYM1'
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
Output del comando precedente:
Possiamo anche interrogare la colonna SET sulla loro rappresentazione decimale - supponiamo di voler interrogare per 'ios9, ios10' - la somma della rappresentazione decimale è 3, quindi possiamo interrogare come:
SELECT * from mobile_details where supported_os=3
Produzione:
Tipi di dati speciali
BOOLEANO
Il tipo di dati booleano MySQL memorizza un valore di colonna come VERO o FALSO. Questo tipo di dati è generalmente adatto per memorizzare i valori dei flag nelle tabelle MySQL. Per esempio - Una tabella Conto bancario con una colonna denominata is_savings_account può memorizzare sia vero che falso.
Il valore BOOLEANO viene memorizzato in MySQL come 1 o 0 rispettivamente per TRUE e FALSE.
Sintassi:
columnName BOOLEAN
Esempio:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
Durante l'inserimento o il recupero dei valori per il tipo di dati BOOLEANO possiamo utilizzare TRUE o FALSE o le loro rappresentazioni numeriche, ad esempio 1 o 0.
select * from account_details where is_savings=1;
Output del comando precedente:
JSON
MySQL supporta JSON nativo come tipo di dati per gli oggetti nella notazione JSON. Rende facile l'archiviazione, l'interrogazione e il recupero di documenti di tipo JSON piuttosto che archiviarli come stringhe di testo o BLOB binari.
Sintassi:
columnName JSON
Fatti:
Definizione | Gamma | Esempi |
---|---|---|
Il tipo di dati JSON viene utilizzato per archiviare documenti in formato JSON. Qualsiasi colonna definita come JSON genererebbe un errore se un JSON non valido viene archiviato da una query INSERT. | L'intervallo o la dimensione del tipo di dati JSON è simile a LONGTEXT o LONGBLOB | CREATE TABLE json_example(json_col JSON); |
Esempio:
MySQL fornisce diverse funzioni per eseguire query sui dati JSON. Proviamo a inserire sotto JSON e poi vedremo le funzioni MySQL da interrogare.
{ 'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson', } } { 'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johson', } }
Vediamo i comandi per creare una tabella e inserire i dati JSON.
create table json_example(json_col JSON); insert into json_example values( '{'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson' }}'); insert into json_example values( '{'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johnson' }}');
Esegui query sulla tabella e stampa il nome e i campi dell'email dai dati JSON archiviati nelle righe della tabella.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
Produzione:
Domande frequenti
D # 1) Come possiamo cambiare il tipo di dati per una colonna MySQL una volta assegnata?
Risposta: Il tipo di dati della colonna può essere modificato utilizzando Comando ALTER TABLE .
Considera una tabella student_info con 2 colonne di nome ed età di tipo VARCHAR e INT rispettivamente. Ciò può essere ottenuto utilizzando il seguente comando CREATE TABLE:
CREATE TABLE student_info(name CHAR(20), age INT);
Ci sono un paio di variazioni in questo comando
domande di intervista per un analista aziendale
- Se vogliamo cambiare solo il tipo di dati della colonna - Possiamo usare il comando MODIFICA insieme ad ALTER
Nella tabella sopra, supponiamo di voler cambiare il tipo di dati della colonna età possiamo usare il seguente comando
ALTER TABLE student_info MODIFY age TINYINT
- Se vogliamo modificare il nome della colonna e il tipo di dati della colonna - Possiamo usare il comando CHANGE insieme a ALTER
Nella tabella sopra, supponiamo di voler cambiare il nome della colonna da 'nome' a 'sname' e il tipo di dati da CHAR a VARCHAR (50), possiamo usare il seguente comando:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
D # 2) Qual è il tipo di dati per un'immagine in mysql?
Risposta: Per memorizzare qualsiasi tipo di file in MySQL come immagini, pdf, ecc. BLOB o il tipo di dati binario è il tipo più adatto. Sono disponibili diverse varianti del tipo di dati BLOB a seconda delle dimensioni del file di destinazione che si desidera archiviare. Possiamo usare varianti di BLOB come: TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
D # 3) Quale tipo di dati è più adatto per l'archiviazione di documenti in mysql?
Risposta: Simile a BLOB per immagini o file pdf, per memorizzare documenti / articoli di testo, è possibile utilizzare il tipo di dati TEXT. Questa è un'estensione del tipo di dati CHAR con supporto per l'archiviazione di caratteri extra.
Le diverse varianti del tipo di dati TEXT disponibili sono - TESTO, TINYTEXT, MEDIUMTEXT & LONGTEXT
D # 4) Qual è il tipo di dati per la valuta in MySQL?
Risposta: Per memorizzare i dati per i valori di valuta, il tipo di dati più adatto è DECIMAL. Viene utilizzato per memorizzare i tipi di dati con precisione esatta. Per esempio, un nome di colonna con tipo DECIMAL (4,2), memorizzerebbe i valori nell'intervallo da -99,99 a 99,99 e restituirebbe il valore con la stessa precisione al recupero a differenza di. approssimazione per numeri in virgola mobile.
D # 5) Cosa succede se qualcuno cerca di inserire numeri negativi per colonne di numeri interi UNSIGNED?
Risposta: MySQL genera un errore per tali istruzioni di inserimento
Proviamo a creare una tabella con una colonna INT con l'opzione UNSIGNED.
CREATE TABLE int_unsigned(age INT UNSIGNED); INSERT into int_unsigned values(-350);
Error Code: 1264. Out of range value for column 'int_col_with_options' at row 1
Q # 6) Come ottenere i dati della data corrente in mysql?
Risposta: MySQL fornisce 2 funzioni di data e ora integrate per il recupero dei valori correnti
La funzione CURDATE () restituisce la data corrente
SELECT CURDATE();
Produzione
2020-08-10
La funzione NOW () restituisce la data corrente con timestamp.
SELECT NOW();
Produzione
2020-08-10 00:42:54
Q # 7) Out of CHAR e VARCHAR - quale è più adatto?
Risposta: VARCHAR sta per carattere variabile e ha un importante vantaggio di consumare meno memoria rispetto a CHAR di stessa lunghezza. Per esempio, Una colonna con VARCHAR (50) se memorizza stringhe di lunghezza 20 comporterebbe un consumo di soli 20 byte rispetto a un tipo di dati dichiarato con CHAR (50)
D # 8) Come aggiornare il valore ENUM in MySQL?
Risposta: Per aggiornare una colonna ENUM in MySQL, sarà necessario modificare la menzione dei valori delle colonne esistenti in modo che le voci esistenti rimangano intatte.
Proviamo a capirlo con un esempio.
Supponiamo di avere una tabella denominata mobile_details con un campo modello come String (VARCHAR) e una colonna brand come ENUM con valori iniziali come 'APPLE', SAMSUNG 'e' NOKIA '
Supponiamo ora di voler aggiungere un altro marchio 'MOTOROLA' all'enumerazione esistente. Vediamo le query che dovremmo eseguire.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
Una volta creato, è possibile ottenere i dettagli dei valori ENUM originali utilizzando il comando DESCRIBE
DESCRIBE mobile_details;
Ora eseguiamo il comando per aggiornare ENUM
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
Possiamo nuovamente eseguire il comando DESCRIBE per vedere se gli aggiornamenti sono stati applicati correttamente.
DESCRIBE mobile_details
Ecco l'output del comando precedente:
Conclusione
In questo tutorial abbiamo imparato a conoscere i diversi tipi di dati supportati da MySQL.
Abbiamo imparato a conoscere i tipi di dati numerico, mobile, stringa e data e ora insieme alla sintassi e a diversi esempi.
I tipi di dati MySQL sono i mattoni di base per iniziare e uno degli aspetti più cruciali durante la progettazione dello schema MySQL.
Lettura consigliata
- Tipi di dati C ++
- Tipi di dati Python
- Tipi di dati e variabili C # con esempi
- Tipi di dati PL SQL, variabili, costanti e valori letterali
- Tipi di dati array: int Array, Double array, Array of Strings Etc.
- Istruzione MySQL Delete - Elimina la sintassi dei comandi ed esempi
- MySQL Insert Into Table - Inserisci sintassi ed esempi di istruzioni
- MySQL JOIN Tutorial: Inner, Outer, Cross, Left, Right e Self