mysql insert into table insert statement syntax examples
Acest tutorial explică declarația tabelului MYSQL INSERT INTO împreună cu sintaxa interogărilor și exemple. De asemenea, aflați diferite variații ale comenzii MYSQL Insert:
În MySQL, comanda INSERT este utilizată pentru a adăuga date la tabel. Folosind această comandă, putem Insera date într-unul sau mai multe rânduri într-o singură tranzacție. De asemenea, datele pot fi adăugate la unul sau mai multe tabele într-o singură tranzacție.
Vom trece prin toate acestea în secțiunile viitoare. Înainte de a continua, vă rugăm să rețineți că folosim MySQL versiunea 8.0. O puteți descărca de la Aici .
Ce veți învăța:
- Sintaxa comenzii MySQL INSERT
- Variații ale declarației MySQL INSERT
- Întrebări și răspunsuri frecvente
- Concluzie
Sintaxa comenzii MySQL INSERT
INSERT (LOW_PRIORITY|DELAYED|HIGH_PRIORITY)(IGNORE) INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Sintaxă Explicație:
- Sintaxa începe cu cuvântul cheie „INSERT INTO”, informând astfel serverul MySQL despre tipul de activitate care trebuie efectuată. Acesta este un cuvânt cheie obligatoriu și nu poate fi omis.
- Urmează numele tabelului pe care trebuie efectuată acțiunea de inserare. Acest lucru este obligatoriu și nu poate fi omis și el.
- Apoi, vor fi numele coloanelor care vor fi inserate împreună cu valorile lor corespunzătoare. Din nou, acest lucru este obligatoriu și nu poate fi omis.
- În continuare, va fi clauza de valori. În această clauză, trebuie să furnizați valoarea pentru fiecare coloană pe care o inserăm în tabel. Secvența valorilor și secvența numelor coloanelor ar trebui să fie sincronizate.
- Numărul și tipurile de date ale coloanelor trebuie să fie aceleași cu cele ale valorilor.
Modificatori în declarația INSERT
- PRIORITATE REDUSA: Acest modificator informează MySQL Engine să întârzie execuția instrucțiunii INSERT până la un moment în care nu există conexiuni cu citirea din tabel pe care încercăm să o INSERTăm. Acest lucru ajută la obținerea consecvenței între toate celelalte operațiuni care vor fi efectuate pe masa respectivă.
- PRIORITATE RIDICATĂ: Acest modificator informează MySQL Engine să acorde prioritate instrucțiunii INSERT față de orice altă instrucțiune / tranzacţie care se execută pe masă.
- IGNORA: Acest modificator informează MySQL Engine să ignore orice erori care pot apărea din cauza executării instrucțiunii INSERT. Orice erori care apar vor fi tratate ca simple avertismente, iar inserarea înregistrărilor în tabel ar urma să se desfășoare fără obstacole.
- AMANAT: Aceasta este extensia MySQL la SQL standard. Când INSERT DELAYED este emis de utilizator, serverul pune în coadă toate rândurile și datele sunt inserate în tabel mai târziu, când tabelul nu este utilizat de alte tranzacții.
MySQL INSERT Exemplu
Următorul este un exemplu de tabel creat în MySQL.
Nume schemă: Pacific
Nume tabel: angajați
Numele coloanelor:
- empNum - Deține valori întregi pentru numărul de angajat.
- lastName - Deține valori varchar pentru numele de familie al angajatului.
- firstName - Deține valori varchar pentru prenumele angajatului.
- e-mail - Deține valori varchar pentru ID-ul de e-mail al angajatului.
- deptNum - Deține varchar pentru ID-ul departamentului de care aparține un angajat.
- salariu - Deține valori zecimale ale salariului pentru fiecare angajat.
- start_date - Deține valorile datei pentru data aderării angajatului.
Nume schemă: Pacific
Nume tabel: istoria_ angajaților
Numele coloanelor:
- empNum - Deține valori întregi pentru numărul de angajat.
- lastName - Deține valori varchar pentru numele de familie al angajatului.
- firstName - Deține valori varchar pentru prenumele angajatului.
- e-mail - Deține valori varchar pentru ID-ul de e-mail al angajatului.
- deptNum - Deține varchar pentru ID-ul departamentului de care aparține un angajat.
- salariu - Deține valori zecimale ale salariului pentru fiecare angajat.
- start_date - Deține valorile datei pentru data aderării angajatului.
Variații ale declarației MySQL INSERT
# 1) MySQL Introduceți un singur rând
În primul rând, vom arunca o privire la un scenariu în care am specificat atât numele coloanelor, cât și valorile care trebuie inserate folosind cuvântul cheie INSERT INTO.
De exemplu, Aici, vom încerca să inserăm un nou angajat. Vom adăuga numărul, prenumele și prenumele angajaților, împreună cu acesta, vom actualiza și ID-ul de e-mail, salariul și ID-ul departamentului la care ar trebui să aparțină noul angajat.
Interogarea și rezultatele corespunzătoare sunt după cum urmează:
După cum este descris în imaginea de mai sus, declarația INSERT a fost executată cu succes și a inserat un rând în tabelul angajatului.
Instrucțiunea de ieșire de mai jos arată ora la care a fost executată instrucțiunea, instrucțiunea MySQL care a fost executată și numărul de rânduri care au fost afectate.
Vă rugăm să rețineți aici, că valoarea pentru fiecare coloană este menționată în aceeași ordine cu cea a numelor coloanelor. De asemenea, observați că coloana cu tipul de date întreg / zecimal nu este inclusă în virgule inversate, totuși, tipurile de coloane cu tip de date varchar / char au fost închise cu virgule inversate.
Pentru a verifica ieșirea acestei instrucțiuni INSERT, să executăm instrucțiunea SELECT pe acest tabel cu empNum ca 1012.
Interogare:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Instantaneu de masă după:
empNum | numele de familie | Nume | deptNum | Salariu | ||
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 |
# 2) MySQL Introducerea datelor numai într-o coloană specificată
Apoi, este un alt mod de a insera date într-un tabel, dar prin inserarea înregistrărilor numai în coloanele necesare și nu în toate coloanele. Cu toate acestea, vă rugăm să rețineți că nu putem omite coloanele cheie din acest scenariu. În cazul tabelului angajaților noștri, coloana cheie fiind coloana empNum. Să încercăm asta.
De exemplu, Vom insera o nouă înregistrare în tabelul angajaților cu date doar pe empNum, prenume, prenume. Nu vom atribui niciun ID de e-mail, departament sau salariu acestui angajat.
Urmează interogarea și rezultatul acesteia:
După cum este descris în imaginea de mai sus, declarația de inserare a fost executată cu succes și a inserat un rând în tabelul angajatului.
cum se adaugă maven în eclipsă
Vă rugăm să rețineți, că, pentru a insera doar coloanele selectate, coloanele pe care le-am omis ar trebui fie declarate NULL, fie ar trebui să aibă o valoare implicită care ar fi populată în cazul în care coloana respectivă va fi omisă. Dacă această condiție nu este îndeplinită, atunci instrucțiunea insert ar eșua.
Să verificăm execuția instrucțiunii INSERT de mai sus executând o instrucțiune SELECT pentru empNum = 1013.
Interogare:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Instantaneu de masă după:
empNum | numele de familie | Nume | deptNum | Salariu | |
---|---|---|---|---|---|
1013 | Nolan | Chris | NUL | NUL | NUL |
# 3) MySQL Inserați mai multe rânduri
Apoi, vom trece prin scenariul în care trebuie să inserăm mai multe rânduri în tabel cu aceeași instrucțiune INSERT.
De exemplu, în acest caz, trebuie să menționăm numele coloanelor o singură dată, dar putem continua să repetăm valorile pentru acele coloane de câte ori este necesar.
Urmează interogarea împreună cu rezultatele asociate acesteia:
După cum este descris în imaginea de mai sus, execuția declarației a avut succes.
Observați partea de mesaj, care afirmă că au fost afectate 3 rânduri, ceea ce implică faptul că această instrucțiune INSERT unică a inserat 3 înregistrări cu executarea acestei instrucțiuni INSERT.
Lecturi suplimentare = >> Tutorial MySQL If Statement
Să verificăm rezultatul instrucțiunii INSERT executând instrucțiunea SELECT pentru noile ID-uri de angajat 1014, 1015 și 1016.
Detaliile sunt după cum urmează:
Interogare:
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) ;
Instantaneu de masă după:
empNum | numele de familie | Nume | deptNum | Salariu | |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | 1 | 25000 |
1015 | Branson | Ioan | jb@gmail.com | Două | 15000 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 |
# 4) Data introducerii MySQL
Apoi, vom trece prin scenariul în care trebuie să inserăm valori în coloana dată.
De exemplu, Inserarea valorilor în coloana dată ar putea fi dificilă. Data din MySQL ar putea fi adăugată la formatul „AAAA-LL-ZZ”. Pentru a realiza acest lucru, permiteți-ne să adăugăm o coloană start_date cu valoarea implicită ca „0001-01-01”.
Aceasta implică faptul că toate înregistrările existente în tabelul angajatului cu data start_date vor fi actualizate ca „0001-01-01”. Declarația de modificare va fi după cum urmează.
Interogare:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Să verificăm rezultatul interogării de mai sus executând o instrucțiune SELECT simplă pe masă:
Așadar, am adăugat o nouă coloană de dată cu tipul de date „DATE”, cu valoarea implicită „0001-01-01”. Acum, să introducem două înregistrări noi ale angajaților, una cu data curentă și alta cu o anumită dată.
cum se face lista în java
Următoarele sunt interogările împreună cu detaliile:
Așa cum se arată în imaginea de mai sus, am folosit caracteristica de a insera mai multe rânduri în tabel, așa cum se explică în secțiunea anterioară.
Prima înregistrare a fost inserată cu funcția CURRENT_DATE (). Această funcție returnează data curentă a sistemului. A doua înregistrare a fost inserată cu o anumită dată în formatul „AAAA-LL-ZZ”.
Apoi, vom verifica ieșirea instrucțiunii INSERT cu o instrucțiune SELECT pentru empNum 1017 și 1018.
Prima înregistrare, cu empNum = 1017, are start_date la fel ca data curentă, care este 25aNoiembrie 2019 (în acest caz data la care a fost scris acest tutorial) în format „AAAA-LL-ZZ”.
Interogare:
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') ;
Instantaneu de masă după:
empNum | numele de familie | Nume | deptNum | Salariu | Data de început | |
---|---|---|---|---|---|---|
1017 | Johnson | ajun | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Legătură | Nolan | nb@gmail.com | Două | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL Introduceți într-un tabel dintr-un alt tabel
Apoi, vom trece prin scenariul în care trebuie să inserăm date într-un tabel nou dintr-un tabel existent.
De exemplu, Luați în considerare un scenariu în care trebuie să mutăm periodic date din tabelul nostru existent într-un tabel istoric sau de arhivă. Pentru a realiza acest lucru, să creăm o nouă tabelă istorie_angajat.
Sarcina noastră este să mutăm datele din tabelul angajaților în tabelul angajat_istoric.
Instrucțiunea CREATE este următoarea:
Interogare:
CREATE TABLE employees_history LIKE employees ;
Să verificăm rezultatul interogării de mai sus executând o instrucțiune DESC simplă pe noul tabel care ne va oferi structura tabelului noii tabele:
Deci, am creat un nou tabel. Acum, să încărcăm date în acest nou tabel din tabelul angajatului.
=> Aflați mai multe despre MySQL CREAȚI COMANDA DE TABEL .
Următoarele sunt interogarea și detaliile acesteia:
După cum se arată în imaginea de mai sus, inserarea datelor în noul tabel din tabelul existent a avut succes.
Vă rugăm să respectați coloana de mesaje din fila de ieșire. Se spune că au fost afectate 18 rânduri. Acest lucru implică faptul că toate cele 18 rânduri din tabelul existent au fost copiate în tabelul de personalist_istorie nou creat.
Apoi, vom verifica rezultatul instrucțiunii noastre INSERT cu o instrucțiune SELECT pe tabelul de angajați_historie.
Imaginea de mai sus descrie toate rândurile copiate de la tabelul angajatului din tabelul angajați_istoric.
Imaginea de mai sus descrie toate rândurile copiate din tabelul angajaților din tabelul angajați_istoric.
Interogare:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Instantaneu de masă după:
empNum | numele de familie | Nume | deptNum | Salariu | Data de început | |
---|---|---|---|---|---|---|
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 | Două | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | citit | Petru | pl@gmail.com | Două | 14333 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | Două | 16538 | 0001-01-01 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
1009 | ceașcă | Harry | hb@gmail.com | 5 | 30646 | 0001-01-01 |
1010 | Armstrong | Iacov | jacob.armstrong@gmail.com | 4 | 32670 | 0001-01-01 |
1011 | Hanks | Tom | th@gmail.com | NUL | 10100 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Nolan | Chris | NUL | NUL | NUL | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | 1 | 25000 | 0001-01-01 |
1015 | Branson | Ioan | jb@gmail.com | Două | 15000 | 0001-01-01 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | ajun | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Legătură | Nolan | nb@gmail.com | Două | 15000 | 2019-09-13 00:00:00 |
Întrebări și răspunsuri frecvente
Q # 1) Cum introduceți date în tabel în MySQL?
Răspuns: Pentru a insera date într-un tabel MySQL, MySQL ne oferă un cuvânt cheie important „INSERT INTO”. Urmează numele tabelului, lista coloanelor și lista valorilor corespunzătoare care trebuie inserate. Putem folosi acest cuvânt cheie pentru a insera una sau mai multe coloane în aceeași tranzacție.
Q # 2) Explicați clauza „INSERT IGNORE INTO”.
Răspuns: Când încercăm să inserăm mai multe rânduri într-o singură instrucțiune INSERT, ar putea fi posibil ca execuția să eșueze din cauza datelor greșite pentru un anumit rând. Acest lucru va face ca tranzacția să se oprească și să fie readusă la comiterea anterioară.
ce este un fișier eps?
Pentru a evita astfel de scenarii, „INSERT IGNORE INTO” este folosit. Această clauză ignoră eroarea care cauzează înregistrări nevalide și inserează numai înregistrări valide, astfel încât tranzacția să nu se oprească. Acest lucru este util atunci când trebuie să faceți inserții în bloc și nu vă puteți permite să o refaceți pentru orice date proaste pentru un rând.
Î # 3) Cum actualizez atributele în MySQL?
Răspuns: Putem actualiza atribute folosind instrucțiunea MySQL Update, instrucțiunea începând cu cuvântul cheie UPDATE urmat de numele tabelului. Urmează clauza SET urmată de un nume de coloană și o clauză WHERE.
Q # 4) Pot introduce mai multe înregistrări într-o singură tranzacție MySQL Insert?
Răspuns: După cum este descris mai sus, sub „Introducerea datelor în mai multe rânduri” secțiunea, putem insera mai multe rânduri într-o singură tranzacție de inserare. Putem folosi clauza INSERT INTO urmată de numele tabelului și lista de coloane, dar în loc de o listă de valori, trebuie să menționăm mai multe liste de valori pentru fiecare dintre coloane.
Q # 5) De unde descărcați MySQL?
Răspuns: Puteți descărca MySQL versiunea 8.0 de aici: MySQL .
Citește și => Cum se descarcă MySQL
Q # 6) Clauza SELECT poate fi utilizată în instrucțiunea MySQL INSERT?
Răspuns: Da, SELECT poate fi utilizat împreună cu instrucțiunea MySQL INSERT. Acest lucru a fost explicat în secțiunea „MySQL Introducerea unui tabel dintr-un alt tabel”. Acesta este utilizat atunci când trebuie să inserăm rânduri într-un singur tabel, folosind datele deja prezente în alt tabel.
De exemplu, mutarea datelor din tabelul curent în tabelul istoric din depozitul de date.
Q # 7) Cum stochează data MySQL în tabele?
Răspuns: MySQL folosește formatul „AAAA-MM-ZZ” pentru stocarea datei în tabele. Tipul de date aici este DATE. Gama de date acceptate de MySQL este de la „1000-01-01” la „9999-12-31”.
MySQL are, de asemenea, un tip de date DATETIME pentru a stoca atât data, cât și ora. Formatul este „AAAA-LL-ZZ hh: mm: ss”. Intervalul acceptabil este de la „1000-01-01 00:00:00” la „9999-12-31 23:59:59”.
Lectură recomandată = >> Tutorial MySQL Data Types
Concluzie
Astfel, în acest tutorial, am aflat despre cele cinci moduri diferite de executare a instrucțiunilor INSERT în MySQL.
- MySQL Inserting Single Row
- MySQL Introducerea datelor numai în coloana specificată
- MySQL Introducerea datelor în mai multe rânduri
- Data inserării MySQL
- MySQL Introducerea unui tabel dintr-un alt tabel
Putem folosi oricare dintre acestea, pe baza cerințelor proiectului nostru.
Lectura placuta!!
Lectură recomandată
- Diferența dintre SQL și MySQL împotriva SQL Server (cu exemple)
- Top 40 cele mai bune întrebări și răspunsuri la interviu MySQL (2021 întrebări)
- Tutorial MySQL Update Statement - Actualizați sintaxa interogării și exemple
- Sintaxa de comandă Unix Cat, Opțiuni cu exemple
- Comanda de sortare Unix cu sintaxă, opțiuni și exemple
- Introduceți mai multe documente în MongoDB folosind matrici
- C # Utilizarea instrucțiunii și C # Tutorial de metodă virtuală cu exemple
- Structura programului C # și sintaxa de bază cu exemple