Uvod v Vstavi v MySQL
Glavni cilj sistema baz podatkov je shranjevanje podatkov v tabele. Za definiranje funkcionalnosti v bazi podatkov imamo različne ukaze SQL. V tej temi bomo spoznali Insert v MySQL.
Ukaze SQL lahko razvrstimo na naslednje:
- DDL (jezik opredelitve podatkov)
- DML (jezik za obdelavo podatkov)
- DQL (jezik poizvedbe)
- DCL (jezik nadzora podatkov)
- TCL (jezik nadzora transakcij)
V tem članku se bomo osredotočili predvsem na DML. Kot lahko vidimo ime jezika Manipulacija podatkov, tako da potem, ko je tabela / baza podatkov ustvarjena, za nekaj manipuliramo, potrebujemo ukaze DML. Zasluge za uporabo teh ukazov so, če jih v primeru napačnih sprememb lahko vrnemo nazaj / razveljavimo.
Sledijo ukazi v DML-ju:
1. VNOS: Uporablja se za vstavljanje novih vrstic v tabelo.
INSERT into employee
Values(101, 'abcd');
2. DELETE: Uporablja se za brisanje posamezne vrstice ali celotnih zapisov v tabeli.
DELETE TABLE employee;
3. UPDATE: Uporablja se za posodabljanje obstoječih zapisov v tabeli.
UPDATE employee
SET col1 = new_col
WHERE condition;
Sintaksa vstavitvenega ukaza v MySQL
Izjavo INSERT INTO lahko napišemo na dva načina.
1. pot
INSERT INTO table_name
VALUES (value1, value2, ….);
2. pot
INSERT INTO table_name (column1, column2, …….)
VALUES (value1, value2, ….);
- INSERT INTO table_name je ukaz, ki doda novo vrstico v tabelo z imenom `table_name` v bazi podatkov MySQL.
- (stolpec_1, stolpec_2, …) so imena stolpcev, v katere bo dodan nov zapis.
- VALUES (vrednost_1, vrednost_2, …) določa vrednosti, ki jih je treba dodati v novo vrstico.
Med dodajanjem novih zapisov moramo biti pozorni na opredeljene tipe podatkov, medtem ko ustvarjamo strukturo tabele.
- String: Vse vrednosti niza je treba priložiti enim narekovajem.
- Numerične: Številčne vrednosti ne smejo biti zajete v eno ali dvojno navedbo.
- Datum: Ti tipi podatkov bi morali biti v enem samem citatu s formatom „LLLL-MM-DD“.
Upoštevajmo, da obstaja tabela "zaposlenega", sestavljena iz naslednjih atributov:
Emp_id | Emp_name | Telefon | E-naslov | Oddelek | Manager | Mesto |
1001 | Vinay | 9876543219 | CSR | Sudhir | Bangalore | |
1002 | Raaj | 9764527848 | IT | Štefan | Hyderabad | |
1003 | Sakti | 9567382784 | Avtomobilizem | Ved | Bhubaneswar |
Če dodajamo vrednosti za vse stolpce tabele, nam ni treba določiti imen stolpcev v poizvedbi, ampak moramo poskrbeti, da mora naš novi zapis slediti zaporedju stolpca, kot je določeno v tabeli.
INSERT INTO employee
VALUES (1004, 'Ravi', 9856478398, ' ', 'marketing', 'shiv', 'kolkata');
Če nimamo vseh vrednosti stolpcev in jih bomo vstavili, moramo v poizvedbi določiti imena stolpcev.
INSERT INTO employee (emp_id, emp_name, phone, email, manager)
VALUES (1005, 'sam', 9856478398, ' ', 'shivankar');
Izvajanje Insert Command v MySQL
Upoštevajmo, da imamo naslednje sezname novih zapisov, ki jih potrebujemo za dodajanje v tabelo podatkov STUDENT.
Roll_no | Ime | Priimek | Standardno | Telefon | Odstotek | Mesto |
1 | Sandeep | Kumar | 10 | 9876456726 | 89.33 | Cuttack |
2 | Shyam | 9 | 76 | Bhubaneswar | ||
3 | Sakti | Naik | 6463765776 | 76 | ||
4 | Sid | 8 | 9864876986 | Kolkata | ||
5 | Vinay | Kumar | 10 | 92 |
Te vrstice bomo vstavili eno za drugo v bazo podatkov.
- Začnimo s Sandeepom. Tu so 'Roll_no', 'Standard', 'Phone' in 'Odstotek' številčna polja, zato bodo vrednosti v ta stolpec vstavljene brez narekovajev.
INSERT INTO student
VALUES (1, 'Sandeep', 'Kumar', 10, 9876456726, 89.33, 'Cuttack');
Opomba: Ker imamo vrednosti vseh stolpcev študentske tabele, nam ni treba določiti imena stolpcev med uporabo ukaza INSERT. Moramo pa poskrbeti, da mora naša vrednost slediti vrstnemu redu stolpcev v tabeli.
- V primeru zapisa Shyam lahko vidimo, da veliko vrednosti manjka. Torej tukaj moramo določiti imena stolpcev, v katere želimo vstaviti vrednosti.
INSERT INTO student (Roll_no, First_name, Standard, Percentage, City)
VALUES (2, 'Shyam', 9, 76, 'Bhubaneswar');
Opomba: V tem zapisu nimamo vrednosti vsakega stolpca. Zato moramo določiti vsa imena stolpcev, v katere želimo vstaviti svoje vrednosti, in v vrstnem redu teh imen stolpcev, moramo omeniti tudi vrednosti.
INSERT INTO student (Roll_no, First_name, Last_name, Phone, Percentage)
VALUES (3, 'Sakti', 'naik', 6463765776, 76);
INSERT INTO student (Roll_no, First_name, Standard, Phone, City)
VALUES (4, 'Sid', 8, 9864876986, 'Kolkata');
INSERT INTO student (Roll_no, First_name, Last_name, standard, Percentage)
VALUES (5, 'Vinay', 'Kumar', 10, 92);
Spreminjanje vrstnega reda stolpcev in vrednosti ne bo vplivalo na poizvedbo INSERT, ker prave vrednosti ni mogoče preslikati v desni stolpec. Tako lahko nastanejo težave, kot je vstavljanje številčne vrednosti v niz ali obratno.
V vseh zgornjih poizvedbah manjka toliko polj, kot so Priimek, Telefon, Mesto. Tako bo MySQL v tiste stolpce, ki smo jih preskočili v poizvedbah, privzeto vstavili NULL vrednosti.
Vstavljanje v tabelo iz druge tabele
Če obstajata 2 podobni tabeli in želimo podatke neposredno vstaviti iz tabele_1 v tabelo_2, da se izognemo ročnemu delu, lahko uporabimo tudi drugo vrsto poizvedbe INSERT. V takem primeru moramo uporabiti ukaz SELECT z ukazom INSERT. V osnovi SELECT ukaz spada pod DQL (Data Query Language), ki se uporablja za iskanje / pridobivanje podatkov. Ukaz select se lahko uporablja tudi pri številnih vrstah klavzul.
Osnovna skladnja za vstavljanje zapisov v eno tabelo iz druge je naslednja:
INSERT INTO table_1 SELECT * FROM table_2;
Primer
Poglejmo spodnji primer:
1. Tabela naročil
Številka naročila | Naročilo_oddelek | Ime stranke | Kontakt_no | Količina | Kraj |
8465637 | Pohištvo | Peter | 8659876766 | 1000 | Delhi |
9473636 | Okraski | Alex | 9863769898 | 800 | Bombaj |
2. Tabela naročila_arhiva
Številka naročila | Naročilo_oddelek | Ime stranke | Kontakt_no | Količina | Kraj |
Tu imamo dve tabeli z imenom Order and Order_archive. Če bomo vse zapise iz tabele Naročilo premaknili v Order_archive, lahko nalogo opravi naslednja koda:
INSERT INTO Order_archive SELECT * FROM Order;
Če želimo premakniti nekatere posebne stolpce iz tabele »Naroči« v »Naroči_arhiv«, potem:
INSERT INTO Order_archive (Order_no, Order_department, Contact_no, Quantity)
SELECT Order_no, Order_department, Contact_no, Quantity FROM Order;
Zaključek
Ukaz Insert je zelo koristen, saj gre za predvajanje od časa ustvarjanja tabele do vsakega posameznega časa, kadar obstoječi tabeli dodamo več zapisov. Iz tega članka lahko povzamemo naslednje točke:
- Ukaz INSERT se uporablja za dodajanje novih podatkov v tabelo.
- Vrednost datuma in niza mora biti v enem samem navodilu.
- Številska vrednost ne sme biti v narekovajih.
- Med vstavljanjem zapisov v določene stolpce je treba ime in vrednost stolpca preslikati v istem vrstnem redu.
- Ta ukaz lahko uporabite tudi za vstavljanje zapisov iz ene tabele v drugo tabelo.
Priporočeni članki
To je vodnik za Vstavi v MySQL. Tukaj razpravljamo o izvajanju Insert Command v MySQL skupaj z ustreznimi primeri in skladnjo. Lahko pogledate tudi naslednji članek.
- Kaj je shema MySQL?
- Funkcije MySQL String
- Kaj je MySQL?
- Kako namestiti MySQL
- Primeri za uvedbo INSERT v Oracle