ecosmak.ru

Vložiť do vybranej syntaxe Oracle. SQL dotaz INSERT INTO - naplňte databázu informáciami

Tím pridá riadky do tabuľky alebo pohľad na hlavnú tabuľku.

Syntax príkazu SQL INSERT

Vložte syntax príkazu


Základné kľúčové slová a parametre príkazu INSERT
  • schému- identifikátor povolenia, zvyčajne sa zhoduje s menom nejakého používateľa
  • tabuľkový pohľad- názov tabuľky, do ktorej sa majú vkladať riadky; ak je zadané zobrazenie, riadky sa vložia do hlavnej tabuľky zobrazenia
  • poddotaz_1- poddotaz, ktorý server spracuje rovnakým spôsobom ako pohľad
  • stĺpec- stĺpec tabuľky alebo zobrazenia, do ktorého sa pre každý vkladaný riadok zadáva hodnota z frázy HODNOTY alebo poddotaz; ak je jeden zo stĺpcov tabuľky v tomto zozname vynechaný, hodnota stĺpca pre vložený riadok je predvolená hodnota stĺpca definovaná pri vytváraní tabuľky. Ak je zoznam stĺpcov úplne vynechaný, klauzula HODNOTY alebo dotaz musí určiť hodnoty pre všetky stĺpce v tabuľke
  • HODNOTY- definuje reťazec hodnôt, ktoré budú vložené do tabuľky alebo zobrazenia; význam musí byť definovaný vo vete HODNOTY pre každý stĺpec v zozname stĺpcov
  • poddotaz_2- poddotaz, ktorý vracia riadky vložené do tabuľky; výberový zoznam tohto poddotazu musí mať rovnaký počet stĺpcov ako zoznam stĺpcov príkazov

Vyhlásenie s frázou HODNOTY pridá do tabuľky jeden riadok. Tento riadok obsahuje hodnoty definované frázou HODNOTY.
Vyhlásenie s poddotaz namiesto frázy HODNOTY pridá všetky riadky vrátené poddotazom do tabuľky. Server spracováva poddotaz a vloží každý vrátený riadok do tabuľky. Ak poddotaz nevyberie žiadne riadky, server nevloží žiadne riadky do tabuľky.
Poddotaz môže pristupovať k akejkoľvek tabuľke alebo pohľadu, vrátane cieľovej tabuľky tvrdení . Server priraďuje hodnoty poliam v nových riadkoch na základe vnútornej pozície stĺpcov v tabuľke a poradia hodnôt fráz HODNOTY alebo vo výberovom zozname dotazov. Ak v zozname stĺpcov chýbajú nejaké stĺpce, server im priradí predvolené hodnoty definované pri vytváraní tabuľky. Ak má niektorý z týchto stĺpcov obmedzenie NOT NULL, server vráti chybu označujúcu, že obmedzenie bolo porušené a zruší príkaz INSERT.
Keď je zadaný príkaz INSERT, je povolený akýkoľvek spúšťač INSERT definovaný v tabuľke.

VLOŽIŤ DO Príklad 1

VLOŽIŤ DO dlh HODNOTY(50, "PRODUKTY", "SAN FRANCISCO");

VLOŽIŤ DO Zákazníci (mesto, cname, cnum) HODNOTY('Londýn', 'Hoffman', 2001);

VLOŽIŤ DO Príkladu 2
Nasledujúci príkaz skopíruje údaje zamestnancov spoločnosti, ktorých provízie presahujú 25% príjmu, do tabuľky bonusov:

VLOŽIŤ DO bonus SELECT ename, job, sal, comm FROM emp WHERE comm > 0,25 * sal;

VLOŽIŤ DO Príkladu 3
Ak potrebujete vložiť NULOVÝ-hodnota, musíte ju zadať ako normálnu hodnotu takto:

VLOŽIŤ DO Predajcovia VALUES (1001,'Peel',NULL,12);

VLOŽIŤ DO Príkladu 4
Príkaz možno použiť na načítanie hodnôt z jednej tabuľky a ich umiestnenie do inej pomocou dotazu. Na to stačí nahradiť vetu HODNOTY na príslušnú žiadosť:

VLOŽIŤ DO Londonstaff SELECT * FROM Predajcovia WHERE mesto = 'Londýn';

VLOŽENIE MySQL

Ak chcete vložiť nové riadky do databázy MySQL, použite príkaz INSERT, príklady príkazov sú uvedené nižšie:
VLOŽIŤ DO Príklad 1.
Vloženie nového riadku do tabuľky názov_tabulky.

VLOŽIŤ DO

VLOŽIŤ DO Príkladu 2.
Vloženie nového riadku do tabuľky názov_tabulky označujúce vloženie údajov do stĺpcov, ktoré potrebujeme.

VLOŽIŤ DO názov_tabuľky VALUES('1','165','0','názov');

V databáze MySQL Pomocou jedného príkazu je možné vložiť viacero nových riadkov.
VLOŽIŤ DO Príkladu 3.
Vloženie viacerých riadkov do tabuľky názov_tabulky.

VLOŽIŤ DO table_name (tbl_id, chislo, chislotwo, name) VALUES ('1′,'159′,'34','name1′), ('2′,'14','61','name2′), ('3 ','356','8','meno3');

Tento príkaz pridá jeden alebo viac záznamov do tabuľky (vykoná pripájací dotaz).

Syntax

Žiadosť o pridanie viacerých záznamov:

VLOŽIŤ DO konečný_objekt [(pole1[, pole2[, ...]])]
VYBERTE [ zdroj.]pole1[, pole2[, ...]
OD tabuľkový_výraz

Žiadosť o pridanie jedného záznamu:

VLOŽIŤ DO konečný_objekt [(pole1[, pole2[, ...]])]
HODNOTY ( pole1[, pole2[, ...])

Príkaz INSERT INTO pozostáva z nasledujúcich prvkov:

Časť

Popis

konečný_objekt

Názov tabuľky alebo dotazu, do ktorého sa pridávajú záznamy.

pole1, pole2

Po hádke konečný_objekt- názvy polí, do ktorých sa pridávajú údaje; po hádke zdroj- názvy polí, z ktorých sa získavajú údaje.

externá_databáza

Cesta k externej databáze. Popis cesty nájdete v článku o klauzule IN.

zdroj

Názov tabuľky alebo dotazu, z ktorého sa skopírujú záznamy.

tabuľkový_výraz

Jeden alebo viac názvov tabuliek, z ktorých chcete získať záznamy. Tento argument môže byť názov jednotlivej tabuľky, výsledný výraz vytvorený pomocou INNER JOIN, LEFT JOIN alebo RIGHT JOIN alebo uložený dotaz.

hodnota1, hodnota2

Hodnoty, ktoré sa pridajú do konkrétnych polí nového záznamu. Každá hodnota sa vloží do poľa zodpovedajúceho jej pozícii v zozname: hodnota1 pridané do pole1 nový vstup, hodnota2- V pole2 atď. Hodnoty musíte oddeliť čiarkou a textové polia uzavrieť do úvodzoviek (" ").

Poznámky

Príkaz INSERT INTO môže pridať jeden záznam do tabuľky pomocou vyššie uvedenej syntaxe. V tomto prípade zadáte názvy a hodnoty pre každé pole v zázname. Musíte zadať všetky polia v zázname, ku ktorým sú priradené hodnoty, a zodpovedajúce hodnoty. Ak nezadáte hodnotu poľa, priradí sa jej predvolená hodnota alebo NULL. Záznamy sa pridávajú na koniec tabuľky.

Príkaz INSERT INTO možno použiť aj na pridanie množiny záznamov z inej tabuľky alebo dotazu pomocou klauzuly SELECT... FROM, ako je uvedené vyššie (pozri Syntax dotazu na pridávanie viacerých záznamov). V tomto prípade klauzula SELECT špecifikuje polia, ktoré sa majú pridať k zadanému konečný_objekt.

Zdroj alebo konečný_objekt môže byť tabuľka alebo dotaz. Keď je zadaný dotaz, databázový nástroj Microsoft Access pridá záznamy do všetkých tabuliek, ktoré vráti.

Použitie príkazu INSERT INTO je voliteľné. Ak je zadaný, musí predchádzať príkazu SELECT.

Ak cieľová tabuľka obsahuje primárny kľúč, uistite sa, že hodnoty, ktoré pridáte do jedného alebo viacerých polí primárneho kľúča, sú jedinečné a odlišné od NULOVÝ; inak sa záznamy nepridajú.

Ak sú záznamy pridané do tabuľky s poľom Počítadlo a chcete ich prečíslovať, do dotazu nezahŕňajte pole Počítadlo. Ak chcete zachovať pôvodné hodnoty z poľa, zahrňte do dotazu pole Počítadlo.

Záznamy môžete pridať do tabuľky v inej databáze pomocou klauzuly IN.

Ak chcete vytvoriť tabuľku, použite príkaz SELECT... INTO na vytvorenie tabuľky.

Pred spustením pridávacieho dotazu použite výberový dotaz s rovnakými výberovými kritériami na použitie výsledkov na určenie, ktoré záznamy sa pridajú.

Pripájací dotaz skopíruje záznamy z jednej alebo viacerých tabuliek do inej tabuľky. V tomto prípade zostanú tabuľky obsahujúce pridané záznamy nezmenené.

Namiesto pridávania záznamov z inej tabuľky môžete nastaviť hodnotu každého poľa v samostatnom novom zázname pomocou klauzuly VALUES. Ak je zoznam polí vynechaný, klauzula VALUES musí obsahovať zodpovedajúce hodnoty pre každé pole tabuľky; inak operácia INSERT zlyhá. Pre každý ďalší záznam, ktorý chcete vytvoriť, použite príkaz INSERT INTO spolu s klauzulou VALUES.

Ahojte všetci! Tento článok bude diskutovať o tom, ako môžete pridať údaje do tabuľky v Microsoft SQL Server, ak ste už aspoň trochu oboznámení s jazykom T-SQL, pravdepodobne ste si uvedomili, že teraz budeme hovoriť o príkaze INSERT, ako aj o tom, ako sa dá použiť na pridávanie údajov do tabuľky.

Začnime ako obvykle trochou teórie.

príkaz INSERT v T-SQL

VLOŽIŤ je inštrukcia T-SQL, ktorá je určená na pridávanie údajov do tabuľky, t.j. vytváranie nových záznamov. Túto inštrukciu je možné použiť na pridanie jedného riadku do tabuľky aj na hromadné vkladanie údajov. Príkaz INSERT vyžaduje povolenie na vloženie údajov ( VLOŽIŤ) do cieľovej tabuľky.

Existuje niekoľko spôsobov, ako použiť príkaz INSERT na časti údajov, ktoré je potrebné vložiť:

  • Výpis konkrétnych hodnôt na vloženie;
  • Zadanie množiny údajov ako dopytu SELECT;
  • Zadanie množiny údajov vo forme volania procedúry, ktorá vráti tabuľkové údaje.

Zjednodušená syntax

INSERT [tabuľka] ( zoznam stĺpcov...) HODNOTY ( zoznam hodnôt...) Alebo VYBERTE vzorová žiadosť Alebo VYKONAJTE postup

  • INSERT INTO je príkaz na pridanie údajov do tabuľky;
  • Tabuľka je názov cieľovej tabuľky, do ktorej chcete vložiť nové záznamy;
  • Zoznam stĺpcov je zoznam názvov stĺpcov tabuľky, do ktorých sa budú vkladať údaje, oddelených čiarkami;
  • VALUES je konštruktor hodnôt tabuľky, pomocou ktorého určujeme hodnoty, ktoré vložíme do tabuľky;
  • Zoznam hodnôt sú hodnoty, ktoré budú vložené, oddelené čiarkami. Sú uvedené v poradí, v akom sa stĺpce zobrazujú v zozname stĺpcov;
  • SELECT je dotaz na výber údajov na vloženie do tabuľky. Množina výsledkov, ktorú dotaz vráti, sa musí zhodovať so zoznamom stĺpcov;
  • EXECUTE je volanie procedúry na získanie údajov na vloženie do tabuľky. Sada výsledkov, ktorú vráti uložená procedúra, sa musí zhodovať so zoznamom stĺpcov.

Zhruba takto vyzerá zjednodušená syntax príkazu INSERT INTO, vo väčšine prípadov takto budete pridávať nové záznamy do tabuliek.

Zoznam stĺpcov, do ktorých budete údaje vkladať, nie je potrebné vypisovať, v takom prípade sa ich poradie určí na základe skutočného poradia stĺpcov v tabuľke. Toto poradie si musíte zapamätať pri zadávaní hodnôt, ktoré chcete vložiť, alebo pri písaní dotazu na výber. Osobne vám stále odporúčam uviesť zoznam stĺpcov, do ktorých plánujete pridávať údaje.

Mali by ste tiež pamätať na to, že zoznam stĺpcov a zoznam hodnôt musí obsahovať takzvané povinné stĺpce, to sú tie, ktoré nemôžu obsahovať hodnotu NULL. Ak ich nešpecifikujete a stĺpec nemá predvolenú hodnotu, dôjde k chybe.

Chcel by som tiež poznamenať, že typ údajov hodnôt, ktoré vložíte, sa musí zhodovať s typom údajov stĺpca, do ktorého sa táto hodnota vloží, alebo aspoň podporovať implicitnú konverziu. Odporúčam vám však kontrolovať typ údajov ( formát) hodnoty v zozname hodnôt aj v dotaze SELECT.

Dosť bolo teórie, prejdime k praxi.

Počiatočné údaje

Aby sme mohli do tabuľky pridať dáta, potrebujeme tabuľku samotnú, tak si ju vytvorte a skúsme do nej pridať záznamy.

Poznámka! Všetky príklady budú spustené v Microsoft SQL Server 2016 Express.

CREATE TABLE TestTable( IDENTITY(1,1) NOT NULL, (100) NOT NULL, NOT NULL)

Naša testovacia tabuľka bude obsahovať zoznam produktov s cenami.

Aj v príkladoch použijeme procedúru, ktorá vráti hodnotu tabuľky na pridanie údajov do tabuľky, takže si ju vytvorte tiež.

VYTVORIŤ POSTUP Testovací postup AKO ZAČIATOK VYBERTE názov produktu, cena OD KONCA testovacej tabuľky

Napríklad vráti údaje z novovytvorenej tabuľky TestTable.

Poznámka!

Ako viete, čítanie tohto materiálu predpokladá určitú znalosť jazyka T-SQL, takže ak vám niečo nie je jasné, odporúčam vám, aby ste sa oboznámili s nasledujúcimi materiálmi:

Príklad 1 – Pridanie nového záznamu do tabuľky pomocou konštruktora hodnôt tabuľky

Najprv skúsme pridať jeden záznam a hneď sa pozrieme na výsledok, t.j. Napíšeme žiadosť o vzorku.

INSERT INTO TestTable(ProductName, Price) VALUES ("Computer", 100) GO SELECT * FROM TestTable

Vidíte, že za názvom tabuľky sme uviedli názvy stĺpcov, do ktorých budeme pridávať údaje, oddelené čiarkami, potom sme označili kľúčové slovo HODNOTY a v zátvorkách sme tiež v rovnakom poradí, oddelené čiarkami, napísali hodnoty, ktoré chceme vložiť.

Po príkaze INSERT som napísal príkaz SELECT a oddelil ich príkazom GO.

Teraz si predstavme, že potrebujeme pridať pár riadkov. K tomu napíšeme nasledujúcu žiadosť.

INSERT INTO TestTable (Názov produktu, Cena) HODNOTY ("Počítač", 100), ("Klávesnica", 20), ("Monitor", 50) VYBRAŤ * Z testovacej tabuľky


Príklad 2 – Pridanie nových riadkov do tabuľky pomocou SELECT dotazu

Veľmi často vzniká potreba pridať do tabuľky množstvo údajov napríklad na základe výberového dotazu, t.j. VYBRAŤ. Aby sme to urobili, namiesto VALUES musíme zadať požiadavku.

INSERT INTO TestTable(ProductName, Price) SELECT ProductName, Price FROM TestTable WHERE Id >


V tomto príklade sme napísali SELECT dotaz, ktorý vracia údaje z tabuľky TestTable, no nie všetky, ale iba tie s ID väčším ako 2. A výsledok bol vložený do rovnakej tabuľky TestTable.

Ako príklad toho, ako môžete pridať záznamy do tabuľky bez zadania zoznamu stĺpcov, napíšme ďalší dotaz na vkladanie údajov, ktorý bude robiť presne to isté ako dotaz uvedený vyššie, len nebude vypisovať stĺpce na vloženie.

INSERT INTO TestTable SELECT ProductName, Price FROM TestTable WHERE Id > 2 GO SELECT * FROM TestTable


V tomto prípade sme si istí, že v tabuľke TestTable je prvý stĺpec ProductName a druhý je Cena, takže si to môžeme dovoliť napísať. V praxi je však opäť lepšie zadať zoznam stĺpcov.

Ak ste si všimli, vo všetkých príkladoch som neuviedol stĺpec Id, ale máme ho, žiadne chyby sa nevyskytli, keďže tento stĺpec má vlastnosť IDENTITY, automaticky generuje identifikátory, takže vkladanie údajov do takéhoto stĺpca sa jednoducho nedá.

Príklad 3 - Pridanie nových záznamov do tabuľky pomocou uloženej procedúry

Teraz do tabuľky vložme údaje, ktoré nám uložená procedúra vráti. Význam je tu rovnaký, namiesto VALUES a namiesto požiadavky uvádzame volanie procedúry. Ako však viete, poradie a počet stĺpcov vrátených procedúrou sa musia striktne zhodovať so zoznamom stĺpcov, ktoré sa majú vložiť ( aj keď nie je uvedený zoznam stĺpcov).

INSERT INTO TestTable (ProductName, Price) EXEC TestProcedure GO SELECT * FROM TestTable


Dúfam, že vám tento materiál pomohol pochopiť pokyny. VLOŽIŤ DO, a to je zatiaľ všetko, čo mám!

V predchádzajúcich častiach sme sa pozreli na prácu pri získavaní údajov z vopred vytvorených tabuliek. Teraz je čas zistiť, ako môžeme vytvárať/odstraňovať tabuľky, pridávať nové záznamy a odstraňovať staré. Na tieto účely v SQL Existujú operátori ako: VYTVORIŤ- vytvorí stôl, ALTER- mení štruktúru tabuľky, POKLES- vymaže tabuľku alebo pole, VLOŽIŤ- doplní údaje do tabuľky. Začnime sa oboznamovať s touto skupinou operátorov od operátora VLOŽIŤ.

1. Pridávanie celých riadkov

Ako už názov napovedá, operátor VLOŽIŤ slúži na vkladanie (pripájanie) riadkov do databázovej tabuľky. Pridávanie je možné vykonať niekoľkými spôsobmi:

  • - pridajte jeden celý riadok
  • - pridať časť riadku
  • - pridať výsledky dotazu.

Aby sme teda do tabuľky pridali nový riadok, musíme zadať názov tabuľky, vypísať názvy stĺpcov a zadať hodnotu pre každý stĺpec pomocou konštrukcie VLOŽIŤ DO názov_tabuľky (pole1, pole2 ...) HODNOTY (hodnota1, hodnota2...). Pozrime sa na príklad.

VLOŽIŤ DO HODNOT Predajcov (ID, adresa, mesto, meno predajcu, krajina).("6", "1st Street", "Los Angeles", "Harry Monroe", "USA")

Môžete tiež zmeniť poradie názvov stĺpcov, ale zároveň musíte zmeniť poradie hodnôt v parametri HODNOTY.

2. Pridanie časti riadkov

V predchádzajúcom príklade pri použití operátora VLOŽIŤ sme explicitne označili názvy stĺpcov tabuľky. Pomocou tejto syntaxe môžeme preskočiť niektoré stĺpce. To znamená, že zadáte hodnoty pre niektoré stĺpce, ale neposkytnete ich pre iné. Napríklad:

VLOŽTE DO HODNOT Predajcov (ID, Mesto, Meno Predajcu).("6", "Los Angeles", "Harry Monroe")

V tomto príklade sme neurčili hodnotu pre dva stĺpce Adresa A Krajina. Niektoré stĺpce môžete z výpisu vylúčiť VLOŽIŤ DO, ak to umožňuje definíciu tabuľky. V tomto prípade musí byť splnená jedna z podmienok: tento stĺpec je definovaný ako platný NULOVÝ(absencia akejkoľvek hodnoty) alebo špecifikovaná predvolená hodnota v definícii tabuľky. To znamená, že ak nie je zadaná žiadna hodnota, použije sa predvolená hodnota. Ak vám v tabuľke chýba stĺpec, ktorý neumožňuje zobrazenie hodnôt v riadkoch NULOVÝ a nemá definovanú predvolenú hodnotu, DBMS vygeneruje chybové hlásenie a riadok sa nepridá.

3. Pridanie vybraných údajov

V predchádzajúcom príklade sme vložili údaje do tabuliek manuálnym zadaním do dotazu. Avšak prevádzkovateľ VLOŽIŤ DO nám umožňuje automatizovať tento proces, ak chceme vložiť údaje z inej tabuľky. Na tento účel v SQL existuje taká konštrukcia ako VLOŽIŤ DO... VYBRAŤ.... Tento dizajn umožňuje súčasne vyberať údaje z jednej tabuľky a vkladať ich do inej. Predpokladajme, že máme ďalší stôl Predajcovia_EU so zoznamom predajcov nášho tovaru v Európe a potrebujeme ich doplniť do všeobecnej tabuľky Predajcovia. Štruktúra týchto tabuliek je rovnaká (rovnaký počet stĺpcov a rovnaké názvy), ale odlišné údaje. Aby sme to dosiahli, môžeme napísať nasledujúci dotaz:

VLOŽIŤ DO Predajcov (ID, Adresa, Mesto, Meno_predávajúceho, Krajina) VYBERTEID, adresa, mesto, meno predajcu, krajina FROM Sellers_EU

Musíte dávať pozor, aby sa hodnoty interných kľúčov neopakovali (pole ID), inak dôjde k chybe. Operátor VYBRAŤ môže obsahovať aj návrhy KDE na filtrovanie údajov. Treba tiež poznamenať, že DBMS nevenuje pozornosť názvom stĺpcov obsiahnutých vo výpise VYBRAŤ, dôležité je pre ňu len poradie, v akom sú usporiadané. Preto údaje v prvom špecifikovanom stĺpci, ktorý bol vybraný kvôli VYBRAŤ, sa v každom prípade vyplní do prvého stĺpca tabuľky Predajcovia, uvedené po prevádzkovateľovi VLOŽIŤ DO bez ohľadu na názov poľa.

4. Kopírovanie údajov z jednej tabuľky do druhej

Pri práci s databázami často vzniká potreba vytvárať kópie akýchkoľvek tabuliek za účelom zálohovania alebo úpravy. Ak chcete vytvoriť úplnú kópiu tabuľky, SQL poskytuje samostatný príkaz VYBERTE DO. Napríklad potrebujeme vytvoriť kópiu tabuľky Predajcovia, budete musieť napísať žiadosť takto:

SELECT * INTO Sellers_new FROM Sellers

Na rozdiel od predchádzajúceho dizajnu VLOŽIŤ DO... VYBRAŤ... Po pridaní údajov do existujúcej tabuľky návrh skopíruje údaje do novej tabuľky. Môžete tiež povedať, že prvá konštrukcia importuje dáta a druhá exportuje. Pri použití dizajnu VYBERTE... DO... Z... Treba zvážiť nasledovné:

  • - v operátorovi môžete použiť ľubovoľné vety VYBRAŤ, ako napr GROUP BY A MAJÚCE
  • - spojenie môžete použiť na pridanie údajov z viacerých tabuliek
  • - údaje je možné pridať len do jednej tabuľky, bez ohľadu na to, z koľkých tabuliek boli prevzaté.

Okrem vyššie uvedeného príkazu SELECT obsahuje jazyk DML (Data Manipulation Language) tri ďalšie príkazy: INSERT, UPDATE a DELETE. Podobne ako príkaz SELECT, aj tieto tri príkazy fungujú buď s tabuľkami alebo zobrazeniami. Tento článok sa zaoberá príkazom INSERT a ďalšie dva príkazy sú uvedené v nasledujúcom článku.

príkaz INSERT vloží riadky (alebo časti riadkov) do tabuľky. Existujú dve rôzne formy tohto pokynu:

INSERT tab_name [(col_list)] PREDVOLENÉ HODNOTY | VALUES (( DEFAULT | NULL | výraz ) [ ,...n]) INSERT INTO tab_name | view_name [(col_list)] (select_statement | execute_statement) Konvencie syntaxe

Prvá forma pokynu umožňuje vložiť jeden riadok (alebo jeho časť) do tabuľky. A druhá forma príkazu INSERT vám umožňuje vložiť do tabuľky sadu výsledkov príkazu SELECT alebo uloženú procedúru vykonanú príkazom EXECUTE. Uložená procedúra musí vrátiť údaje, ktoré sa majú vložiť do tabuľky. Pri použití s ​​príkazom INSERT môže príkaz SELECT vybrať hodnoty z inej alebo rovnakej tabuľky, do ktorej sa vkladajú údaje, pokiaľ sú typy údajov zodpovedajúcich stĺpcov kompatibilné.

Pre oba formuláre musí byť typ údajov každej vloženej hodnoty kompatibilný s typom údajov príslušného stĺpca tabuľky. Všetky reťazce a dočasné údaje musia byť uzavreté v úvodzovkách; Číselné hodnoty nemusia byť uzavreté v úvodzovkách.

Vloženie jedného riadku

Pre obe formy príkazu INSERT je explicitné zadanie zoznamu stĺpcov voliteľné. Neuvedenie stĺpcov je to isté ako zadanie všetkých stĺpcov v tabuľke.

Parameter DEFAULT VALUES vloží predvolené hodnoty pre všetky stĺpce. Stĺpce s typom údajov TIMESTAMP alebo vlastnosťou IDENTITY sa štandardne vkladajú s hodnotami, ktoré automaticky generuje systém. Pre stĺpce iných typov údajov sa vloží zodpovedajúca nenulová predvolená hodnota, ak je k dispozícii, alebo NULL v opačnom prípade. Ak stĺpec nepovoľuje hodnoty null a nemá definovanú predvolenú hodnotu, príkaz INSERT zlyhá a zobrazí sa správa.

Nižšie uvedený príklad vkladá riadky do tabuľky Zamestnanec v databáze SampleDb, čo demonštruje použitie príkazu INSERT na vloženie malého množstva údajov do databázy:

USE SampleDb; INSERT INTO zamestnanec VALUES (34990, "Andrey", "Batonov", "d1"); INSERT INTO Employee VALUES (38640, "Alexey", "Vasin", "d3");

Existujú dva rôzne spôsoby vloženia hodnôt do nového riadku. Príkaz INSERT v nižšie uvedenom príklade explicitne používa kľúčové slovo NULL a vkladá hodnotu NULL do zodpovedajúceho stĺpca:

USE SampleDb; INSERT INTO zamestnanec VALUES (34991, "Andrey", "Batonov", NULL);

Ak chcete vložiť hodnoty do niektorých (ale nie do všetkých) stĺpcov tabuľky, zvyčajne musíte tieto stĺpce explicitne špecifikovať. Nešpecifikované stĺpce musia povoliť hodnoty NULL alebo mať definovanú predvolenú hodnotu.

USE SampleDb; INSERT INTO Employee(Id, First Name, LastName) VALUES (34992, "Andrey", "Batonov");

Predchádzajúce dva príklady sú ekvivalentné. V tabuľke Zamestnanec je jediným stĺpcom, ktorý umožňuje hodnoty NULL, stĺpec DepartmentNumber a všetky ostatné stĺpce boli zakázané klauzulou NOT NULL v príkaze CREATE TABLE.

Poradie hodnôt v Ponuka VALUES Príkazy INSERT sa môžu líšiť od poradia špecifikovaného v príkaze CREATE TABLE. V tomto prípade sa ich poradie musí zhodovať s poradím, v ktorom sú príslušné stĺpce uvedené v zozname stĺpcov. Nižšie je uvedený príklad vloženia údajov v inom poradí, ako bolo pôvodné:

USE SampleDb; INSERT INTO Zamestnanec(Číslo oddelenia, Priezvisko, Id, Meno) VALUES ("d1", "Batonov", 34993, "Andrey");

Vkladanie viacerých riadkov

Druhá forma príkazu INSERT vloží do tabuľky jeden alebo viac riadkov vybratých poddotazom. Nižšie uvedený príklad ukazuje, ako vložiť riadky do tabuľky pomocou druhej formy príkazu INSERT. V tomto prípade sa vykoná dotaz na výber čísel a názvov oddelení nachádzajúcich sa v Moskve a výsledná sada výsledkov sa načíta do novej tabuľky vytvorenej skôr.

Nová tabuľka MoscowDepartment vytvorená vo vyššie uvedenom príklade má rovnaké stĺpce ako existujúca tabuľka Department, s výnimkou chýbajúceho stĺpca Location. Poddotaz v príkaze INSERT vyberie všetky riadky v tabuľke oddelenia, pre ktoré je hodnota stĺpca Location "Moskva", ktoré sa potom vložia do novej tabuľky vytvorenej na začiatku dotazu.

Nižšie uvedený príklad ukazuje ďalší spôsob vkladania riadkov do tabuľky pomocou druhej formy príkazu INSERT. V tomto prípade sa vykoná dotaz na výber personálnych čísiel, čísiel projektov a dátumov začiatku projektu pre všetkých zamestnancov s pozíciou „Manažér“, ktorí pracujú na projekte p2 a potom načíta výsledný súbor výsledkov do novej tabuľky vytvorenej na začiatku dotaz:

USE SampleDb; CREATE TABLE ManagerTeam (EmpId INT NOT NULL, ProjectNumber CHAR (4) NOT NULL, EnterDate DATE); INSERT INTO ManagerTeam (EmpId, ProjectNumber, EnterDate) SELECT EmpId, ProjectNumber, EnterDate FROM Works_on WHERE Job = "Manažér";

Pred vložením riadkov pomocou príkazu INSERT boli tabuľky MoscowDepartment a ManagerTeam (v príkladoch vyššie) prázdne. Ak tabuľka už existovala a obsahovala riadky s údajmi, pridali by sa do nej nové riadky.

Načítava...