Čo je INSERT INTO?

Hlavným cieľom databázových systémov je ukladanie údajov do tabuliek. Údaje sú zvyčajne dodávané aplikačnými programami, ktoré bežia nad databázou. Za týmto účelom SQL Príkaz INSERT, ktorý sa používa na ukladanie údajov do tabuľky. The Príkaz INSERT vytvorí nový riadok v tabuľke na uloženie údajov.

Základná syntax

Pozrime sa na základnú syntax príkazu SQL INSERT zobrazenú nižšie.

INSERT INTO `názov_tabuľky`(stĺpec_1,stĺpec_2,...) HODNOTY (hodnota_1,hodnota_2,...);

  • INSERT INTO `názov_tabuľky` je príkaz, ktorý hovorí serveru MySQL, aby pridal nový riadok do tabuľky s názvom `názov_tabuľky`.
  • (stĺpec_1,stĺpec_2,...) určuje stĺpce, ktoré sa majú aktualizovať v novom riadku
  • VALUES (hodnota_1, hodnota_2,...) určuje hodnoty, ktoré sa majú pridať do nového riadku

Pri dodávaní hodnôt údajov, ktoré sa majú vložiť do novej tabuľky, by sa pri práci s rôznymi typmi údajov malo zvážiť nasledujúce.

  • Typy údajov reťazca- všetky hodnoty reťazca by mali byť uzavreté v jednoduchých úvodzovkách.
  • Číselné typy údajov- všetky číselné hodnoty by sa mali uviesť priamo bez toho, aby boli uzavreté v jednoduchých alebo dvojitých úvodzovkách.
  • Typy údajov dátumu- hodnoty dátumu uzavrieť do jednoduchých úvodzoviek vo formáte „RRRR-MM-DD“.

Príklad:

Predpokladajme, že máme nasledujúci zoznam nových členov knižnice, ktoré je potrebné pridať do databázy.

Celé mená Dátum narodenia rod fyzická adresa Poštová adresa kontaktné číslo Emailová adresa
Leonard Hofstadter Muž Woodcrest 0845738767
Sheldon Cooper Muž Woodcrest 0976736763
Rajesh Koothrappali Muž fairview 0938867763
Leslie Winkle 14/02/1984 Muž 0987636553
Howard Wolowitz 24/08/1981 Muž Južný park P.O. Box 4563 0987786553

Poďme“ VLOŽIŤ údaje jeden po druhom. Začneme Leonardom Hofstadterom. S kontaktným číslom budeme zaobchádzať ako s číselným typom údajov a nebudeme ho uzatvárať do jednoduchých úvodzoviek.

INSERT INTO `členovia` (`celé_mená`,`pohlavie`,`fyzická_adresa`,`číslo_kontaktu`) VALUES ("Leonard Hofstadter","Muž","Woodcrest",0845738767);

Spustenie vyššie uvedeného skriptu vypustí z Leonardovho kontaktného čísla 0. Je to preto, že hodnota bude považovaná za číselnú hodnotu a nula (0) na začiatku sa vypustí, pretože nie je významná.

Aby sa predišlo takýmto problémom, hodnota musí byť uzavretá v jednoduchých úvodzovkách, ako je uvedené nižšie -

INSERT INTO `členovia` (`celé_mená`,`pohlavie`,`fyzická_adresa`,`kontaktné_číslo`) VALUES ("Sheldon Cooper","Muž","Woodcrest", "0976736763");

Vo vyššie uvedenom prípade sa nula (0) nevypustí

Zmena poradia stĺpcov nemá žiadny vplyv na dotaz INSERT, pokiaľ boli správne hodnoty namapované na správne stĺpce.

Dotaz zobrazený nižšie demonštruje vyššie uvedený bod.

INSERT INTO `členovia` (`kontaktné_číslo`,`pohlavie`,`celé_mená`,`fyzická_adresa`)VALUES ("0938867763","Muž","Rajesh Koothrappali","Woodcrest");

Vyššie uvedené dopyty preskočili stĺpec dátumu narodenia, predvolene MySQL vloží hodnoty NULL do stĺpcov, ktoré sa v dotaze INSERT preskočia.

Teraz vložíme záznam pre Leslie, ktorý má zadaný dátum narodenia. Hodnota dátumu by mala byť uzavretá v jednoduchých úvodzovkách vo formáte „RRRR-MM-DD“.

INSERT INTO `členovia` (`plné_mená`,`dátum_narodenia`,`pohlavie`,`fyzická_adresa`,`kontaktné_číslo`) VALUES ("Leslie Winkle","1984-02-14","Muž","Woodcrest", " 0987636553");

Všetky vyššie uvedené dotazy špecifikovali stĺpce a mapovali ich na hodnoty v príkaze vložiť. Ak dodávame hodnoty pre VŠETKY stĺpce v tabuľke, môžeme stĺpce z dotazu na vloženie vynechať.

INSERT INTO `members` VALUES (9,"Howard Wolowitz","Male","1981-08-24","SouthPark","P.O. Box 4563", "0987786553", "lwolowitzemail.me");

Teraz použite príkaz SELECT na zobrazenie všetkých riadkov v tabuľke členov. SELECT * FROM `členovia`;

členské číslocelé_menároddátum narodeniafyzická adresaPoštová adresačíslo_kontaktuemail
1 Janet JonesováŽena21-07-1980 Prvá ulica pozemok č. 4Súkromná taška0759 253 542 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
2 Janet Smith JonesŽena23-06-1980 Melrose 123NULOVÝNULOVÝTáto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
3 Robert PhilMuž12-07-1989 3. ulica 34NULOVÝ12345 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.
4 Gloria WilliamsováŽena14-02-1984 2. ulica 23NULOVÝNULOVÝNULOVÝ
5 Leonard HofstadterMužNULOVÝWoodcrestNULOVÝ845738767 NULOVÝ
6 Sheldon CooperMužNULOVÝWoodcrestNULOVÝ976736763 NULOVÝ
7 Rajesh KoothrappaliMužNULOVÝWoodcrestNULOVÝ938867763 NULOVÝ
8 Leslie WinkleMuž14-02-1984 WoodcrestNULOVÝ987636553 NULOVÝ
9 Howard WolowitzMuž24-08-1981 Južný parkP.O. Box 4563987786553 Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript.

Všimnite si, že v kontaktnom čísle Leonarda Hofstadtera z kontaktného čísla vypadla nula (0). Ostatné kontaktné čísla nemajú na začiatku nulu (0).

Vkladanie do tabuľky z inej tabuľky

Príkaz INSERT možno použiť aj na vloženie údajov do tabuľky z inej tabuľky. Základná syntax je uvedená nižšie.

INSERT INTO tabuľka_1 SELECT * FROM tabuľka_2;

Pozrime sa teraz na praktický príklad, vytvoríme fiktívnu tabuľku pre kategórie filmov na demonštračné účely. Novú tabuľku kategórií nazveme category_archive. Skript uvedený nižšie vytvorí tabuľku.

CREATE TABLE `categories_archive` (`category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))

Spustite vyššie uvedený skript na vytvorenie tabuľky.

Teraz vložme všetky riadky z tabuľky kategórií do tabuľky archívu kategórií. Skript zobrazený nižšie nám to pomáha dosiahnuť.

INSERT INTO `archív_kategórií` SELECT * FROM `categories`;

Spustenie vyššie uvedeného skriptu vloží všetky riadky z tabuľky kategórií do tabuľky archívu kategórií. Všimnite si, že štruktúry tabuliek musia byť rovnaké, aby skript fungoval. Robustnejší skript je ten, ktorý mapuje názvy stĺpcov vo vkladacej tabuľke na názvy v tabuľke obsahujúcej údaje.

Dotaz zobrazený nižšie demonštruje jeho použitie.

INSERT INTO `archív_kategórií`(id_kategórie,názov_kategórie,poznámky) SELECT id_kategórie,názov_kategórie,poznámky FROM `kategórie`;

Vykonanie dotazu SELECT

VYBERTE * Z `archív_kategórií`

poskytuje nasledujúce výsledky uvedené nižšie.

category_idmeno kategóriepoznámky
1 KomédiaFilmy s humorom
2 Romantickémilostné príbehy
3 epickýpríbehové staroveké filmy
4 HrôzaNULOVÝ
5 sci-fiNULOVÝ
6 ThrillerNULOVÝ
7 AkciaNULOVÝ
8 romantická komédiaNULOVÝ
9 KarikatúryNULOVÝ
10 KarikatúryNULOVÝ

Zhrnutie

  • Príkaz INSERT sa používa na pridanie nových údajov do tabuľky
  • Hodnoty dátumu a reťazca by mali byť uzavreté v jednoduchých úvodzovkách.
  • Číselné hodnoty nemusia byť uzavreté v úvodzovkách.
  • Príkaz INSERT možno použiť aj na vloženie údajov z jednej tabuľky do druhej.

Pomocou SQL môžete kopírovať informácie z jednej tabuľky do druhej.

Príkaz INSERT INTO SELECT skopíruje údaje z jednej tabuľky a vloží ich do existujúcej tabuľky.

SQL príkaz INSERT INTO SELECT,

Príkaz INSERT INTO SELECT vyberie údaje z jednej tabuľky a vloží ich do existujúcej tabuľky. Žiadne existujúce riadky v cieľovej tabuľke sa nezmenia.

SQL INSERT INTO SELECT, syntax

Môžeme skopírovať všetky stĺpce z jednej tabuľky do inej existujúcej tabuľky:

VLOŽIŤ DO tabuľka2
VYBERTE * OD stôl 1;

Alebo môžeme iba skopírovať stĺpce, ktoré chceme, do inej existujúcej tabuľky:

VLOŽIŤ DO tabuľka2
(názov_stĺpcov)
VYBRAŤ column_name(s)
OD stôl 1;

Demo databáza

V tomto návode budeme používať známu databázu Northwind.

Nižšie je uvedený výber z tabuľky „Zákazníci“:

ID používateľameno klientaKontaktná osobaAdresamestoPSČKrajina
1 Alfred Futterkiste Mária Andersová Obere Str. 57 Berlín 12209 Nemecko
2 Ana Trujillo Emparedados a helados Ana Trujillo Avda. de la Constitucion 2222 Mexiko D.F. 05021 Mexiko
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexiko D.F. 05023 Mexiko

A výber z tabuľky "Dodávatelia":

SQL INSERT DO SELECT, Príklady

Skopírujte len niekoľko stĺpcov z "Dodávatelia" do "Zákazníci" :

Skopírujte iba nemeckých dodávateľov v časti "Zákazníci".

sql dotaz INSERT INTO má zmysel pri vytváraní databázovej tabuľky. To znamená, že tabuľka existuje, má názov, vytvorené riadky a stĺpce. tabuľku vytvorí operátor: , tabuľku upraví operátor .

sql dotaz INSERT INTO - syntax dotazu

sql dotaz INSERT INTO má nasledujúcu syntax:

INSERT INTO názov_tabuľky (v zátvorkách v prípade potreby vložte zoznam stĺpcov, do ktorých chcete vložiť údaje) VALUES vložené údaje1, vložené údaje2, vložené údaje3.

Medzi INSERT a INTRO je možné vložiť možnosť IGNORE. Nie je to povinné. Potrebné na ochranu primárnych kľúčov pri úprave tabuľky. V opačnom prípade, ak pri úprave dôjde k duplicite primárnych kľúčov, tak pri vložení možnosti IGNORE zostane v upravenej tabuľke prvý riadok s primárnym kľúčom, Ostatné primárne kľúče sa vymažú. Štandardne je táto možnosť vynechaná.

K dispozícii sú voliteľné možnosti LOW_PRIORITY a DELAYED. Určujú priority pridávania informácií do databázy. Prvý nastavuje očakávanie uvoľnenia databázy, druhý znamená ukladanie informácií do vyrovnávacej pamäte.

Riadok dotazu: INSERT s klauzulou VALUES pridá jeden riadok do databázovej tabuľky. Klauzula VALUES obsahuje hodnoty týchto údajov.

Namiesto klauzuly VALUES možno použiť poddotazy. INSERT s poddotazom pridá do tabuľky riadky vrátené poddotazom. Databázový server spracuje poddotaz a vloží všetky vrátené riadky do tabuľky. Server nevloží riadky, ak ich poddotaz nevyberie.

  • subdotaz_1 - subdotaz, ktorý server spracuje rovnakým spôsobom ako zobrazenie
  • subquery_2 je poddotaz, ktorý vracia riadky, ktoré sú vložené do tabuľky. Zoznam tohto poddotazu musí mať rovnaký počet stĺpcov ako zoznam stĺpcov INSERT.

Poddotazy sa v databáze MySQL prakticky nepoužívajú.

Príklady dotazov INSERT INTO SQL v databáze MySQL

Vložte nové riadky do databázy MySQL pomocou príkazu INSERT INTRO.

Prvý príklad.

Vložte nové riadky do tabuľky názov_tabulky.

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

To znamená, že chceme vložiť hodnoty 2,145,1,name do stĺpcov v tabuľke table_name. Keďže stĺpce nie sú špecifikované, hodnoty sú vyplnené vo všetkých stĺpcoch tabuľky.

Druhý príklad.

Vkladanie informácií do požadovaných (špecifikovaných) stĺpcov tabuľky table_name.

INSERT INTO table_name (client_customer, client_subclient, client_mail) VALUES ('name1','subname1',' [e-mail chránený]“), („meno2′, „podmeno2′“, [e-mail chránený]′), ('meno3′, 'podmeno3′,(' [e-mail chránený]′);

Igor Serov špeciálne pre stránku "".

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ú popísané v nasledujúcom článku.

INSERT vyhlásenie 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 výpisu umožňuje vložiť jeden riadok (alebo jeho časť) do tabuľky. A druhá forma príkazu INSERT umožňuje vložiť do tabuľky množinu 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.

Jednoriadková vložka

Pre obe formy príkazu INSERT je explicitný zoznam stĺpcov voliteľný. Absencia zoznamu stĺpcov je ekvivalentná špecifikovaniu všetkých stĺpcov tabuľky.

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 automaticky generovanými systémom. Pre stĺpce iných typov údajov sa vloží zodpovedajúca nenulová predvolená hodnota, ak existuje, alebo v opačnom prípade NULL. Ak pre stĺpec nie sú povolené hodnoty null a pre stĺpec nie je definovaná žiadna predvolená hodnota, príkaz INSERT zlyhá a zobrazí sa príslušná správa.

Nasledujúci príklad vloží riadky do tabuľky Zamestnanec v databáze SampleDb a demonštruje, ako použiť príkaz INSERT na vloženie malého množstva údajov do databázy:

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

Existujú dva rôzne cesty vkladanie hodnôt do Nový riadok. Príkaz INSERT v príklade nižšie explicitne používa kľúčové slovo NULL a vloží hodnotu NULL do príslušného stĺpca:

USE SampleDb; INSERT INTO Employee 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 musia mať pre ne 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ý povoľuje hodnoty null, stĺpec DepartmentNumber a pre všetky ostatné stĺpce bola táto hodnota zakázaná klauzulou NOT NULL v príkaze CREATE TABLE.

Poradie hodnôt v vetné HODNOTY Príkazy INSERT sa môžu líšiť od poradia špecifikovaného v príkaze CREATE TABLE. V takom prípade sa ich poradie musí zhodovať s poradím, v akom sú príslušné stĺpce uvedené v zozname stĺpcov. Nasleduje príklad vkladania ú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 vybraný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 načítanie výsledného súboru 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 sa výsledný súbor načíta do novej tabuľky vytvorenej na začiatku. z dotazu:

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 údajov, pridali by sa do nej nové riadky.

V predchádzajúcich častiach sme sa zaoberali prácou získavania údajov z vopred vytvorených tabuliek. Teraz je čas zistiť, ako môžeme vytvárať / mazať tabuľky, pridávať nové záznamy a mazať staré. Na tieto účely v SQL existujú operátori ako: VYTVORIŤ- vytvorí tabuľku ALTER- mení štruktúru tabuľky, POKLES- vymaže tabuľku alebo pole, VLOŽIŤ- doplní údaje do tabuľky. Zoznámenie sa s touto skupinou operátorov začneme 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ť reťazca
  • - 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Ť explicitne sme označili názvy stĺpcov tabuľky. Pomocou tejto syntaxe môžeme preskočiť niektoré stĺpce. To znamená, že zadáte hodnotu pre niektoré stĺpce, ale nezadáte hodnoty pre ostatné. Napríklad:

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

AT tento príklad nešpecifikovali sme 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 nasledujúcich podmienok: tento stĺpec je definovaný ako povoľujúci hodnotu NULOVÝ(neprítomnosť akejkoľvek hodnoty) alebo v definícii tabuľky zadanú predvolenú hodnotu. To znamená, že ak nie je zadaná žiadna hodnota, použije sa predvolená hodnota. Ak preskočíte stĺpec v tabuľke, ktorý nepovoľuje hodnoty v riadkoch NULOVÝ a nemá definovanú predvolenú hodnotu, DBMS vydá chybové hlásenie a tento riadok sa nepridá.

3. Pridanie vybraných údajov

V predchádzajúcich príkladoch sme vložili údaje do tabuliek tak, že sme ich do dotazu zapísali ručne. 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 má SQL takúto štruktúru: 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 hodnota interných kľúčov neopakovala (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 ich usporiadania. Preto údaje v prvom špecifikovanom stĺpci, ktorý bol vybraný kvôli VYBRAŤ, bude aj tak vyplnený v prvom stĺpci tabuľky Predajcoviašpecifikované po operátorovi 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 je často potrebné vytvárať kópie akýchkoľvek tabuliek za účelom zálohovania alebo úpravy. Ak chcete vytvoriť úplnú kópiu tabuľky v SQL, poskytuje sa 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Ť... keď sú údaje pridané do existujúcej tabuľky, konštrukcia skopíruje údaje do novej tabuľky. Dá sa tiež povedať, že prvý konštrukt údaje importuje, zatiaľ čo druhý konštrukt exportuje. Pri použití štruktúry VYBERTE ... DO ... Z ... treba brať do úvahy nasledovné:

  • - v operátorovi môžete použiť ľubovoľné vety VYBRAŤ, ako napr GROUP BY a MAJÚCE
  • - join môže byť použitý na pridávanie ú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é.