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ám | teljes_nevek | neme | születési dátum | valódi cím | postázási cím | kapcsolati_szám | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Női | 21-07-1980 | 4. számú első utcai telek | Privát táska | 0759 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 Jones | Női | 23-06-1980 | Melrose 123 | NULLA | NULLA | Ez az e-mail cím a spamrobotok elleni védelem alatt áll. A megtekintéséhez engedélyezni kell a JavaScriptet. |
3 | Robert Phil | Férfi | 12-07-1989 | 3. utca 34 | NULLA | 12345 | Ez az e-mail cím a spamrobotok elleni védelem alatt áll. A megtekintéséhez engedélyezni kell a JavaScriptet. |
4 | Gloria Williams | Női | 14-02-1984 | 2. utca 23 | NULLA | NULLA | NULLA |
5 | Leonard Hofstadter | Férfi | NULLA | Woodcrest | NULLA | 845738767 | NULLA |
6 | Sheldon Cooper | Férfi | NULLA | Woodcrest | NULLA | 976736763 | NULLA |
7 | Rajesh Koothrappali | Férfi | NULLA | Woodcrest | NULLA | 938867763 | NULLA |
8 | Leslie Winkle | Férfi | 14-02-1984 | Woodcrest | NULLA | 987636553 | NULLA |
9 | Howard Wolowitz | Férfi | 24-08-1981 | déli Park | P.O. 4563. doboz | 987786553 | 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ója | kategória név | megjegyzések |
---|---|---|
1 | Komédia | Filmek humorral |
2 | Romantikus | szerelmi történetek |
3 | epikus | történet ókori filmek |
4 | Borzalom | NULLA |
5 | tudományos-fantasztikus | NULLA |
6 | Krimi | NULLA |
7 | akció | NULLA |
8 | romantikus komédia | NULLA |
9 | Rajzfilmek | NULLA |
10 | Rajzfilmek | NULLA |
Ö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 Neve | A kapcsolattartó személy | Cím | város | Irányítószám | Orszá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.