Sintaksa u sql upitima za umetanje. SQL upit INSERT INTO - ispunite bazu podataka informacijama. SQL INSERT INTO SELECT, Sintaksa

sql upit INSERT INTO ima smisla kada je kreirana tablica baze podataka. Odnosno, tabela postoji, ima ime, kreirane redove i kolone. tablicu kreira operator: , tablicu mijenja operator .

sql upit INSERT INTO - sintaksa upita

sql upit INSERT INTO ima sljedeću sintaksu:

INSERT INTO table_name (u zagradama, ako je potrebno, umetnite listu kolona u koje želite da umetnete podatke) VRIJEDNOSTI umetnuti podaci1, umetnuti podaci2, umetnuti podaci3.

Možete umetnuti opciju IGNORE između INSERT i INTRO. Nije potrebno. Potrebno za zaštitu primarnih ključeva prilikom uređivanja tabele. U suprotnom, ako dođe do dupliciranja primarnih ključeva tokom uređivanja, tada će prilikom umetanja opcije IGNORE prvi red sa primarnim ključem ostati u tabeli koja se uređuje, a ostali primarni ključevi će biti obrisani. Podrazumevano izostavljamo ovu opciju.

Postoje opcione opcije LOW_PRIORITY i DELAYED. Oni određuju prioritete za dodavanje informacija u bazu podataka. Prvi specificira čekanje da se baza podataka oslobodi, drugi znači baferiranje informacija.

Red u upitu: INSERT sa frazom VALUES će vam omogućiti da dodate jedan red u tablicu baze podataka. Klauzula VALUES sadrži vrijednosti ovih podataka.

Podupiti se mogu specificirati umjesto fraze VALUES. INSERT sa potupitom dodaje redove koje je podupit vratio u tabelu. Poslužitelj baze podataka obrađuje podupit i umeće sve vraćene redove u tablicu. Server ne umeće redove osim ako ih potupit ne izabere.

  • podupit_1 - podupit koji server obrađuje na isti način kao i pogled
  • subquery_2 je potupit koji vraća redove umetnute u tablicu. Lista ovog potupita mora imati isti broj stupaca kao lista stupaca INSERT.

Potupiti se praktično ne koriste u MySQL bazi podataka.

Primjeri sql upita INSERT INTO u MySQL bazi podataka

Ubacujemo nove redove u MySQL bazu podataka pomoću naredbe INSERT INTRO.

Prvi primjer.

Umetnite nove redove u tablicu table_name.

INSERT INTO table_name VALUES ('2′,'145′,'1′,'name');

To znači da želimo da ubacimo vrijednosti 2,145,1,name u kolone tablice table_name. Pošto kolone nisu specificirane, vrijednosti se popunjavaju u svim stupcima tabele.

Primjer dva.

Umetnite informacije u potrebne (specificirane) stupce tablice table_name.

INSERT INTO table_name (client_customer, client_subclient, client_mail) VRIJEDNOSTI ('name1','subname1',' [email protected]′), (‘ime2′,’podnaziv2′,’ [email protected]′), (‘ime3′,’podnaziv3′,(’ [email protected]′);

Igor Serov posebno za sajt "".

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: STVORITI- 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 jednu punu liniju
  • - 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 stupce, ali ih ne dajete za druge. Na primjer:

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

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 tom 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 prethodnom primjeru umetnuli smo podatke u tabele tako što smo ih uneli 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đe 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 podaci dodaju postojećoj tabeli, dizajn 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.

Tim dodaje redove u tabelu ili prikaz glavne tabele.

Sintaksa naredbe Sql INSERT

Umetni sintaksu komande


Osnovne ključne riječi i parametri naredbe INSERT
  • shema- identifikator dozvole, obično odgovara imenu nekog korisnika
  • pogled tabele- naziv tabele u koju treba umetnuti redove; ako je naveden pogled, redovi se ubacuju u glavnu tabelu pogleda
  • podupit_1- potupit koji server obrađuje na isti način kao i pogled
  • kolona- tablicu ili kolonu pogleda u koju se unosi vrijednost iz fraze za svaki umetnuti red VRIJEDNOSTI ili podupit; ako je jedna od kolona tablice izostavljena sa ove liste, vrijednost stupca za umetnuti red je zadana vrijednost kolone definirana kada je tablica kreirana. Ako je lista kolona potpuno izostavljena, klauzula VRIJEDNOSTI ili upit mora odrediti vrijednosti za sve kolone u tabeli
  • VRIJEDNOSTI- definira niz vrijednosti koji će biti umetnuti u tablicu ili prikaz; značenje mora biti definisano u rečenici VRIJEDNOSTI za svaku kolonu na listi kolona
  • podupit_2- potupit koji vraća redove umetnute u tabelu; lista za odabir ovog potupita mora imati isti broj stupaca kao lista stupaca izraza

Izjava sa frazom VRIJEDNOSTI dodaje jedan red u tabelu. Ovaj red sadrži vrijednosti definirane frazom VRIJEDNOSTI.
Izjava sa podupit umjesto fraze VRIJEDNOSTI dodaje sve redove koje je vratio podupit u tabelu. Server obrađuje podupit i umeće svaki vraćeni red u tabelu. Ako potupit ne izabere nijedan red, server ne umeće nijedan red u tabelu.
Potupit može pristupiti bilo kojoj tabeli ili pogledu, uključujući ciljnu tabelu tvrdnji . Server dodeljuje vrednosti poljima u novim redovima na osnovu unutrašnje pozicije kolona u tabeli i redosleda vrednosti fraze VRIJEDNOSTI ili na listi za odabir upita. Ako bilo koja kolona nedostaje na listi kolona, ​​server im dodeljuje podrazumevane vrednosti definisane kada je tabela kreirana. Ako bilo koja od ovih kolona ima ograničenje NOT NULL tada server vraća grešku koja ukazuje da je ograničenje prekršeno i prekida naredbu INSERT.
Kada se izda INSERT izraz, omogućen je svaki INSERT okidač definiran u tablici.

UMETNI U Primjer 1

INSERT INTO dept VRIJEDNOSTI(50, "PROIZVODI", "SAN FRANCISCO");

INSERT INTO Kupci (grad, cname, cnum) VRIJEDNOSTI('London', 'Hoffman', 2001);

UMETNI U Primjer 2
Sljedeća komanda kopira podatke o zaposlenima kompanije čije provizije prelaze 25% prihoda u tabelu bonusa:

INSERT INTO bonus SELECT ename, job, sal, comm FROM emp WHERE comm > 0,25 * sal;

UMETNI U Primjer 3
Ako treba da ubacite NULL-vrijednost, morate je navesti kao normalnu vrijednost na sljedeći način:

INSERT INTO VRIJEDNOSTI prodavača (1001,'Peel',NULL,12);

UMETNI U Primjer 4
Naredba se može koristiti za preuzimanje vrijednosti iz jedne tablice i postavljanje u drugu pomoću upita. Da biste to učinili, dovoljno je zamijeniti rečenicu VRIJEDNOSTI na odgovarajući zahtjev:

INSERT INTO Londonstaff SELECT * FROM Salesspeople WHERE city = 'London';

MySQL INSERT

Da biste umetnuli nove redove u MySQL bazu podataka, koristite INSERT naredba, primjeri naredbi su dati u nastavku:
UMETNI U Primjer 1.
Umetanje novog reda u tablicu table_name.

INSERT INTO

UMETNI U Primjer 2.
Umetanje novog reda u tablicu table_name koji označava umetanje podataka u kolone koje su nam potrebne.

INSERT INTO table_name VALUES('1','165','0','name');

U bazi podataka MySQL Jednom naredbom moguće je umetnuti više novih linija.
UMETNI U Primjer 3.
Umetanje više redova u tablicu table_name.

INSERT INTO table_name (tbl_id, chislo, chislotwo, ime) VRIJEDNOSTI ('1′,'159′,'34','name1′), ('2′,'14','61','name2′), ('3 ′,'356′,'8′,'name3');

Koristeći SQL, možete kopirati informacije iz jedne tablice u drugu.

Naredba INSERT INTO SELECT kopira podatke iz jedne tablice i umeće ih u postojeću tablicu.

SQL INSERT INTO SELECT izraz,

INSERT INTO SELECT izraz bira podatke iz jedne tabele i umeće ih u postojeću tabelu. Svi postojeći redovi u ciljnoj tablici se ne mijenjaju.

SQL INSERT INTO SELECT, Sintaksa

Možemo kopirati sve kolone iz jedne tabele u drugu, postojeću tabelu:

INSERT INTO tabela 2
SELECT * FROM table1;

Ili možemo kopirati samo kolone koje želimo u drugu, postojeću tablicu:

INSERT INTO tabela 2
(naziv_stupca)
SELECT naziv(i) kolone
OD table1;

Demo verzija baze podataka

U ovom tutorijalu koristićemo dobro poznatu bazu podataka Northwind.

Ispod je izbor iz tabele "Kupci":

Korisnički brojIme klijentaKontakt osobaAdresagradPoštanski brojZemlja
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Njemačka
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Meksiko D.F. 05021 Meksiko
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Meksiko D.F. 05023 Meksiko

I izbor iz tabele "Dobavljači":

SQL INSERT INTO SELECT, Primjeri

Kopiranje samo nekoliko kolona iz "Dobavljači" u "Kupci":

Kopiranje samo njemačkih dobavljača na "Kupce".

Posljednje ažuriranje: 13.07.2017

Za dodavanje podataka koristite naredbu INSERT, koja ima sljedeću formalnu sintaksu:

INSERT table_name [(column_list)] VRIJEDNOSTI (vrijednost1, vrijednost2, ... vrijednostN)

Prvo dolazi izraz INSERT INTO, zatim u zagradama možete navesti listu kolona odvojenih zarezima u koje treba dodati podatke, a na kraju, nakon riječi VRIJEDNOSTI, vrijednosti koje treba dodati za stupce su navedene u zagrade.

Na primjer, pretpostavimo da je sljedeća baza podataka prethodno kreirana:

CREATE DATABASE productsdb; IDI KORISTI productsdb; CREATE TABLE Proizvodi (Id INT IDENTITET PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Proizvođač NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)

Dodajmo mu jedan red pomoću naredbe INSERT:

UMETNI VRIJEDNOSTI proizvoda ("iPhone 7", "Apple", 5, 52000)

Nakon uspješnog izvršenja u SQL Server Management Studiju, u polju poruke bi se trebala pojaviti poruka "1 red(ovi) pogođeni":

Vrijedi uzeti u obzir da se vrijednosti za stupce u zagradama nakon ključne riječi VALUES prosljeđuju redoslijedom kojim su deklarirane. Na primjer, u naredbi CREATE TABLE iznad, možete vidjeti da je prvi stupac Id. Ali pošto je za njega specificiran atribut IDENTITY, vrijednost ove kolone se automatski generira i može se izostaviti. Druga kolona predstavlja Naziv proizvoda, tako da će prva vrijednost, string "iPhone 7", biti proslijeđena toj koloni. Druga vrijednost - string "Apple" će biti proslijeđena trećoj koloni Manufacturer i tako dalje. Odnosno, vrijednosti se prosljeđuju u stupce na sljedeći način:

    Naziv proizvoda: "iPhone 7"

    Proizvođač: "Apple"

Također, prilikom unosa vrijednosti, možete odrediti neposredne stupce u koje će vrijednosti biti dodane:

UMETNI U proizvode (naziv proizvoda, cijena, proizvođač) VRIJEDNOSTI ("iPhone 6S", 41000, "Apple")

Ovdje je vrijednost specificirana za samo tri kolone. Štaviše, sada se vrijednosti prenose redoslijedom stupaca:

    Naziv proizvoda: "iPhone 6S"

    Proizvođač: "Apple"

Za nespecificirane stupce (u ovom slučaju ProductCount), zadana vrijednost će biti dodana ako je specificiran atribut DEFAULT ili NULL vrijednost. Međutim, nespecificirani stupci moraju biti nullable ili imati DEFAULT atribut.

Također možemo dodati nekoliko redova odjednom:

UMETNI U proizvode VRIJEDNOSTI ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)

U ovom slučaju, tri reda će biti dodana u tabelu.

Također, prilikom dodavanja, možemo odrediti da kolona treba imati zadanu vrijednost koristeći DEFAULT ključnu riječ ili NULL vrijednost:

UMETNI U proizvode (Naziv proizvoda, Proizvođač, Broj proizvoda, Cijena) VRIJEDNOSTI ("Mi6", "Xiaomi", ZADANO, 28000)

U ovom slučaju će se koristiti zadana vrijednost za stupac ProductCount (ako je postavljena, ako nije, onda NULL).

Ako svi stupci imaju DEFAULT atribut koji specificira zadanu vrijednost ili su nullable, možete umetnuti zadane vrijednosti za sve stupce:

INSERT INTO Products ZADANE VRIJEDNOSTI

Ali ako uzmemo tablicu Products, tada će takva naredba propasti s greškom, budući da nekoliko polja nemaju atribut DEFAULT i istovremeno ne dozvoljavaju vrijednost NULL.