mysql insert into table insert statement syntax examples
Questo tutorial spiega l'istruzione MYSQL INSERT INTO Table insieme alla sintassi delle query e agli esempi. Inoltre, scopri le diverse varianti del comando di inserimento MYSQL:
In MySQL, il comando INSERT viene utilizzato per aggiungere dati alla tabella. Usando questo comando, possiamo inserire dati in una o più righe in una singola transazione. Inoltre, i dati possono essere aggiunti a una o più tabelle in una singola transazione.
Analizzeremo tutto questo nelle prossime sezioni. Prima di procedere, tieni presente che stiamo utilizzando MySQL versione 8.0. Puoi scaricarlo da Qui .
Cosa imparerai:
- Sintassi del comando INSERT di MySQL
- Variazioni dell'istruzione INSERT di MySQL
- Domande e risposte frequenti
- Conclusione
Sintassi del comando INSERT di MySQL
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Spiegazione della sintassi:
- La sintassi inizia con la parola chiave “INSERT INTO”, informando in tal modo il server MySQL sul tipo di attività da eseguire. Questa è una parola chiave obbligatoria e non può essere omessa.
- Segue il nome della tabella su cui deve essere eseguita l'azione di inserimento. Questo è obbligatorio e non può essere omesso.
- Successivamente, saranno i nomi delle colonne da inserire insieme ai valori corrispondenti. Ancora una volta, anche questo è obbligatorio e non può essere omesso.
- Successivamente, sarà la clausola dei valori. In questa clausola, è necessario fornire il valore per ogni colonna che stiamo inserendo nella tabella. La sequenza dei valori e la sequenza dei nomi delle colonne dovrebbero essere sincronizzate.
- Il numero e i tipi di dati delle colonne dovrebbero essere gli stessi dei valori.
Modificatori nell'istruzione INSERT
- BASSA PRIORITÀ: Questo modificatore informa il motore MySQL di ritardare l'esecuzione dell'istruzione INSERT fino a quando non ci sono connessioni con la lettura dalla tabella che stiamo tentando di INSERT. Ciò aiuta a ottenere la coerenza tra tutte le altre operazioni che verranno eseguite su quella tabella.
- PRIORITÀ ALTA: Questo modificatore informa il motore MySQL di dare alta priorità all'istruzione INSERT rispetto a qualsiasi altra istruzione / transazione che viene eseguito sul tavolo.
- IGNORARE: Questo modificatore informa MySQL Engine di ignorare eventuali errori che possono sorgere a causa dell'esecuzione dell'istruzione INSERT. Eventuali errori che si verificano verranno trattati come semplici avvertimenti e l'inserimento di record nella tabella procederà senza ostacoli.
- RITARDATO: Questa è l'estensione MySQL allo standard SQL. Quando INSERT DELAYED viene emesso dall'utente, il server mette in coda tutte le righe ed i dati vengono inseriti nella tabella in un secondo momento, quando la tabella non è utilizzata da altre transazioni.
Esempio di INSERT MySQL
Di seguito è riportata una tabella di esempio creata in MySQL.
Nome schema: Pacifico
Nome tabella: dipendenti
Nomi delle colonne:
- empNum - Contiene valori interi per il numero del dipendente.
- lastName: contiene i valori varchar per il cognome del dipendente.
- firstName: contiene i valori varchar per il nome del dipendente.
- email: contiene i valori varchar per l'ID email del dipendente.
- deptNum: contiene varchar per l'ID reparto a cui appartiene un dipendente.
- stipendio: contiene i valori decimali dello stipendio per ogni dipendente.
- data_inizio - Contiene i valori della data per la data di adesione del dipendente.
Nome schema: Pacifico
Nome tabella: dipendenti_history
Nomi delle colonne:
- empNum - Contiene valori interi per il numero del dipendente.
- lastName: contiene i valori varchar per il cognome del dipendente.
- firstName: contiene i valori varchar per il nome del dipendente.
- email: contiene i valori varchar per l'ID email del dipendente.
- deptNum: contiene varchar per l'ID reparto a cui appartiene un dipendente.
- stipendio: contiene i valori decimali dello stipendio per ogni dipendente.
- data_inizio - Contiene i valori della data per la data di adesione del dipendente.
Variazioni dell'istruzione INSERT di MySQL
# 1) MySQL inserisce una singola riga
Innanzitutto, daremo uno sguardo a uno scenario in cui abbiamo specificato sia i nomi delle colonne che i valori da inserire utilizzando la parola chiave INSERT INTO.
Per esempio, Qui proveremo a inserire un nuovo dipendente. Aggiungeremo il numero, il nome e il cognome del dipendente, oltre a ciò aggiorneremo anche l'ID e-mail, lo stipendio e l'ID del reparto a cui dovrebbe appartenere il nuovo dipendente.
La query e i risultati corrispondenti sono i seguenti:
Come illustrato nella figura sopra, l'istruzione INSERT è stata eseguita correttamente e ha inserito una riga nella tabella del dipendente.
L'istruzione di output seguente mostra l'ora in cui l'istruzione è stata eseguita, l'istruzione MySQL che è stata eseguita e il numero di righe interessate.
Si prega di notare qui, che il valore per ciascuna colonna sia menzionato nello stesso ordine di quello dei nomi delle colonne. Inoltre, osservare che la colonna con il tipo di dati intero / decimale non è racchiusa tra virgolette, tuttavia, i tipi di colonna con il tipo di dati varchar / char sono stati racchiusi tra virgolette.
Per verificare l'output di questa istruzione INSERT, eseguiamo l'istruzione SELECT su questa tabella con empNum come 1012.
Query:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Istantanea della tabella dopo:
empNum | cognome | nome di battesimo | deptNum | Stipendio | ||
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Lutero | Martin | ml@gmail.com | 3 | 13000 |
# 2) MySQL che inserisce i dati solo nella colonna specificata
Successivamente, è un altro modo per inserire dati in una tabella, ma inserendo record solo nelle colonne richieste e non in tutte le colonne. Tuttavia, tieni presente che non possiamo omettere le colonne chiave in questo scenario. Nel caso della tabella del nostro dipendente, la colonna chiave è la colonna empNum. Proviamo questo.
Per esempio, Inseriremo un nuovo record nella tabella dei dipendenti con i dati solo su empNum, lastName, firstName. Non assegneremo alcun ID email, reparto o stipendio a questo dipendente.
Di seguito è riportata la query e il suo risultato:
Come illustrato nella figura sopra, l'istruzione insert è stata eseguita correttamente e ha inserito una riga nella tabella del dipendente.
modello di report di esecuzione del test in Excel
Notare che, che per inserire solo le colonne selezionate, le colonne che abbiamo saltato dovrebbero essere dichiarate NULL o dovrebbero avere un valore predefinito che verrebbe popolato nel caso in cui quella colonna venga saltata. Se questa condizione non è soddisfatta, l'istruzione di inserimento fallirà.
Verifichiamo l'esecuzione dell'istruzione INSERT precedente eseguendo un'istruzione SELECT per empNum = 1013.
Query:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Istantanea della tabella dopo:
empNum | cognome | nome di battesimo | deptNum | Stipendio | |
---|---|---|---|---|---|
1013 | Nolan | Chris | NULLO | NULLO | NULLO |
# 3) MySQL Inserisci più righe
Successivamente, esamineremo lo scenario in cui dobbiamo inserire più righe nella tabella con la stessa istruzione INSERT.
Per esempio, in questo caso, dobbiamo menzionare i nomi delle colonne solo una volta, ma possiamo continuare a ripetere i valori per quelle colonne tutte le volte che è necessario.
Di seguito è riportata la query insieme ai risultati ad essa associati:
Come illustrato nella figura sopra, l'esecuzione della dichiarazione ha avuto successo.
Osserva la parte del messaggio, che afferma che 3 righe sono state interessate, questo implica che questa singola istruzione INSERT ha inserito 3 record con l'esecuzione di questa istruzione INSERT.
Ulteriore lettura = >> Tutorial sull'istruzione If di MySQL
Verifichiamo l'output della nostra istruzione INSERT eseguendo l'istruzione SELECT per i nuovi ID dipendente 1014, 1015 e 1016.
I dettagli sono i seguenti:
Query:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES (1014, 'Murray', 'Keith', 'km@gmail.com', 1, 25000), (1015, 'Branson', 'John', 'jb@gmail.com', 2, 15000), (1016, 'Martin', 'Richard', 'rm@gmail.com', 4, 5000) ;
Istantanea della tabella dopo:
empNum | cognome | nome di battesimo | deptNum | Stipendio | |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | 1 | 25000 |
1015 | Branson | John | jb@gmail.com | Due | 15000 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 |
# 4) Data di inserimento di MySQL
Successivamente, esamineremo lo scenario in cui dobbiamo inserire valori nella colonna della data.
Per esempio, L'inserimento di valori nella colonna della data potrebbe essere complicato. La data in MySQL potrebbe essere aggiunta al formato 'AAAA-MM-GG'. Per ottenere ciò, aggiungiamo una colonna data_inizio con il valore predefinito '0001-01-01'.
Ciò implica che tutti i record esistenti nella tabella del dipendente con start_date verranno aggiornati come '0001-01-01'. La dichiarazione di modifica sarà la seguente.
Query:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Verifichiamo l'output della query precedente eseguendo una semplice istruzione SELECT sulla tabella:
Pertanto, abbiamo aggiunto una nuova colonna della data con il tipo di dati 'DATE' con il valore predefinito '0001-01-01'. Ora inseriamo due nuovi record dei dipendenti, uno con la data corrente e un altro con una data particolare.
domande di intervista sui servizi web per esperti
Di seguito sono riportate le domande insieme ai dettagli:
Come mostrato nell'immagine sopra, abbiamo utilizzato la funzione di inserire più righe nella tabella come spiegato nella sezione precedente.
Il primo record è stato inserito con la funzione CURRENT_DATE (). Questa funzione restituisce la data di sistema corrente. Il secondo record è stato inserito con una data particolare nel formato 'AAAA-MM-GG'.
Successivamente, verificheremo l'output della nostra istruzione INSERT con un'istruzione SELECT per empNum 1017 e 1018.
Il primo record, con empNum = 1017, ha start_date uguale alla data corrente che è 25thNov 2019 (in questo caso la data in cui è stato scritto questo tutorial) in formato 'AAAA-MM-GG'.
Query:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary, start_date ) VALUES (1017, 'Johnson', 'Eve', 'ej@gmail.com', 3, 5500, CURRENT_DATE()), (1018, 'Bond', 'Nolan', 'nb@gmail.com', 2, 15000, '2019-09-13') ;
Istantanea della tabella dopo:
empNum | cognome | nome di battesimo | deptNum | Stipendio | Data d'inizio | |
---|---|---|---|---|---|---|
1017 | Johnson | vigilia | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Legame | Nolan | nb@gmail.com | Due | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL inserisce in una tabella da un'altra tabella
Successivamente, esamineremo lo scenario in cui dobbiamo inserire i dati in una nuova tabella da una tabella esistente.
Per esempio, Considera uno scenario in cui dobbiamo spostare periodicamente i dati dalla nostra tabella esistente a una tabella storica o di archivio. Per ottenere ciò, creiamo una nuova tabella Employee_history.
Il nostro compito è spostare i dati dalla tabella Employee alla tabella Employee_history.
L'istruzione CREATE è la seguente:
Query:
CREATE TABLE employees_history LIKE employees ;
Verifichiamo l'output della query precedente eseguendo una semplice istruzione DESC sulla nuova tabella che ci darà la struttura della tabella della nuova tabella:
Quindi, abbiamo creato una nuova tabella. Ora carichiamo i dati in questa nuova tabella dalla tabella del dipendente.
=> Ulteriori informazioni su MySQL COMANDO CREA TABELLA .
Di seguito sono riportate la query ei suoi dettagli:
Come mostrato nell'immagine sopra, l'inserimento dei dati nella nuova tabella dalla tabella esistente è andato a buon fine.
Si prega di osservare la colonna dei messaggi nella scheda output. Dice 18 righe interessate. Ciò implica che tutte le 18 righe della tabella esistente sono state copiate nella tabella Employee_history appena creata.
Successivamente, verificheremo l'output della nostra istruzione INSERT con un'istruzione SELECT sulla tabella Employee_history.
L'immagine sopra mostra tutte le righe copiate dalla tabella del dipendente nella tabella Employee_history.
L'immagine sopra mostra tutte le righe copiate dalla tabella Employee nella tabella Employees_history.
Query:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Istantanea della tabella dopo:
empNum | cognome | nome di battesimo | deptNum | Stipendio | Data d'inizio | |
---|---|---|---|---|---|---|
1001 | Andrews | Jack | ja@gmail.com | 1 | 3182.7 | 0001-01-01 |
1002 | Schwatz | Mike | ms@gmail.com | 1 | 5304.5 | 0001-01-01 |
1003 | Langley | Margaret | margaret.langley@gmail.com | Due | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | leggere | Peter | pl@gmail.com | Due | 14333 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | Due | 16538 | 0001-01-01 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
1009 | Tazza | Harry | hb@gmail.com | 5 | 30646 | 0001-01-01 |
1010 | Armstrong | Giacobbe | jacob.armstrong@gmail.com | 4 | 32670 | 0001-01-01 |
1011 | Hanks | Tom | th@gmail.com | NULLO | 10100 | 0001-01-01 |
1012 | Lutero | Martin | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Nolan | Chris | NULLO | NULLO | NULLO | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | 1 | 25000 | 0001-01-01 |
1015 | Branson | John | jb@gmail.com | Due | 15000 | 0001-01-01 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | vigilia | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Legame | Nolan | nb@gmail.com | Due | 15000 | 2019-09-13 00:00:00 |
Domande e risposte frequenti
D # 1) Come si inseriscono i dati nella tabella in MySQL?
Risposta: Per inserire i dati in una tabella MySQL, MySQL ci fornisce un'importante parola chiave 'INSERT INTO'. Segue il nome della tabella, l'elenco delle colonne e l'elenco dei valori corrispondenti che devono essere inseriti. Possiamo usare questa parola chiave per inserire una o più colonne nella stessa transazione.
D # 2) Spiegare la clausola 'INSERT IGNORE INTO'.
Risposta: Quando si tenta di inserire più di una riga in una singola istruzione INSERT, potrebbe essere possibile che l'esecuzione non riesca a causa di dati errati per una determinata riga. Ciò causerà l'arresto della transazione e il rollback al commit precedente.
Per evitare tali scenari, 'INSERT IGNORE INTO' si usa. Questa clausola ignora l'errore che causa record non validi e inserisce solo record validi in modo che la transazione non venga interrotta. Ciò è utile quando devi eseguire inserimenti in blocco e non puoi permetterti di rifarlo per dati errati per una riga.
D # 3) Come aggiorno gli attributi in MySQL?
Risposta: Possiamo aggiornare gli attributi utilizzando l'istruzione MySQL Update, con l'istruzione che inizia con la parola chiave UPDATE seguita dal nome della tabella. La prossima è la clausola SET seguita da un nome di colonna e una clausola WHERE.
D # 4) Posso inserire più record in una singola transazione di inserimento MySQL?
Risposta: Come illustrato sopra, sotto 'Inserimento di dati in più righe' sezione, possiamo inserire più righe in una singola transazione di inserimento. Possiamo usare la clausola INSERT INTO seguita dal nome della tabella e dall'elenco di colonne, ma invece di un elenco di valori, dobbiamo menzionare più elenchi di valori per ciascuna delle colonne.
D # 5) Da dove scarichi MySQL?
Risposta: Puoi scaricare MySQL versione 8.0 da qui: MySQL .
il miglior server privato di world of warcraft
Leggi anche => Come scaricare MySQL
D # 6) La clausola SELECT può essere utilizzata nell'istruzione INSERT di MySQL?
Risposta: Sì, SELECT può essere utilizzato insieme all'istruzione MySQL INSERT. Questo è stato spiegato nella sezione, 'MySQL Inserimento di una tabella da un'altra tabella'. Viene utilizzato quando dobbiamo inserire righe in una tabella, utilizzando i dati già presenti in qualche altra tabella.
Per esempio, spostare i dati dalla tabella corrente alla tabella storica nel data warehouse.
D # 7) In che modo MySQL memorizza la data nelle tabelle?
Risposta: MySQL utilizza il formato 'AAAA-MM-GG' per memorizzare la data nelle tabelle. Il tipo di dati qui è DATE. L'intervallo di date supportato da MySQL va da '1000-01-01' a '9999-12-31'.
MySQL ha anche un tipo di dati DATETIME per memorizzare sia la data che l'ora. Il formato è 'AAAA-MM-GG hh: mm: ss'. L'intervallo accettabile va da '1000-01-01 00:00:00' a '9999-12-31 23:59:59'.
Lettura consigliata = >> Tutorial sui tipi di dati MySQL
Conclusione
Pertanto, in questo tutorial, abbiamo appreso i cinque diversi modi di eseguire le istruzioni INSERT in MySQL.
- MySQL Inserimento di una riga singola
- MySQL Inserimento di dati solo nella colonna specificata
- MySQL Inserimento di dati in più righe
- Data di inserimento di MySQL
- MySQL Inserimento di una tabella da un'altra tabella
Possiamo utilizzare uno di questi, in base ai requisiti del nostro progetto.
Buona lettura!!
Lettura consigliata
- Differenza tra SQL Vs MySQL Vs SQL Server (con esempi)
- Le 40 migliori domande e risposte per i colloqui di MySQL (domande 2021)
- Tutorial sull'istruzione di aggiornamento di MySQL: sintassi ed esempi delle query di aggiornamento
- Sintassi dei comandi Cat Unix, opzioni con esempi
- Comando di ordinamento Unix con sintassi, opzioni ed esempi
- Inserisci più documenti in MongoDB usando gli array
- Esercitazione sull'istruzione C # Using e sul metodo virtuale C # con esempi
- Struttura del programma C # e sintassi di base con esempi