SQL upit za dodavanje i uklanjanje zapisa. Sql upiti za umetanje, modificiranje i brisanje podataka Jednostavni UPDATE upiti u MySQL bazu podataka
Opća sintaksa:
a) umetanje jednog novog reda u tablicu:
UMETNUTI<таблица>[(stupci)]
VRIJEDNOSTI
b) Umetanje jednog ili više redaka u tablicu preuzetih iz izvora navedenog u podupitu:
UMETNUTI<таблица>[(stupci)]
Pravila:
Broj elemenata u odjeljku "Stupci" mora odgovarati broju elemenata u odjeljku "Vrijednosti"; tipovi podataka moraju odgovarati ili dopuštati implicitnu konverziju;
U slučaju kada ne postoji odjeljak "Stupci", odjeljak "Vrijednosti" mora sadržavati isti broj vrijednosti koliko ima ukupnih stupaca u tablici koja se uređuje, osim toga, vrijednosti moraju biti navedene u istom redoslijed kojim su stupci tablice deklarirani; stoga se preporuča uvijek izričito navesti popis stupaca, kojima će se dodati nove vrijednosti;
Kada se koristi sintaksa (b), podupit SELECT može se adresirati ili na istu tablicu, ili na drugu tablicu u bazi podataka, ili na drugu bazu podataka na poslužitelju;
Ako je određena zadana vrijednost za određeni stupac tablice, a želite koristiti upravo tu vrijednost u dodanom zapisu, tada u odjeljku “Vrijednosti” za ovaj stupac trebate napisati ključna riječ ZADANO.
Primjeri :
INSERT INTO detalj (detail_name)
VRIJEDNOSTI
INSERT INTO supply (supplier_id, supply_quantity, supply_cost,
dobava_datum, detalj_id)
VRIJEDNOSTI (4, 177, 453.45, "25.09.2009", 1)
INSERT dobavljač (vrsta_dobavljača, naziv_dobavljača)
VRIJEDNOSTI (ZADANO, "Smirnov S. S.")
Izmjena postojećih zapisa (ažuriranje)
Opća sintaksa:
AŽURIRATI<таблица>
SET<столбец> = <значение> [, <столбец> = <значение>]
Primjeri :
SET težina = 210
SET material_name = "Kositar"
WHERE material_id = 2
SET department_id = NULL,
datum_ isporuke = datum_ isporuke + 1 /*povećanje datuma isporuke za jedan dan
WHERE delivery_id = 1 OR department_id > 3
SET detalj_naziv = detalj_naziv + "!!!"
WHERE detail_name LIKE "_a%" I težina IZMEĐU 6 I 10
Uklanjanje zapisa iz tablice (brisanje)
Opća sintaksa:
IZBRISATI<таблица>
<условие>
Primjeri :
WHERE detail_id IN (2, 5, 8)
GDJE JE težina NULL
Vježba:
Popunite bazu podataka koristeći ManagementStudio.
Da biste to učinili, koristite naredbu "Otvori tablicu" kontekstnog izbornika tablice u "Pregledniku objekata" (Slika 4.1).
Upiti za dohvaćanje
Opća sintaksa upita odabira<список столбцов>
ODABERI<таблица(-ы) источник>
IZ
Klauzule SELECT i FROM moraju biti prisutne u svakom upitu; drugi dijelovi mogu biti odsutni ili djelomično prisutni.
Najjednostavniji upiti:
1. Odaberite naziv i težinu dijelova
Riža. 5.1. Rezultati upita br. 1
2. Odaberite sve informacije iz tablice materijala
Riža. 5.2. Rezultati upita br. 2
Jedinstvenost DISTINCT-a
3. Odaberite jedinstveni kodovi dobavljači iz tablice opskrbe
Riža. 5.3. Rezultati upita br. 3
WHERE ograničenje
4. Odaberite količinu i rokove isporuke dijela sa šifrom 1
Riža. 5.4. Rezultati upita br. 4
5. Odaberite imena dobavljača s kodovima 1, 4 i 6
Riža. 5.5. Rezultati upita br. 5
6. Odaberite sve podatke o isporukama izvršenim prije 1. listopada 2009
Riža. 5.6. Rezultati upita br. 6
7. Odaberite sve podatke o dijelovima koji ne počinju slovom “B” (nikako) i čija je težina manja od 50
Riža. 5.7. Rezultati upita br. 7
8. Odaberite naziv i šifru materijala za dijelove težine od 5 do 10 g ili koji imaju slovo “n” na trećem mjestu u nazivu
Riža. 5.8. Rezultati upita br. 8
9. Odaberite imena dobavljača ne duža od 15 znakova
Riža. 5.9. Rezultati upita br. 9
10. Odaberite mjesece i godine isporuke dijelova
Riža. 5.10. Rezultati upita br. 10
Razvrstavanje ORDER BY
11. Sortirajte isporuke prvo prema šifri dobavljača, a zatim prema datumu isporuke
Riža. 5.11. Rezultati upita br. 11
12. Odaberite nazive dobavljača s kodovima 4, 6, 8, 9, poredane abecednim redoslijedom
Riža. 5.12. Rezultati upita br. 12
Agregacija i grupiranje GROUP BY
Riža. 5.13. Rezultati upita br. 13
14. Odrediti prosječnu težinu dijelova od materijala s kodom 2
Riža. 5.14. Rezultati upita br. 2
15. Od isporuka izvršenih prije 1. listopada 2009. odaberite najveću i najmanju isporuku
Riža. 5.15. Rezultati upita br. 15
16. Za dobavljače s šiframa u rasponu od 5 do 8, izračunajte ukupan broj dijelova koje su isporučili
Riža. 5.16. Rezultati upita br. 16
Riža. 5.17. Rezultati upita br. 17
Ograničenja za HAVING grupe
18. Odaberite materijale za koje ukupna težina dijelova izrađenih od njih nije veća od 20
Riža. 5.18. Rezultati upita br. 18
19. Od isporuka u 2008. odaberite dijelove koji su isporučeni više puta
Riža. 5.19. Rezultati upita br. 19
Pretvorba tipaCAST
20. Primite informacije o rokovima isporuke u tekstualnom obliku
Riža. 5.20. Rezultati upita br. 20
21. Dobijte informacije iz tablice dijelova u obliku redaka "Dio X ima težinu Y"
Riža. 5.21. Rezultati upita br. 21
AlternativeSPIS
22. Podijelite dijelove na lagane (težine do 20), srednje (između 20 i 50) i teške
Riža. 5.22. Rezultati upita br. 22
Rukovanje NULL vrijednostima
23. Dobiti informacije o dijelovima i njihovim težinama, a ako težina dijela nije navedena, upišite -100 umjesto NULL
Riža. 5.23. Rezultati upita br. 23
Funkcija egzistencije POSTOJI
24. Odaberite naziv i šifru materijala samo onih dijelova koji su ikada bili isporučeni
Riža. 5.24. Rezultati upita br. 24
25. Odaberi nazive onih materijala od kojih nije izrađen niti jedan dio
Riža. 5.25. Rezultati upita br. 25
Podupiti
26. Dobijte informacije o posljednjoj (po datumu) isporuci
Riža. 5.26. Rezultati upita br. 26
27. Zaprimite sve isporuke dijelova izrađenih od materijala šifre 2
Riža. 5.27. Rezultati upita br. 27
28. Za svakog dobavljača pribavite podatke o prvoj (po datumu) njegovoj isporuci
Riža. 5.28. Rezultati upita br. 28
29. Za svakog dobavljača saznajte njegovo ime i datum zadnje narudžbe
Riža. 5.29. Rezultati upita br. 29
Spajanje tablica s JOIN
30. Nabavite tablicu oblika: naziv dijela, naziv materijala od kojeg je ovaj dio izrađen
Riža. 5.30. Rezultati upita br. 30
31. Nabavite tablicu poput: dobavljača, naziva dijela, količine i datuma isporuke za dijelove koji imaju određenu težinu
Riža. 5.31. Rezultati upita br. 31
32. Odaberite sve informacije o onim dijelovima koji su ikada bili isporučeni
Riža. 5.32. Rezultati upita br. 32
Riža. 5.33. Rezultati upita br. 33
34. Odaberite nazive materijala i dijelova izrađenih od njih
Riža. 5.34. Rezultati upita br. 34
35. Dobiti sve podatke o dobavljačima, zalihama i dijelovima
Riža. 5.35. Rezultati upita br.35
Spajanje UNION tablica
36. Nabavite tablicu naziva i težine dijelova, au zadnjem redu tablice neka budu zbrojevi u obliku ukupne težine svih dijelova.
Riža. 5.36. Rezultati upita br.36
37. Nabavite tablicu od dva polja, gdje je prvo polje naziv dijela, materijala, dobavljača ili datum isporuke, a drugo polje je duljina retka iz prvog polja
Riža. 5.37. Rezultati upita br. 37
Ovaj članak je posvećen popunjavanju tablica baze podataka podacima, odnosno proučavat ćemo SQL naredbe za umetanje novih zapisa. Treba reći da se snimanje u tablicu može izvršiti na dva načina:
Metoda broj 1.
Pokušajmo dodati unos o novoj zemlji u tablicu zemalja. Sintaksa dodavanja bit će sljedeća:
INSERT INTO table_name (field_1, field_2, ...) VALUES (Vrijednost_1, Vrijednost_2, ...); Na temelju naše strukture tablice, SQL upit će biti ovakav:
INSERT INTO countries (country_name, acronym_name) VALUES ("Rusija", "RU"); Tako smo u našu tablicu dodali unos o zemlji “Rusija”. Ovdje bi sve trebalo biti jasno i jednostavno, glavna stvar je da pažljivo pogledate koja polja označavate u prvim zagradama, au drugom napišite vrijednosti istim redoslijedom.
Metoda br. 2.
Drugi način je, po meni, malo jednostavniji, jer vidite što dodjeljujete i kojem polju. Vjerujte mi, ako tablica ima ogroman broj stupaca, vrlo je lako zbuniti ili previdjeti redoslijed polja u prvim i redoslijed vrijednosti u drugim zagradama. Sintaksa druge metode je:
INSERT INTO table_name SET polje_1 = Vrijednost_1, polje_2 = Vrijednost_2, ... ; Idemo dalje u ovom primjeru Dodajmo neke podatke u tablicu osoba, budući da ima više polja, a prednost druge metode će se odmah osjetiti:
INSERT INTO osobe SET first_name="Ivan", last_name="Dulin", registration_date="2012-06-14", country="1"; Sada naša tablica sadrži sljedeće podatke:
Vjerojatno ste primijetili da nismo naveli vrijednost za dob, ali se pokazalo da je popunjena... Sve je točno - za ovo polje postavili smo zadanu vrijednost na 25. Tako je sada naš Ivan Dulin u bazi podataka s dob od 25 godina. Možda nije najbolji primjer postaviti zadanu vrijednost za polje dobi, ali takva svojstva možete postaviti za polja kao što su, na primjer, korisnička ocjena stranice ili broj pregleda stranice. U početku su postavljeni na 0.
Također biste trebali obratiti pozornost na format datuma u MySQL-u: GGGG-MM-DD. Ako se toga ne pridržavate, vaši unosi jednostavno neće biti uneseni u tablicu.
Kao što vidite, polje profesije je popunjeno kao NULL, ovo je prazna vrijednost. Za ovo polje.
Kao dodatak, razmotrite sljedeću naredbu:
UČITAJ PODATKE LOKALNE INFILE "D:\zapros.txt" U TABLICU osobe; Što mislite da smo sada napravili?! I učinili smo sljedeće: dodali podatke u tablicu osoba iz datoteke zahtjevi.txt, koji se nalazi na pogonu D. Informacije u datoteci trebaju imati sljedeću strukturu:
Struktura podataka datoteke mora ispunjavati sljedeće zahtjeve:
- Svaki novi unos treba opisati u novom retku
- Podaci moraju biti navedeni za apsolutno sva polja. Kao što vidite, naveli smo vrijednost NULL za id polje, jer se ono automatski povećava, tako da će MySQL sam unijeti potrebnu vrijednost.
- Polja su međusobno odvojena tabulatorom (tipka Tab).
- Informacije koje unesete moraju odgovarati tipovima podataka određenog polja. To je, na primjer, datum u formatu GGGG-MM-DD, cijeli broj za cijeli broj itd.
Tablica zanimanja:
Tablica osoba:
prvo_ime | prezime | dobi | datum_registracije | zemlja | struka |
Leonid | Bilak | 45 | 2012-06-20 | 2 | 1 |
Jurij | Nazarov | 22 | 2012-06-21 | 3 | 1 |
Alla | Savenko | 25 | 2012-06-22 | 2 | 3 |
Irina | Nikolajeva | 31 | 2012-06-22 | 1 | 3 |
Obavezno dodajte te unose jer će nam trebati za proučavanje SELECT naredbe (odabir informacija iz baze podataka), što ćemo pogledati u sljedećem (četvrtom) članku o proučavanju SQL upita.
SQL INSERT INTO i INSERT SELECT naredbe koriste se za umetanje novih redaka u tablicu. Postoje dva načina korištenja uputa:
- Samo vrijednosti: Prva metoda uključuje određivanje samo vrijednosti podataka koje treba umetnuti bez naziva stupaca.
Sintaksa:
INSERT INTO table_name VALUES (vrijednost1, vrijednost2, vrijednost3,...); table_name: naziv tablice. vrijednost1, vrijednost2,.. : vrijednosti prvog stupca, drugog stupca,... za novi zapis
- Imena i vrijednosti stupaca: Druga metoda navodi nazive stupaca i vrijednosti redaka za umetanje:
Sintaksa:
INSERT INTO table_name (column1, column2, column3,..) VALUES (value1, value2, value3,...); table_name: naziv tablice. stupac1: naziv prvog stupca, drugog stupca... vrijednost1, vrijednost2,.. : vrijednosti prvog stupca, drugog stupca,... za novi zapis
Zahtjevi:
Metoda 1 ( umetanje samo vrijednosti):
INSERT INTO Student VALUES ("5","HARSH","WEST BENGAL","8759770477","19");
rezultat:
Nakon upotrebe INSERT INTO SELECT, tablica učenika sada će izgledati ovako:
ROLA_BR | IME | ADRESA | TELEFON | Dob |
1 | Ovan | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SUREŠ | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
5 | OŠTRO | ZAPADNI BENGAL | 8759770477 | 19 |
Metoda 2 ( umetanje vrijednosti samo u određene stupce):
INSERT INTO Student (ROLL_NO, IME, Age) VALUES ("5","PRATIK","19");
rezultat:
Tablica učenika sada će izgledati ovako:
ROLA_BR | IME | ADRESA | TELEFON | Dob |
1 | Ovan | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SUREŠ | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
5 | PRATIK | ništavan | ništavan | 19 |
Imajte na umu da su stupci za koje nisu navedene vrijednosti postavljeni na null.
Korištenje SELECT u INSERT INTO iskazu
Možete koristiti naredbu MySQL INSERT SELECT za kopiranje redaka iz jedne tablice i njihovo umetanje u drugu.
Korištenje ove izjave je slično korištenju INSERT INTO. Razlika je u tome što se izjava SELECT koristi za odabir podataka iz druge tablice. Ispod su razne načine koristeći INSERT INTO SELECT :
- Umetnite sve stupce tablice: Možete kopirati sve podatke u tablici i zalijepiti ih u drugu tablicu.
Sintaksa:
INSERT INTO prva_tablica SELECT * FROM druga_tablica; prva_tablica: ime prve tablice. second_table: ime druge tablice.
Koristili smo naredbu SELECT za kopiranje podataka iz jedne tablice i naredbu INSERT INTO za umetanje u drugu.
- Umetanje pojedinačnih stupaca tablice. Možete kopirati samo one stupce tablice koje želite zalijepiti u drugu tablicu.
Sintaksa:
INSERT INTO first_table(column_names1) SELECT column_names2 FROM second_table; prva_tablica: ime prve tablice. second_table: ime druge tablice. col_names1: nazivi stupaca odvojeni zarezom(,) za tablicu 1. col_names2: nazivi stupaca odvojeni zarezom(,) za tablicu 2.
Koristili smo naredbu SELECT za kopiranje podataka samo iz odabranih stupaca druge tablice i naredbu MySQL INSERT INTO SELECT za umetanje u prvu tablicu.
- Kopiranje određenih redaka iz tablice. Možete kopirati određene retke iz tablice da biste ih kasnije zalijepili u drugu tablicu pomoću klauzule WHERE s klauzulom SELECT. U ovom slučaju morate upotrijebiti odgovarajući uvjet u WHERE.
Sintaksa:
Tablica 2: Bočni učenik
ROLA_BR | IME | ADRESA | TELEFON | Dob |
7 | SOUVIK | BUDALA | 9876543210 | 18 |
8 | NIRAJ | NOIDA | 9786543210 | 19 |
9 | NEKAKO | ROHTAK | 9687543210 | 20 |
Zahtjevi:
Metoda 1 ( umetnite sve retke i stupce):
INSERT INTO Student SELECT * FROM LateralStudent;
rezultat:
Ovaj će upit umetnuti sve podatke iz tablice LateralStudent u tablicu Student. Nakon korištenja SQL INSERT INTO SELECT, tablica Student će izgledati ovako:
ROLA_BR | IME | ADRESA | TELEFON | Dob |
1 | Ovan | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SUREŠ | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | BUDALA | 9876543210 | 18 |
8 | NIRAJ | NOIDA | 9786543210 | 19 |
9 | NEKAKO | ROHTAK | 9687543210 | 20 |
Metoda 2 ( umetanje pojedinačnih stupaca):
INSERT INTO Student(ROLL_NO,NAME,Age) SELECT ROLL_NO, NAME, Age FROM LateralStudent;
rezultat:
Ovaj će upit umetnuti podatke iz stupaca ROLL_NO, NAME i Age tablice LateralStudent u tablicu Student. Preostali stupci tablice Student bit će postavljeni na null. Nakon korištenja SQL INSERT SELECT, tablica će izgledati ovako:
ROLA_BR | IME | ADRESA | TELEFON | Dob |
1 | Ovan | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SUREŠ | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | Null | ništavan | 18 |
8 | NIRAJ | Null | ništavan | 19 |
9 | NEKAKO | Null | ništavan | 20 |
- Odabir određenih redaka za umetanje:
rezultat:
Ovaj će upit odabrati samo prvi red iz tablice LateralStudent za umetanje u tablicu Student. Nakon korištenja INSERT SELECT, tablica će izgledati ovako:
ROLA_BR | IME | ADRESA | TELEFON | Dob |
1 | Ovan | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SUREŠ | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | BUDALA | 9876543210 | 18 |
Ova publikacija je prijevod članka “SQL INSERT INTO Statement”, koji je pripremio prijateljski projektni tim
U prethodnim smo odjeljcima pogledali posao dohvaćanja podataka iz unaprijed stvorenih tablica. Sada je vrijeme da shvatimo kako možemo stvarati/brisati tablice, dodavati nove zapise i brisati stare. Za ove namjene u SQL Postoje operateri kao što su: STVORITI- kreira tablicu, PROMIJENI- mijenja strukturu tablice, PAD- briše tablicu ili polje, UMETNUTI- dodaje podatke u tablicu. Počnimo se upoznavati s ovom skupinom operatera od operatera UMETNUTI.
1. Dodavanje cijelih linija
Kao što ime govori, operater UMETNUTI koristi se za umetanje (dodavanje) redaka u tablicu baze podataka. Dodavanje se može izvršiti na nekoliko načina:
- - dodaj jedan puna linija
- - dodati dio linije
- - dodajte rezultate upita.
Dakle, da bismo dodali novi red u tablicu, moramo navesti naziv tablice, navesti nazive stupaca i navesti vrijednost za svaki stupac pomoću konstrukcije UMETNI U naziv_tablice (polje1, polje2 ...) VRIJEDNOSTI (vrijednost1, vrijednost2...). Pogledajmo primjer.
UMETNI U VRIJEDNOSTI prodavatelja (ID, adresa, grad, ime_prodavatelja, država).("6", "1st Street", "Los Angeles", "Harry Monroe", "SAD")
Također možete promijeniti redoslijed naziva stupaca, ali u isto vrijeme morate promijeniti redoslijed vrijednosti u parametru VRIJEDNOSTI.
2. Dodavanje dijela linija
U prethodnom primjeru, kada se koristi operator UMETNUTI eksplicitno smo označili nazive stupaca tablice. Koristeći ovu sintaksu, možemo preskočiti neke stupce. To znači da unosite vrijednosti za neke stupce, ali ih ne dajete za druge. Na primjer:
UMETNI U VRIJEDNOSTI prodavatelja (ID, grad, ime prodavatelja).("6", "Los Angeles", "Harry Monroe")
U ovom primjeru nismo naveli vrijednost za dva stupca Adresa I Zemlja. Neke stupce možete isključiti iz izjave UMETNI U, ako to dopušta definiciju tablice. U tom slučaju mora biti ispunjen jedan od uvjeta: ovaj stupac je definiran kao valjan NULL(odsutnost bilo koje vrijednosti) ili navedene zadane vrijednosti u definiciji tablice. To znači da će se koristiti zadana vrijednost ako nije navedena vrijednost. Ako vam nedostaje stupac iz tablice koja ne dopušta pojavljivanje vrijednosti u svojim recima NULL i nema definiranu zadanu vrijednost, DBMS će generirati poruku o pogrešci i red neće biti dodan.
3. Dodavanje odabranih podataka
U prethodnim smo primjerima unosili podatke u tablice, unoseći ih ručno u upit. Međutim, operater UMETNI U omogućuje automatizaciju ovog procesa ako želimo umetnuti podatke iz druge tablice. U tu svrhu u SQL-u postoji takva konstrukcija kao INSERT INTO ... SELECT .... Ovaj dizajn vam omogućuje da istovremeno odaberete podatke iz jedne tablice i umetnete ih u drugu. Pretpostavimo da imamo drugu tablicu Prodavači_EU s popisom prodavača naše robe u Europi i trebamo ih dodati u opću tablicu Prodavači. Struktura ovih tablica je ista (isti broj stupaca i ista imena), ali su podaci različiti. Da bismo to učinili, možemo napisati sljedeći upit:
INSERT INTO Prodavatelji (ID, adresa, grad, ime prodavatelja, država) SELECTID, adresa, grad, ime prodavatelja, država FROM Sellers_EU
Morate obratiti pozornost da se vrijednosti internih ključeva ne ponavljaju (polje ID), inače će doći do pogreške. Operater ODABERI može uključivati i prijedloge GDJE za filtriranje podataka. Također treba napomenuti da DBMS ne obraća pažnju na nazive stupaca sadržanih u iskazu ODABERI, samo joj je bitan redoslijed kojim su poredani. Stoga, podaci u prvom navedenom stupcu koji je odabran zbog ODABERI, u svakom slučaju će se popuniti prvi stupac tablice Prodavači, navedeno nakon operatora UMETNI U, bez obzira na naziv polja.
4. Kopiranje podataka iz jedne tablice u drugu
Često pri radu s bazama podataka postoji potreba za stvaranjem kopija bilo koje tablice u svrhu sigurnosne kopije ili izmjene. Za izradu pune kopije tablice, SQL daje zasebnu izjavu ODABERI U. Na primjer, moramo stvoriti kopiju tablice Prodavači, morat ćete napisati zahtjev na sljedeći način:
SELECT * INTO Sellers_new FROM Sellers
Za razliku od prethodnog dizajna INSERT INTO ... SELECT ... Kada se podaci dodaju u postojeću tablicu, dizajn kopira podatke u novu tablicu. Također možete reći da prva konstrukcija uvozi podatke, a druga izvozi. Prilikom korištenja dizajna ODABIR ... U ... IZ ... Treba uzeti u obzir sljedeće:
- - možete koristiti bilo koje rečenice u operatoru ODABERI, kao što je GRUPIRAJ PO I IMAJUĆI
- - možete koristiti spajanje za dodavanje podataka iz više tablica
- - podaci se mogu dodavati samo u jednu tablicu, bez obzira iz koliko tablica su preuzeti.
Ovaj članak je posvećen popunjavanju tablica baze podataka podacima, odnosno proučavat ćemo SQL naredbe za umetanje novih zapisa. Treba reći da se snimanje u tablicu može izvršiti na dva načina:
Metoda broj 1.
Pokušajmo dodati unos o novoj zemlji u tablicu zemalja. Sintaksa dodavanja bit će sljedeća:
INSERT INTO table_name (field_1, field_2, ...) VALUES (Vrijednost_1, Vrijednost_2, ...); Na temelju naše strukture tablice, SQL upit će biti ovakav:
INSERT INTO countries (country_name, acronym_name) VALUES ("Rusija", "RU"); Tako smo u našu tablicu dodali unos o zemlji “Rusija”. Ovdje bi sve trebalo biti jasno i jednostavno, glavna stvar je da pažljivo pogledate koja polja označavate u prvim zagradama, au drugom napišite vrijednosti istim redoslijedom.
Metoda br. 2.
Drugi način je, po meni, malo jednostavniji, jer vidite što dodjeljujete i kojem polju. Vjerujte mi, ako tablica ima ogroman broj stupaca, vrlo je lako zbuniti ili previdjeti redoslijed polja u prvim i redoslijed vrijednosti u drugim zagradama. Sintaksa druge metode je:
INSERT INTO table_name SET polje_1 = Vrijednost_1, polje_2 = Vrijednost_2, ... ; Iskoristimo ovaj primjer da dodamo neke informacije u tablicu. osoba, budući da ima više polja, a prednost druge metode će se odmah osjetiti:
INSERT INTO osobe SET first_name="Ivan", last_name="Dulin", registration_date="2012-06-14", country="1"; Sada naša tablica sadrži sljedeće podatke:
Vjerojatno ste primijetili da nismo naveli vrijednost za dob, ali se pokazalo da je popunjena... Sve je točno - za ovo polje postavili smo zadanu vrijednost na 25. Tako je sada naš Ivan Dulin u bazi podataka s dob od 25 godina. Možda nije najbolji primjer postaviti zadanu vrijednost za polje dobi, ali takva svojstva možete postaviti za polja kao što su, na primjer, korisnička ocjena stranice ili broj pregleda stranice. U početku su postavljeni na 0.
Također biste trebali obratiti pozornost na format datuma u MySQL-u: GGGG-MM-DD. Ako se toga ne pridržavate, vaši unosi jednostavno neće biti uneseni u tablicu.
Kao što vidite, polje profesije je popunjeno kao NULL, ovo je prazna vrijednost. Za ovo polje postavili smo svojstvo "neobavezno (NULL)".
Kao dodatak, razmotrite sljedeću naredbu:
UČITAJ PODATKE LOKALNE INFILE "D:\zapros.txt" U TABLICU osobe; Što mislite da smo sada napravili?! I učinili smo sljedeće: dodali podatke u tablicu osoba iz datoteke zahtjevi.txt, koji se nalazi na pogonu D. Informacije u datoteci trebaju imati sljedeću strukturu:
Struktura podataka datoteke mora ispunjavati sljedeće zahtjeve:
- Svaki novi unos mora biti opisan u novom retku
- Podaci moraju biti navedeni za apsolutno sva polja. Kao što vidite, naveli smo vrijednost NULL za id polje, jer se ono automatski povećava, tako da će MySQL sam unijeti potrebnu vrijednost.
- Polja su međusobno odvojena tabulatorom (tipka Tab).
- Informacije koje unesete moraju odgovarati tipovima podataka određenog polja. To je, na primjer, datum u formatu GGGG-MM-DD, cijeli broj za cijeli broj itd.
Tablica zanimanja:
Tablica osoba:
prvo_ime | prezime | dobi | datum_registracije | zemlja | struka |
Leonid | Bilak | 45 | 2012-06-20 | 2 | 1 |
Jurij | Nazarov | 22 | 2012-06-21 | 3 | 1 |
Alla | Savenko | 25 | 2012-06-22 | 2 | 3 |
Irina | Nikolajeva | 31 | 2012-06-22 | 1 | 3 |
Obavezno dodajte te unose jer će nam trebati za proučavanje SELECT naredbe (odabir informacija iz baze podataka), što ćemo pogledati u sljedećem (četvrtom) članku o proučavanju SQL upita.