mysql insert into table insert statement syntax examples
Ovaj vodič objašnjava izjavu tablice MYSQL INSERT INTO zajedno sa sintaksom upita i primjerima. Također, naučite različite varijante naredbe za umetanje MYSQL:
U MySQL-u naredba INSERT koristi se za dodavanje podataka u tablicu. Pomoću ove naredbe možemo umetnuti podatke u jedan ili više redaka u jednoj transakciji. Također, podaci se mogu dodati u jednu ili više tablica u jednoj transakciji.
Sve ćemo to proći u narednim odjeljcima. Prije nastavka, imajte na umu da koristimo MySQL verziju 8.0. Možete ga preuzeti s ovdje .
Što ćete naučiti:
- Sintaksa naredbe MySQL INSERT
- Varijacije izjave MySQL INSERT
- Često postavljana pitanja i odgovori
- Zaključak
Sintaksa naredbe MySQL INSERT
INSERT [LOW_PRIORITY|DELAYED|HIGH_PRIORITY][IGNORE] INTO tablename (column1, column2, column3...) VALUES (value1, value2, value3, ....);
Objašnjenje sintakse:
- Sintaksa započinje s ključnom riječi 'INSERT INTO', čime se MySQL poslužitelj obavještava o vrsti aktivnosti koju treba izvršiti. Ovo je obavezna ključna riječ i ne može se izostaviti.
- Dalje dolazi ime tablice na kojoj se mora izvršiti radnja umetanja. Ovo je obvezno i ne može se izostaviti.
- Dalje će biti imena stupaca koja će se umetnuti zajedno s njihovim odgovarajućim vrijednostima. Opet, ovo je također obvezno i ne može se izostaviti.
- Dalje, bit će klauzula vrijednosti. U ovoj klauzuli treba navesti vrijednost za svaki stupac koji ubacujemo u tablicu. Slijed vrijednosti i slijed naziva stupaca trebaju biti sinkronizirani.
- Broj i tipovi podataka stupaca trebali bi biti isti kao i vrijednosti.
Modifikatori u izjavi INSERT
- NIZAK PRIORITET: Ovaj modifikator obavještava MySQL Engine da odgodi izvršavanje INSERT izraza do trenutka kada nema veza s čitanjem iz tablice koju pokušavamo INSERT. To pomaže u postizanju dosljednosti u svim ostalim operacijama koje će se izvoditi na tom stolu.
- VISOKI PRIORITET: Ovaj modifikator obavještava MySQL Engine da daje visoki prioritet izjavi INSERT nad bilo kojom drugom izjavom / transakcija koji se izvodi na stolu.
- ZANEMARITI: Ovaj modifikator obavještava MySQL Engine da ignorira sve pogreške koje bi mogle nastati zbog izvršavanja INSERT izraza. Sve pogreške koje se pojave tretirale bi se kao puka upozorenja i umetanje zapisa u tablicu odvijalo bi se nesmetano.
- ODLOŽENO: Ovo je proširenje MySQL za standardni SQL. Kad korisnik izda INSERT DELAYED, poslužitelj stavlja u red sve retke i podaci se ubacuju u tablicu kasnije, kada tablica ne bude korištena za bilo koju drugu transakciju.
Primjer MySQL INSERT
Slijedi ogledna tablica kreirana u MySQL-u.
Naziv sheme: pacifički
Naziv tablice: zaposlenici
Imena stupaca:
- empNum - Sadrži cjelobrojne vrijednosti za broj zaposlenika.
- lastName - Sadrži varchar vrijednosti za prezime zaposlenika.
- firstName - Sadrži vrijednosti varchara za ime zaposlenika.
- e-pošta - sadrži vrijednosti varchar za e-mail ID zaposlenika.
- deptNum - Sadrži varchar za ID odjela kojem zaposlenik pripada.
- plaća - Sadrži decimalne vrijednosti plaće za svakog zaposlenika.
- datum_početka - sadrži vrijednosti datuma za datum pridruživanja zaposlenika.
Naziv sheme: pacifički
Naziv tablice: zaposlenici_povijest
Imena stupaca:
- empNum - Sadrži cjelobrojne vrijednosti za broj zaposlenika.
- lastName - Sadrži varchar vrijednosti za prezime zaposlenika.
- firstName - Sadrži vrijednosti varchara za ime zaposlenika.
- e-pošta - sadrži vrijednosti varchar za e-mail ID zaposlenika.
- deptNum - Sadrži varchar za ID odjela kojem zaposlenik pripada.
- plaća - Sadrži decimalne vrijednosti plaće za svakog zaposlenika.
- datum_početka - sadrži vrijednosti datuma za datum pridruživanja zaposlenika.
Varijacije izjave MySQL INSERT
# 1) MySQL Umetnite jedan redak
Prvo ćemo pogledati scenarij u kojem smo pomoću ključne riječi INSERT INTO naveli imena stupaca i vrijednosti koje će se umetnuti.
Na primjer, Ovdje ćemo pokušati umetnuti novog zaposlenika. Dodati ćemo broj, ime i prezime zaposlenika, a uz to ćemo ažurirati i ID e-pošte, plaću i ID odjela kojem bi novi zaposlenik trebao pripadati.
Upit i odgovarajući rezultati su sljedeći:
Kao što je prikazano na gornjoj slici, izjava INSERT uspješno se izvršila i umetnula jedan redak u tablicu zaposlenika.
Izlazni izraz u nastavku prikazuje vrijeme izvršenja izraza, izvršeni MySQL izraz i broj redaka na koje je to utjecalo.
Imajte na umu ovdje, da se vrijednost za svaki stupac spominje istim redoslijedom kao i vrijednost imena stupaca. Također, imajte na umu da stupac s tipom podataka cjelobrojnog / decimalnog nije zatvoren unutar obrnutih zareza, međutim, stupci s vrstom podataka tipa varchar / char zatvoreni su obrnutim zarezima.
Da bismo provjerili izlaz ovog INSERT izraza, izvršimo naredbu SELECT na ovoj tablici s empNumom kao 1012.
Upit:
INSERT INTO employees ( empNum, lastName, firstName, email, deptNum, salary ) VALUES ( 1012, 'Luther', 'Martin', 'ml@gmail.com', 3, 13000 ) ;
Snimka tablice nakon:
empNum | prezime | ime | deptNum | Plaća | ||
---|---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 | 0001-01-01 |
1012 | Luther | Martine | ml@gmail.com | 3 | 13000 |
# 2) MySQL umetanje podataka samo u navedeni stupac
Dalje je još jedan način umetanja podataka u tablicu, ali umetanjem zapisa samo u tražene stupce, a ne u sve stupce. Međutim, imajte na umu da u ovom scenariju ne možemo izostaviti ključne stupce. U slučaju tablice našeg zaposlenika, ključni stupac je stupac empNum. Isprobajmo ovo.
Na primjer, U tablicu zaposlenika umetnut ćemo novi zapis s podacima o samo empNum, lastName, firstName. Za ovog zaposlenika nećemo dodijeliti ID e-pošte, odjel ili plaću.
Slijedi upit i njegov rezultat:
Kao što je prikazano na gornjoj slici, izjava za umetanje uspješno se izvršila i umetnula jedan redak u tablicu zaposlenika.
najbolji program za izradu dijagrama toka
Molim Zabilježite, da bi se umetnuli samo odabrani stupci, stupci koje smo preskočili ili bi trebali proglasiti NULL ili bi trebali imati neku zadanu vrijednost koja bi se popunila u slučaju da se taj stupac preskoči. Ako ovaj uvjet nije zadovoljen, tada izjava za umetanje neće uspjeti.
Provjerimo izvršenje gornjeg INSERT izraza izvršavanjem SELECT izraza za empNum = 1013.
Upit:
INSERT INTO employees ( empNum, lastName, firstName ) VALUES ( 1013, 'Nolan', 'Chris' ) ;
Snimka tablice nakon:
empNum | prezime | ime | deptNum | Plaća | |
---|---|---|---|---|---|
1013 | Nolan | Chris | NULL | NULL | NULL |
# 3) MySQL Umetanje više redaka
Dalje, proći ćemo kroz scenarij u kojem moramo umetnuti više redaka u tablicu s istim izrazom INSERT.
Na primjer, u ovom slučaju, imena stupaca trebamo spominjati samo jednom, ali možemo nastaviti ponavljati vrijednosti za te stupce onoliko puta koliko je potrebno.
Slijedi upit zajedno s rezultatima povezanim s njim:
Kao što je prikazano na gornjoj slici, izvršenje izjave bilo je uspješno.
Promotrite dio poruke, koji kaže da su to pogođena 3 retka, to znači da je ovaj pojedinačni izraz INSERT umetnuo 3 zapisa s izvršenjem ovog izraza INSERT.
Daljnje čitanje = >> Vodič za MySQL If Statement
Provjerimo izlaz našeg INSERT izraza izvršavanjem SELECT izraza za nove ID-ove zaposlenika 1014, 1015 i 1016.
Pojedinosti su sljedeće:
Upit:
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) ;
Snimka tablice nakon:
empNum | prezime | ime | deptNum | Plaća | |
---|---|---|---|---|---|
1014 | Murray | Keith | km@gmail.com | 1 | 25000 |
1015 | Branson | Ivan | jb@gmail.com | dva | 15000 |
1016 | Martine | Richarde | rm@gmail.com | 4 | 5000 |
# 4) Umetanje datuma MySQL-a
Dalje, proći ćemo kroz scenarij u kojem moramo umetnuti vrijednosti u stupac datuma.
Na primjer, Umetanje vrijednosti u stupac datuma može biti nezgodno. Datum u MySQL-u mogao bi se dodati u format 'GGGG-MM-DD'. Da bismo to postigli, dodajmo stupac start_date sa zadanom vrijednošću kao „0001-01-01“.
To podrazumijeva da će se svi postojeći zapisi u tablici zaposlenika s datumom_početka ažurirati kao ‘0001-01-01’. Izjava o promjeni bit će sljedeća.
Upit:
ALTER TABLE employees ADD start_date DATE default '0001-01-01' ;
Provjerimo izlaz gornjeg upita izvršavanjem jednostavne naredbe SELECT na tablici:
Dakle, dodali smo novi datumski stupac s vrstom podataka kao „DATUM“ sa zadanom vrijednošću kao „0001-01-01“. Sad ubacimo dvije nove evidencije zaposlenika, jednu s trenutnim datumom, a drugu s određenim datumom.
kako stvoriti junit test slučajeve u javi
Slijede upiti s pojedinostima:
Kao što je prikazano na gornjoj slici, koristili smo značajku umetanja više redaka u tablicu kako je objašnjeno u prethodnom odjeljku.
Prvi je zapis umetnut funkcijom CURRENT_DATE (). Ova funkcija vraća trenutni sistemski datum. Drugi je zapis umetnut s određenim datumom u formatu ‘GGGG-MM-DD’.
Dalje, provjerit ćemo izlaz naše INSERT izjave s SELECT naredbom za empNum 1017 i 1018.
Prvi zapis s empNum = 1017 ima datum_početka isti kao i trenutni datum koji je 25thStudeni 2019. (u ovom slučaju datum na koji je napisan ovaj vodič) u formatu ‘GGGG-MM-DD’.
Upit:
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') ;
Snimka tablice nakon:
empNum | prezime | ime | deptNum | Plaća | Početni datum | |
---|---|---|---|---|---|---|
1017 | Johnson | Predvečerje | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Veza | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 00:00:00 |
# 5) MySQL umetanje u tablicu s druge tablice
Dalje, proći ćemo kroz scenarij u kojem moramo umetnuti podatke u novu tablicu iz postojeće tablice.
Na primjer, Razmotrimo scenarij u kojem moramo povremeno premještati podatke iz postojeće tablice u povijesnu ili arhivsku tablicu. Da bismo to postigli, stvorimo novu tablicu worker_history.
Naš je zadatak premjestiti podatke iz tablice zaposlenika u tablicu zaposlenika_povijest.
Izjava CREATE je kako slijedi:
Upit:
CREATE TABLE employees_history LIKE employees ;
Provjerimo izlaz gornjeg upita izvršavanjem jednostavnog DESC izraza na novoj tablici koji će nam dati strukturu tablice nove tablice:
plsql pitanja i odgovori za intervju za iskusne
Dakle, stvorili smo novu tablicu. Učitajmo sada podatke u ovu novu tablicu iz tablice zaposlenika.
=> Saznajte više o MySQL-u IZRADI ZAPOVIJED ZA STOL .
Slijede upit i detalji:
Kao što je prikazano na gornjoj slici, umetanje podataka u novu tablicu iz postojeće tablice bilo je uspješno.
Molimo pripazite, stupac poruke na izlaznoj kartici. Kaže da je pogođeno 18 redova. To implicira da je svih 18 redaka u postojećoj tablici kopirano u novostvorenu tablicu zaposlenika_povijest.
Dalje, provjerit ćemo izlaz našeg INSERT izraza s naredbom SELECT na tablici zaposlenika_povijest.
Gornja slika prikazuje sve retke kopirane iz tablice zaposlenika u tablici zaposlenici_povijest.
Gornja slika prikazuje sve redove kopirane iz tablice zaposlenika u tablici zaposlenici_povijest.
Upit:
INSERT INTO employees_history ( empNum, lastName, firstName, email, deptNum, salary, start_date ) SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ;
Snimka tablice nakon:
empNum | prezime | ime | deptNum | Plaća | Početni datum | |
---|---|---|---|---|---|---|
1001 | Andrews | Utičnica | ja@gmail.com | 1 | 3182,7 | 0001-01-01 |
1002 | Schwatz | Mikrofon | ms@gmail.com | 1 | 5304,5 | 0001-01-01 |
1003 | Langley | Margaret | margaret.langley@gmail.com | dva | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | čitati | Peter | pl@gmail.com | dva | 14333 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | dva | 16538 | 0001-01-01 |
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
1009 | Kupa | Harry | hb@gmail.com | 5 | 30646 | 0001-01-01 |
1010 | Armstrong | Jakova | jacob.armstrong@gmail.com | 4 | 32670 | 0001-01-01 |
1011 | Hanks | Tom | th@gmail.com | NULL | 10100 | 0001-01-01 |
1012 | Luther | Martine | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1013 | Nolan | Chris | NULL | NULL | NULL | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | 1 | 25000 | 0001-01-01 |
1015 | Branson | Ivan | jb@gmail.com | dva | 15000 | 0001-01-01 |
1016 | Martine | Richarde | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | Predvečerje | ej@gmail.com | 3 | 5500 | 2019-11-25 00:00:00 |
1018 | Veza | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 00:00:00 |
Često postavljana pitanja i odgovori
P # 1) Kako umetnete podatke u tablicu u MySQL?
Odgovor: Za umetanje podataka u MySQL tablicu, MySQL nam nudi važnu ključnu riječ 'INSERT INTO'. Slijedi naziv tablice, popis stupaca i popis odgovarajućih vrijednosti koje treba umetnuti. Ovu ključnu riječ možemo koristiti za umetanje jednog ili više stupaca u istu transakciju.
P # 2) Objasnite klauzulu “INSERT IGNORE INTO”.
Odgovor: Kada pokušamo umetnuti više od jednog retka u jedan INSERT izraz, moglo bi biti moguće da izvršenje ne uspije zbog loših podataka za bilo koji određeni redak. To će uzrokovati zaustavljanje transakcije i vraćanje na prethodni urezivanje.
Da bi se izbjegli takvi scenariji, “INSERT IGNORE INTO” koristi se. Ova klauzula zanemaruje pogrešku koja uzrokuje nevaljane zapise i ubacuje samo važeće zapise kako se transakcija ne bi zaustavila. To je korisno ako morate izvršiti skupne umetke i ne možete si priuštiti ponavljanje zbog bilo kakvih loših podataka za red.
P # 3) Kako mogu ažurirati atribute u MySQL-u?
Odgovor: Atribute možemo ažurirati pomoću izraza MySQL Update, s tim da izraz započinje ključnom riječi UPDATE nakon koje slijedi naziv tablice. Sljedeća je klauzula SET nakon koje slijedi naziv stupca i klauzula WHERE.
P # 4) Mogu li umetnuti više zapisa u jednu transakciju MySQL Insert?
Odgovor: Kao što je prikazano gore, ispod 'Umetanje podataka u više redaka' odjeljak, možemo umetnuti više redaka u jednu transakciju umetanja. Možemo koristiti klauzulu INSERT INTO nakon koje slijedi naziv tablice i popis stupaca, ali umjesto jednog popisa vrijednosti, moramo spomenuti više popisa vrijednosti za svaki od stupaca.
P # 5) Odakle preuzimate MySQL?
Odgovor: MySQL verziju 8.0 možete preuzeti ovdje: MySQL .
Također pročitajte => Kako preuzeti MySQL
P # 6) Može li se klauzula SELECT koristiti u naredbi MySQL INSERT?
Odgovor: Da, SELECT se može koristiti zajedno s MySQL INSERT izjavom. To je objašnjeno u odjeljku 'MySQL Umetanje tablice iz druge tablice'. To se koristi kada moramo umetnuti retke u jednu tablicu, koristeći podatke koji su već prisutni u nekoj drugoj tablici.
Na primjer, premještanje podataka iz trenutne tablice u povijesnu tablicu u skladištu podataka.
P # 7) Kako MySQL pohranjuje datum u tablice?
Odgovor: MySQL koristi format “GGGG-MM-DD” za pohranu datuma u tablice. Ovdje je vrsta podataka DATE. Raspon datuma koje MySQL podržava podržava je od '1000-01-01' do '9999-12-31'.
MySQL također ima tip podataka DATETIME za pohranu datuma i vremena. Format je 'GGGG-MM-DD hh: mm: ss'. Prihvatljivi raspon je od '1000-01-01 00:00:00' do '9999-12-31 23:59:59'.
Preporučena literatura = >> Vodič za MySQL tipove podataka
Zaključak
Stoga smo u ovom vodiču naučili o pet različitih načina izvršavanja INSERT izraza u MySQL-u.
- MySQL umetanje jednog retka
- MySQL umetanje podataka samo u navedeni stupac
- MySQL umetanje podataka u više redaka
- Umetanje datuma MySQL-a
- MySQL Umetanje tablice iz druge tablice
Možemo koristiti bilo što od navedenog, na temelju zahtjeva našeg projekta.
Sretno čitanje !!
Preporučena literatura
- Razlika između SQL Vs MySQL Vs SQL Server (s primjerima)
- 40 najboljih pitanja i odgovora za intervju za MySQL (2021 pitanje)
- Vodič za izjavu o ažuriranju MySQL - Sintaksa upita i ažuriranje primjera
- Sintaksa naredbe Unix Cat, mogućnosti s primjerima
- Unix naredba za sortiranje sa sintaksom, opcijama i primjerima
- Umetnite više dokumenata u MongoDB pomoću nizova
- C # Korištenje izjave i C # Vodič za virtualne metode s primjerima
- Struktura programa C # i osnovna sintaksa s primjerima