Mi az INSERT INTO?

Az adatbázis-rendszerek fő célja az adatok tárolása a táblákban. Az adatokat általában az adatbázis tetején futó alkalmazási programok szolgáltatják. Ennek érdekében az SQL rendelkezik a INSERT parancs, amely az adatok táblába való tárolására szolgál. Az Az INSERT parancs új sort hoz létre táblázatban az adatok tárolására.

Alapszintaxis

Nézzük meg az SQL INSERT parancs alapvető szintaxisát az alábbiakban.

INSERT INTO `tábla_neve`(oszlop_1,oszlop_2,...) ÉRTÉKEK (érték_1,érték_2,...);

  • INSERT INTO `tábla_neve` az a parancs, amely utasítja a MySQL szervert, hogy adjon hozzá új sort a `tábla_neve` nevű táblához.
  • (oszlop_1, oszlop_2,...) megadja az új sorban frissítendő oszlopokat
  • ÉRTÉKEK (érték_1,érték_2,...) megadja az új sorba hozzáadandó értékeket

Az új táblázatba beillesztendő adatértékek megadásakor a különböző adattípusok kezelésekor a következőket kell figyelembe venni.

  • Karakterlánc adattípusok- az összes karakterlánc-értéket idézőjelek közé kell tenni.
  • Numerikus adattípusok- minden numerikus értéket közvetlenül kell megadni anélkül, hogy szimpla vagy dupla idézőjelek közé kellene tenni őket.
  • Dátum adattípusok- a dátumértékeket idézőjelbe helyezze "ÉÉÉÉ-HH-NN" formátumban.

Példa:

Tegyük fel, hogy a következő listánk van azokról az új könyvtári tagokról, amelyeket fel kell venni az adatbázisba.

Teljes nevek Születési dátum neme valódi cím postázási cím elérhetőség Email cím
Leonard Hofstadter Férfi Woodcrest 0845738767
Sheldon Cooper Férfi Woodcrest 0976736763
Rajesh Koothrappali Férfi fairview 0938867763
Leslie Winkle 14/02/1984 Férfi 0987636553
Howard Wolowitz 24/08/1981 Férfi déli Park P.O. 4563. doboz 0987786553

Lets" INSERT adatokat egyesével. Kezdjük Leonard Hofstadterrel. A telefonszámot numerikus adattípusként kezeljük, és nem teszünk idézőjelbe.

INSERT INTO `tagok` (`teljes_nevek`,`nem`,`fizikai_cím`,`kapcsolati_szám`) ÉRTÉKEK ("Leonard Hofstadter","Férfi","Woodcrest",0845738767);

A fenti parancsfájl végrehajtása kihagyja a 0-t Leonard kapcsolati számából, mivel az értéket a rendszer numerikus értékként kezeli, és az elején lévő nullát (0) kihagyja, mivel nem szignifikáns.

Az ilyen problémák elkerülése érdekében az értéket idézőjelek közé kell tenni az alábbiak szerint -

INSERT INTO `tagok` (`teljes_nevek`,`nem`,`fizikai_cím`,`kapcsolati_szám`) VALUES ("Sheldon Cooper", "Férfi", "Woodcrest", "0976736763");

A fenti esetben a nulla(0) nem kerül eldobásra

Az oszlopok sorrendjének megváltoztatása nincs hatással az INSERT lekérdezésre, amíg a megfelelő értékeket a megfelelő oszlopokhoz rendelték hozzá.

Az alább látható lekérdezés a fenti pontot szemlélteti.

INSERT INTO `tagok` (`kapcsolati_szám`,`nem`,`teljes_nevek`,`fizikai_cím`)VALUES ("0938867763","Férfi","Rajesh Koothrappali","Woodcrest");

A fenti lekérdezések kihagyták a születési dátum oszlopot, alapértelmezés szerint a MySQL NULL értékeket szúr be az INSERT lekérdezésben kihagyott oszlopokba.

Most illesszük be Leslie rekordját, amely tartalmazza a születési dátumot. A dátum értékét idézőjelek közé kell tenni az „ÉÉÉÉ-HH-NN” formátumban.

INSERT INTO `tagok` (`teljes_nevek`,`születési_dátum`,`nem`,`fizikai_cím`,`kapcsolati_szám`) ÉRTÉKEK ("Leslie Winkle","1984-02-14","Férfi","Woodcrest", " 0987636553");

A fenti lekérdezések mindegyike megadta az oszlopokat, és leképezte azokat az insert utasításban szereplő értékekre. Ha a táblázat ÖSSZES oszlopához megadunk értékeket, akkor az oszlopokat kihagyhatjuk a beszúrási lekérdezésből.

INSERT IN TO `members` VALUES (9 "Howard Wolowitz", "Férfi", "1981-08-24", "SouthPark", "P.O. Box 4563", "0987786553", "lwolowitzemail.me");

Használjuk most a SELECT utasítást a Members tábla összes sorának megtekintéséhez. SELECT * FROM `members`;

Tagsági számteljes_neveknemeszületési dátumvalódi címpostázási címkapcsolati_számemail
1 Janet JonesNői21-07-1980 4. számú első utcai telekPrivát táska0759 253 542 Ez az e-mail cím a spamrobotok elleni védelem alatt áll. A megtekintéséhez engedélyezni kell a JavaScriptet.
2 Janet Smith JonesNői23-06-1980 Melrose 123NULLANULLAEz az e-mail cím a spamrobotok elleni védelem alatt áll. A megtekintéséhez engedélyezni kell a JavaScriptet.
3 Robert PhilFérfi12-07-1989 3. utca 34NULLA12345 Ez az e-mail cím a spamrobotok elleni védelem alatt áll. A megtekintéséhez engedélyezni kell a JavaScriptet.
4 Gloria WilliamsNői14-02-1984 2. utca 23NULLANULLANULLA
5 Leonard HofstadterFérfiNULLAWoodcrestNULLA845738767 NULLA
6 Sheldon CooperFérfiNULLAWoodcrestNULLA976736763 NULLA
7 Rajesh KoothrappaliFérfiNULLAWoodcrestNULLA938867763 NULLA
8 Leslie WinkleFérfi14-02-1984 WoodcrestNULLA987636553 NULLA
9 Howard WolowitzFérfi24-08-1981 déli ParkP.O. 4563. doboz987786553 Ez az e-mail cím a spamrobotok elleni védelem alatt áll. A megtekintéséhez engedélyezni kell a JavaScriptet.

Figyelje meg, hogy Leonard Hofstadter telefonszáma nullát (0) csökkent a kapcsolati számból. A többi telefonszámon az elején nem esett a nulla (0).

Beszúrás egy másik táblázatból egy táblázatba

Az INSERT paranccsal egy másik táblából is beszúrhatunk adatokat egy táblába. Az alapvető szintaxis az alábbiak szerint látható.

INSERT INTO tábla_1 SELECT * FROM tábla_2;

Lássunk most egy gyakorlati példát, bemutatás céljából létrehozunk egy áltáblázatot a filmkategóriákhoz. Az új kategóriák táblázatát kategóriák_archívumnak nevezzük. Az alább látható szkript hozza létre a táblázatot.

TÁBLÁZAT LÉTREHOZÁSA `categories_archive` (`category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`)

A táblázat létrehozásához futtassa a fenti szkriptet.

Most illesszük be a kategóriatáblázat összes sorát a kategóriaarchívum táblájába. Az alábbi szkript segít ebben.

INSERT INTO `categories_archive` SELECT * FROM `kategóriák`;

A fenti parancsfájl végrehajtása a kategóriatáblázat összes sorát beszúrja a kategóriaarchívum táblájába. Ne feledje, hogy a táblaszerkezeteknek azonosaknak kell lenniük ahhoz, hogy a szkript működjön. Robusztusabb szkript az, amely a beszúrási táblázat oszlopneveit leképezi az adatokat tartalmazó táblázat oszlopneveire.

Az alább látható lekérdezés a használatát mutatja be.

INSERT INTO `categories_archive`(kategória_azonosítója,kategória_neve,megjegyzések) SELECT category_id,category_name,remarks FROM `categories`;

A SELECT lekérdezés végrehajtása

SELECT * FROM `categories_archive`

az alábbi eredményeket adja.

kategória_azonosítójakategória névmegjegyzések
1 KomédiaFilmek humorral
2 Romantikusszerelmi történetek
3 epikustörténet ókori filmek
4 BorzalomNULLA
5 tudományos-fantasztikusNULLA
6 KrimiNULLA
7 akcióNULLA
8 romantikus komédiaNULLA
9 RajzfilmekNULLA
10 RajzfilmekNULLA

Összegzés

  • Az INSERT parancs új adatok hozzáadására szolgál egy táblához
  • A dátumot és a karakterlánc értékeit idézőjelek közé kell tenni.
  • A számértékeket nem kell idézőjelbe tenni.
  • Az INSERT paranccsal adatok szúrhatók be egyik táblából a másikba.

Az SQL használatával információkat másolhat egyik táblából a másikba.

Az INSERT INTO SELECT utasítás egy táblából másolja az adatokat, és beszúrja egy meglévő táblába.

SQL INSERT INTO SELECT utasítás,

INSERT INTO SELECT utasítás kiválasztja az adatokat egy táblából, és beilleszti egy meglévő táblába. A céltábla egyetlen sora sem módosul.

SQL INSERT INTO SELECT, Szintaxis

Az összes oszlopot átmásolhatjuk egyik táblából egy másik meglévő táblába:

INSERT INTO táblázat2
VÁLASSZON Asztal 1;

Vagy csak a kívánt oszlopokat másolhatjuk át egy másik, meglévő táblába:

INSERT INTO táblázat2
(oszlop_neve(i))
KIVÁLASZTÁS oszlop_neve(i)
TÓL TŐL Asztal 1;

Demo adatbázis

Ebben az oktatóanyagban a jól ismert Northwind adatbázist fogjuk használni.

Az alábbiakban egy válogatás található a „Vásárlók” táblázatból:

Felhasználói azonosítóÜgyfél NeveA kapcsolattartó személyCímvárosIrányítószámOrszág
1 Alfred Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Németország
2 Ana Trujillo Emparedados és helados Ana Trujillo Avda. de la Constitucion 2222 Mexikó D.F. 05021 Mexikó
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexikó D.F. 05023 Mexikó

És egy válogatás a "Beszállítók" táblázatból:

SQL INSERT INTO SELECT, Példák

Csak néhány oszlop átmásolása a „Beszállítók” közül a „Vásárlók” közé:

Csak német beszállítókat másoljon az „Ügyfelek” mappába.

Az sql INSERT INTO lekérdezésnek az adatbázistábla létrehozásakor van értelme. Vagyis a tábla létezik, van neve, sorokat és oszlopokat hozott létre. a táblázatot az operátor hozza létre: , a táblát az operátor módosítja.

sql query INSERT INTO - lekérdezés szintaxisa

Az sql INSERT INTO lekérdezés szintaxisa a következő:

INSERT INTO táblanév (zárójelben, ha szükséges, illessze be azoknak az oszlopoknak a listáját, ahová adatokat szeretne beilleszteni) VALUES beszúrt adatok1, beszúrt adatok2, beszúrt adatok3.

Az INSERT és az INTRO közé egy IGNORE opciót lehet beilleszteni. Nem kötelező. Táblázat szerkesztésekor az elsődleges kulcsok védelmére van szükség. Ellenkező esetben, ha a szerkesztés során az elsődleges kulcsok megkettőzése történik, akkor az IGNORE opció beillesztésekor az első sor az elsődleges kulcsot tartalmazza a módosított táblában, a többi elsődleges kulcs törlődik. Alapértelmezés szerint ez az opció ki van hagyva.

LOW_PRIORITY és DELAYED opcionális opciók állnak rendelkezésre. Meghatározzák a prioritásokat az információk adatbázisba való felvételéhez. Az első az adatbázis kiadásának elvárását, a második az információk pufferelését jelenti.

Lekérdezési sor: Az INSERT a VALUES záradékkal egyetlen sort ad hozzá az adatbázistáblához. Az VALUES záradék ezen adatok értékeit tartalmazza.

Az VALUES záradék helyett allekérdezések is használhatók. Az INSERT with subquery hozzáadja az allekérdezés által visszaadott sorokat a táblához. Az adatbázis-kiszolgáló feldolgozza az allekérdezést, és beszúrja az összes visszaadott sort a táblába. A szerver nem szúr be sorokat, ha az allekérdezés nem jelöli ki azokat.

  • subquery_1 - egy részlekérdezés, amelyet a kiszolgáló a nézethez hasonlóan dolgoz fel
  • Az allekérdezés_2 egy olyan segédlekérdezés, amely a táblázatba beszúrt sorokat adja vissza. Az allekérdezés listájának ugyanannyi oszlopból kell állnia, mint az INSERT oszlopok listájának.

Az allekérdezések gyakorlatilag nem használatosak a MySQL adatbázisban.

INSERT INTO sql lekérdezési példák a MySQL adatbázisban

Szúrjon be új sorokat a MySQL adatbázisba az INSERT INTRO paranccsal.

Első példa.

Szúrjon be új sorokat a táblanév táblába.

INSERT INTO táblanév ÉRTÉKEK ('2','145','1','név');

Ez azt jelenti, hogy a 2,145,1,name értékeket szeretnénk beszúrni a táblázat_neve tábla oszlopaiba. Mivel az oszlopok nincsenek megadva, az értékeket a táblázat minden oszlopa kitölti.

Második példa.

Információk beszúrása a táblanév tábla kívánt (megadott) oszlopaiba.

INSERT INTO tábla_neve (ügyfél_ügyfél, kliens_alkliens, ügyfél_mail) ÉRTÉKEK ('név1','alnév1',' [e-mail védett]'), ('név2','alnév2',' [e-mail védett]'), ('név3','alnév3',(' [e-mail védett]′);

Igor Serov kifejezetten a "" webhelyhez.

A korábban tárgyalt SELECT utasításon kívül a Data Manipulation Language (DML) további három utasítást tartalmaz: INSERT, UPDATE és DELETE. A SELECT utasításhoz hasonlóan ez a három utasítás táblákon vagy nézeteken működik. Ez a cikk az INSERT utasítással foglalkozik, a másik két utasítás pedig a következő cikkben lesz tárgyalva.

INSERT nyilatkozat sorokat (vagy sorrészeket) szúr be egy táblázatba. Ennek az utasításnak két különböző formája van:

BESZÁLLÍTÁS tab_name [(col_list)] ALAPÉRTELMEZETT ÉRTÉKEK | ÉRTÉKEK (( ALAPÉRTELMEZETT | NULL | kifejezés ) [ ,...n]) INSERT INTO lap_neve | view_name [(col_list)] (select_statement | execute_statement) Szintaxis konvenciók

Az utasítás első formája lehetővé teszi egy sor (vagy annak egy részének) beszúrását a táblázatba. Az INSERT utasítás második formája pedig lehetővé teszi egy SELECT utasítás eredményhalmazának vagy egy EXECUTE utasítással végrehajtott tárolt eljárásnak a táblába történő beszúrását. A tárolt eljárásnak vissza kell adnia a táblázatba beillesztendő adatokat. Az INSERT utasítással együtt használva a SELECT utasítás választhat értékeket egy másik vagy ugyanabból a táblából, amelybe az adatokat beszúrja, feltéve, hogy a megfelelő oszlopok adattípusai kompatibilisek.

Mindkét űrlap esetében az egyes beszúrt értékek adattípusának kompatibilisnek kell lennie a megfelelő táblázatoszlop adattípusával. Minden karakterláncot és ideiglenes adatot idézőjelbe kell tenni; A numerikus értékeket nem kell idézőjelbe tenni.

Egysoros betét

Az INSERT utasítás mindkét formája esetén az oszlopok explicit listája nem kötelező. Az oszloplista hiánya egyenértékű a táblázat összes oszlopának megadásával.

DEFAULT VALUES paraméter beszúrja az alapértelmezett értékeket az összes oszlophoz. A TIMESTAMP adattípussal vagy IDENTITY tulajdonsággal rendelkező oszlopok alapértelmezés szerint a rendszer által automatikusan generált értékekkel kerülnek beszúrásra. Más adattípusok oszlopai esetén a megfelelő nem nulla alapértelmezett érték kerül beillesztésre, ha van ilyen, vagy NULL, ha van ilyen. Ha a null értékek nem engedélyezettek egy oszlophoz, és nincs alapértelmezett érték megadva az oszlophoz, az INSERT utasítás meghiúsul, és megjelenik egy megfelelő üzenet.

A következő példa sorokat szúr be a SampleDb adatbázis Employee táblájába, bemutatva, hogyan lehet az INSERT utasítással kis mennyiségű adatot beszúrni az adatbázisba:

HASZNÁLATA SampleDb; INSERT INTO Munkavállalói ÉRTÉKEK(34990, "Andrey", "Batonov", "d1"); INSERT INTO Munkavállalói ÉRTÉKEK(38640, "Aleksej", "Vasin", "d3");

Van két különböző utakértékek beillesztése új sor. Az alábbi példában az INSERT utasítás kifejezetten használja kulcsszó NULL és beszúrja a NULL értéket a megfelelő oszlopba:

HASZNÁLATA SampleDb; INSERT INTO Munkavállalói ÉRTÉKEK(34991, "Andrey", "Batonov", NULL);

Ha értékeket szeretne beszúrni egy táblázat egyes (de nem az összes) oszlopába, általában kifejezetten meg kell adnia ezeket az oszlopokat. A meg nem adott oszlopoknak NULL értékeket kell engedélyezniük, vagy alapértelmezett értékkel kell rendelkezniük.

HASZNÁLATA SampleDb; INSERT INTO Munkavállaló(Id, Keresztnév, Vezetéknév) ÉRTÉKEK (34992, "Andrey", "Batonov");

Az előző két példa egyenértékű. Az Employee táblában az egyetlen oszlop, amely null értékeket engedélyez, a DepartmentNumber oszlop, és az összes többi oszlop esetében ezt az értéket a NOT NULL záradék tiltotta a CREATE TABLE utasításban.

Értékrend ben mondat ÉRTÉKEK Az INSERT utasítások eltérhetnek a CREATE TABLE utasításban megadott sorrendtől. Ebben az esetben a sorrendjüknek meg kell egyeznie az oszloplistában a megfelelő oszlopok sorrendjével. A következő példa az adatok eredetitől eltérő sorrendben történő beszúrására:

HASZNÁLATA SampleDb; INSERT INTO Employee(Részlegszám, Vezetéknév, Id, Keresztnév) ÉRTÉKEK ("d1", "Batonov", 34993, "Andrey");

Több sor beszúrása

Az INSERT utasítás második formája beszúr egy vagy több, az allekérdezés által kiválasztott sort a táblába. Az alábbi példa bemutatja, hogyan lehet sorokat beszúrni egy táblázatba az INSERT utasítás második formájával. Ebben az esetben egy lekérdezést hajtanak végre a Moszkvában található részlegek számának és nevének kiválasztásához, és a kapott készlet betöltését egy korábban létrehozott új táblázatba.

A fenti példában létrehozott új MoscowDepartment tábla ugyanazokat az oszlopokat tartalmazza, mint a meglévő osztálytáblázat, kivéve a hiányzó Hely oszlopot. Az INSERT utasításban található részlekérdezés kijelöli a Department tábla összes olyan sorát, amelynél a Hely oszlop értéke Moszkva, majd beszúródik a lekérdezés elején létrehozott új táblába.

Az alábbi példa egy másik módot mutat be sorok beszúrására egy táblázatba az INSERT utasítás második formájával. Ebben az esetben egy lekérdezés lekéri a személyzeti számokat, a projektszámokat és a projekt kezdési dátumait a p2 projekten dolgozó összes "menedzser" beosztású alkalmazottnál, majd betölti a kapott halmazt egy új, az elején létrehozott táblába. a lekérdezésről:

HASZNÁLATA SampleDb; CREATE TABLE Manager Team(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 = "Manager";

Mielőtt az INSERT utasítással beszúrta volna a sorokat, a MoscowDepartment és a ManagerTeam táblák (a fenti példákban) üresek voltak. Ha a tábla már létezett és adatsorokat tartalmazott, akkor új sorok kerülnek hozzáadásra.

Az elõzõ részekben az elõre elkészített táblákból származó adatok kinyerésének munkáját tekintettük át. Itt az ideje, hogy kitaláljuk, hogyan hozhatunk létre/törölhetünk táblákat, hogyan adhatunk hozzá új rekordokat és törölhetjük a régieket. Ezekre a célokra be SQL Vannak olyan operátorok, mint: TEREMT- létrehoz egy táblázatot VÁLTOZTAT- megváltoztatja a táblázat szerkezetét, CSEPP- töröl egy táblázatot vagy mezőt, BESZÁLLÍTÁS- adatokat ad a táblázathoz. Kezdjük az ismerkedést ezzel az operátorcsoporttal az operátortól BESZÁLLÍTÁS.

1. Egész sorok hozzáadása

Ahogy a neve is sugallja, az operátor BESZÁLLÍTÁS sorok beszúrására (hozzáfűzésére) használják egy adatbázistáblába. A hozzáadás többféleképpen is elvégezhető:

  • - adjunk hozzá egy teljes sort
  • - egy karakterlánc egy részének hozzáadása
  • - Lekérdezési eredmények hozzáadása.

Tehát egy új sor hozzáadásához a táblázathoz meg kell adnunk a tábla nevét, listáznunk kell az oszlopneveket, és meg kell adnunk minden oszlop értékét a konstrukció segítségével. INSERT INTO táblázat_neve (mező1, mező2...) ÉRTÉKEK (érték1, érték2...). Nézzünk egy példát.

INSERT INTO Eladók (azonosító, cím, város, eladó_neve, ország) ÉRTÉKEI("6", "1st Street", "Los Angeles", "Harry Monroe", "USA")

Módosíthatja az oszlopnevek sorrendjét is, ugyanakkor módosítania kell az értékek sorrendjét a paraméterben ÉRTÉKEK.

2. A sorok egy részének hozzáadása

Az előző példában az operátor használatakor BESZÁLLÍTÁS kifejezetten megjelöltük a táblázat oszlopneveit. Ezzel a szintaxissal kihagyhatunk néhány oszlopot. Ez azt jelenti, hogy bizonyos oszlopokhoz értéket ad meg, másokhoz viszont nem. Például:

INSERT INTO Eladók (azonosító, város, eladó_neve) VALUES("6", "Los Angeles", "Harry Monroe")

NÁL NÉL ezt a példát nem adtunk meg értéket két oszlophoz Címés Ország. Néhány oszlopot kizárhat az utasításból INSERT INTO, ha lehetővé teszi a tábla meghatározását. Ebben az esetben az alábbi feltételek egyikének teljesülnie kell: ez az oszlop az értéket engedélyezőként van definiálva NULLA(érték hiánya) vagy a táblázat definíciójában a megadott alapértelmezett értéket. Ez azt jelenti, hogy ha nincs megadva érték, akkor a rendszer az alapértelmezett értéket használja. Ha kihagy egy olyan oszlopot a táblázatban, amely nem engedélyez értékeket a soraiban NULLAés nincs megadva alapértelmezett érték, a DBMS hibaüzenetet ad ki, és ez a sor nem lesz hozzáadva.

3. A kiválasztott adatok hozzáadása

Az előző példákban úgy szúrtuk be az adatokat táblákba, hogy azokat manuálisan írtuk be a lekérdezésbe. Az üzemeltető azonban INSERT INTO lehetővé teszi ennek a folyamatnak a automatizálását, ha egy másik táblából szeretnénk adatokat beszúrni. Ehhez az SQL felépítése a következő: BESZÁLLÍTÁS... KIVÁLASZTÁS.... Ez a kialakítás lehetővé teszi az adatok egyidejű kiválasztását az egyik táblából és beillesztését egy másikba. Tegyük fel, hogy van egy másik asztalunk Sellers_EUáruink európai eladóinak listájával, és fel kell adnunk őket az általános táblázathoz Eladók. Ezeknek a tábláknak a felépítése megegyezik (ugyanannyi oszlop és azonos nevek), de eltérő adatok. Ehhez a következő lekérdezést írhatjuk:

INSERT INTO Eladók (azonosító, cím, város, eladó_neve, ország) SELECTID, Cím, Város, Eladó_neve, Ország FROM Eladók_EU

Ügyelni kell arra, hogy a belső kulcsok értéke ne ismétlődjön (mező ID), különben hiba történik. Operátor KIVÁLASZTÁS javaslatokat is tartalmazhat AHOL adatok szűrésére. Azt is meg kell jegyezni, hogy a DBMS nem figyeli az utasításban szereplő oszlopok nevét. KIVÁLASZTÁS, csak az elrendezésük sorrendje a fontos számára. Ezért az első megadott oszlopban lévő adatok, amelyek miatt lett kiválasztva KIVÁLASZTÁS, úgyis a táblázat első oszlopában lesz kitöltve Eladók az operátor után megadva INSERT INTO, a mező nevétől függetlenül.

4. Adatok másolása egyik táblából a másikba

Az adatbázisokkal végzett munka során gyakran szükségessé válik a táblák másolatainak létrehozása biztonsági mentés vagy módosítás céljából. Egy tábla teljes másolatának elkészítéséhez SQL-ben külön utasítást biztosítunk VÁLASZTÁS BE. Például létre kell hoznunk a táblázat másolatát Eladók, akkor a következőképpen kell megírnia a kérelmet:

SELECT * INTO Sellers_new FROM Eladók

Az előző kiviteltől eltérően BESZÁLLÍTÁS... KIVÁLASZTÁS... Amikor egy meglévő táblához adatot adunk, a konstrukció az adatokat az új táblába másolja. Azt is mondhatjuk, hogy az első konstrukció adatokat importál, míg a második konstrukció exportál. A szerkezet használatakor KIVÁLASZTÁS... BE... AZ... a következőket kell figyelembe venni:

  • - bármilyen mondatot használhat az operátorban KIVÁLASZTÁS, úgymint CSOPORTOSÍTés HAVING
  • - A join segítségével több táblából is hozzáadhatunk adatokat
  • - adatok csak egy táblához adhatók hozzá, függetlenül attól, hogy hány táblából lettek átvéve.