Dodavanje sql podataka. SQL upit za dodavanje i brisanje zapisa

16.09.2023

U prethodnim odjeljcima, pogledali smo rad preuzimanja podataka iz unaprijed kreiranih tabela. Sada je vrijeme da shvatimo kako možemo kreirati/brisati tabele, dodati nove zapise i izbrisati stare. Za ove namjene u SQL Postoje operateri kao što su: CREATE- kreira tabelu, ALTER- menja strukturu tabele, DROP- briše tabelu ili polje, INSERT- dodaje podatke u tabelu. Počnimo se upoznavati sa ovom grupom operatora od operatora INSERT.

1. Dodavanje cijelih linija

Kao što ime govori, operater INSERT koristi se za umetanje (dodavanje) redova u tabelu baze podataka. Dodavanje se može izvršiti na nekoliko načina:

  • - dodati jedan puni red
  • - dodati dio reda
  • - dodati rezultate upita.

Dakle, da bismo dodali novi red u tabelu, moramo da navedemo ime tabele, navedemo imena kolona i navedemo vrednost za svaku kolonu koristeći konstrukciju INSERT INTO table_name (polje1, polje2 ...) VRIJEDNOSTI (vrijednost1, vrijednost2...). Pogledajmo primjer.

INSERT INTO Sellers (ID, Adresa, Grad, Seller_name, Country) VRIJEDNOSTI("6", "1st Street", "Los Angeles", "Harry Monroe", "USA")

Također možete promijeniti redoslijed naziva kolona, ​​ali u isto vrijeme morate promijeniti redoslijed vrijednosti u parametru VRIJEDNOSTI.

2. Dodavanje dijela linija

U prethodnom primjeru, kada koristite operator INSERT eksplicitno smo označili nazive kolona tabele. Koristeći ovu sintaksu, možemo preskočiti neke kolone. To znači da unosite vrijednosti za neke kolone, ali ih ne dajete za druge. na primjer:

INSERT INTO Sellers (ID, City, Seller_name) VRIJEDNOSTI("6", "Los Angeles", "Harry Monroe")

IN u ovom primjeru nismo naveli vrijednost za dvije kolone Adresa I Država. Neke kolone možete isključiti iz izjave INSERT INTO, ako to dozvoljava definiciju tabele. U ovom slučaju mora biti ispunjen jedan od uslova: ova kolona je definirana kao važeća NULL(odsustvo bilo koje vrijednosti) ili specificirana zadana vrijednost u definiciji tablice. To znači da ako nije navedena vrijednost, koristit će se zadana vrijednost. Ako vam nedostaje kolona iz tabele koja ne dozvoljava da se vrednosti pojavljuju u svojim redovima NULL i nema definiranu zadanu vrijednost, DBMS će generirati poruku o grešci i red neće biti dodan.

3. Dodavanje odabranih podataka

U prethodnim primjerima ubacili smo podatke u tabele, unoseći ih ručno u upit. Međutim, operater INSERT INTO omogućava nam da automatizujemo ovaj proces ako želimo da ubacimo podatke iz druge tabele. U tu svrhu u SQL-u postoji takva konstrukcija kao INSERT IN... SELECT .... Ovaj dizajn vam omogućava da istovremeno odaberete podatke iz jedne tabele i ubacite ih u drugu. Pretpostavimo da imamo još jedan sto Sellers_EU sa listom prodavaca naše robe u Evropi i moramo ih dodati u opštu tabelu Prodavci. Struktura ovih tabela je ista (isti broj kolona i ista imena), ali su podaci različiti. Da bismo to uradili, možemo napisati sljedeći upit:

INSERT INTO Sellers (ID, Adresa, Grad, Seller_name, Country) SELECTID, Adresa, Grad, Ime_prodavca, Država FROM Sellers_EU

Morate obratiti pažnju da se vrijednosti internih ključeva ne ponavljaju (polje ID), inače će doći do greške. Operater SELECT može uključivati ​​i prijedloge GDJE za filtriranje podataka. Također treba napomenuti da DBMS ne obraća pažnju na nazive kolona sadržanih u naredbi SELECT, važan joj je samo redosled kojim su poređani. Dakle, podaci u prvoj navedenoj koloni koja je odabrana zbog SELECT, će se u svakom slučaju popuniti u prvoj koloni tabele Prodavci, naveden nakon operatora INSERT INTO, bez obzira na naziv polja.

4. Kopiranje podataka iz jedne tabele u drugu

Često kada radite sa bazama podataka, postoji potreba da se kreiraju kopije bilo koje tabele u svrhu pravljenja rezervne kopije ili modifikacije. Da biste napravili potpunu kopiju tablice, SQL daje poseban izraz SELECT INTO. Na primjer, trebamo napraviti kopiju tabele Prodavci, moraćete da napišete zahtev na sledeći način:

SELECT * INTO Sellers_new FROM Sellers

Za razliku od prethodnog dizajna INSERT IN... SELECT ... kada se dodaju podaci postojeća tabela, konstrukcija kopira podatke u novu tabelu. Takođe možete reći da prva konstrukcija uvozi podatke, a druga izvozi. Kada koristite dizajn ODABIR ... U ... IZ ... Treba uzeti u obzir sljedeće:

  • - možete koristiti bilo koju rečenicu u operatoru SELECT, kao što je GROUP BY I HAVING
  • - možete koristiti spoj za dodavanje podataka iz više tabela
  • - podaci se mogu dodati samo jednoj tabeli, bez obzira iz koliko tabela su uzeti.

Opća sintaksa:

a) ubacivanje jednog nova linija do stola:

INSERT<таблица>[(kolone)]

VRIJEDNOSTI

b) Umetanje jednog ili više redova u tabelu preuzetu iz izvora navedenog u potupitu:

INSERT<таблица>[(kolone)]