itthon / Dolgozzon az interneten / SQL lekérdezés INSERT INTO - az adatbázis kitöltése információkkal. A T-SQL alapjai. DML Sql Row Insert Parancs szintaxis

SQL lekérdezés INSERT INTO - az adatbázis kitöltése információkkal. A T-SQL alapjai. DML Sql Row Insert Parancs szintaxis

Az INSERT utasítás új rekordokat szúr be egy táblába. Ebben az esetben az oszlopértékek lehetnek szó szerinti állandók, vagy egy részlekérdezés eredménye. Az első esetben külön INSERT utasítást használunk az egyes sorok beszúrására; a második esetben annyi sor kerül beszúrásra, amennyit az allekérdezés visszaadott.

Az operátor szintaxisa a következő:

    INSERT INTO[(,...)]

    (ÉRTÉKEK(,…) )

  1. | ( ALAPÉRTELMEZETT ÉRTÉKEK )

Amint az a bemutatott szintaxisból látható, az oszlopok listája nem kötelező (a szintaxisleírásban a szögletes zárójelek jelzik ezt). Ha hiányzik, a beillesztett értékek listájának teljesnek kell lennie, azaz a táblázat összes oszlopához meg kell adni az értékeket. Az értékek sorrendjének meg kell egyeznie a CREATE TABLE utasításban megadott sorrenddel ahhoz a táblázathoz, amelybe a sorokat beilleszti. Ezenkívül ezeknek az értékeknek ugyanolyan adattípusúaknak kell lenniük, mint az oszlopoknak, amelyekbe be vannak írva. Példaként fontolja meg egy sor beszúrását a terméktáblázatba, amelyet a következő CREATE TABLE utasítás hozott létre:

    CREATE TABLE termék

    készítő karakter (1) NOT NULL,

    model varchar(4) NOT NULL,

    írja be a varchar(7)-et NOT NULL

Ehhez a táblázathoz legyen kötelező hozzáadni a B gyártó 1157-es PC-modelljét. Ezt a következő utasítással tehetjük meg:

    INSERT INTO Product

    ÉRTÉKEK ("B" , 1157 , "PC" );

Ha megadja az oszlopok listáját, megváltoztathatja azok sorrendjének „természetes” sorrendjét:

    INSERT INTO Termék (típus, modell, gyártó)

    ÉRTÉKEK ("PC" , 1157 , "B" );

Úgy tűnik, hogy ez egy teljesen felesleges funkció, ami csak még bonyolultabbá teszi a tervezést. Azonban akkor nyer, ha az oszlopok alapértelmezett értékekkel rendelkeznek. Tekintsük a következő táblázatszerkezetet:

    TÁBLÁZAT LÉTREHOZÁSA termék_D

    készítő karakter (1) NULL,

    modell varchar(4) NULL ,

    típus varchar (7) NOT NULL ALAPÉRTELMEZETT "PC"

Vegye figyelembe, hogy itt az összes oszlop értéke alapértelmezett értékkel rendelkezik (az első kettő NULL, az utolsó oszlop pedig a PC típusa). Most írhatnánk:

    INSERT INTO Product_D(modell, gyártó)

    ÉRTÉKEK(1157 , "B" );

Ebben az esetben egy sor beszúrásakor a hiányzó értéket az alapértelmezett érték, a PC helyettesíti. Vegye figyelembe, hogy ha nincs alapértelmezett érték megadva egy oszlophoz a CREATE TABLE utasításban, és nincs megadva NOT NULL megszorítás, amely tiltja a NULL használatát az adott táblázatoszlopban, akkor a NULL alapértelmezett értékét feltételezi.

Felmerül a kérdés: lehetséges-e nem megadni az oszlopok listáját, és ennek ellenére az alapértelmezett értékeket használni? A válasz igen. Ehhez ahelyett, hogy kifejezetten megadna egy értéket, használja a lefoglalt DEFAULT szót:

    INSERT INTO Product_D

    ÉRTÉKEK ("B" , 1158 , ALAPÉRTÉKELÉS );

Mivel minden oszlopnak alapértelmezett értéke van, egy sor alapértelmezett értékekkel történő beszúrásához a következőt írhatja:

    INSERT INTO Product_D

    ÉRTÉKEK (ALAPÉRTELMEZETT , ALAPÉRTELMEZETT , ALAPÉRTELMEZETT ) ;

Van azonban erre az esetre egy speciális DEFAULT VALUES konstrukció (lásd az operátor szintaxisát), amellyel a fenti operátor átírható a következőre:

    INSERT INTO Product_D ALAPÉRTELMEZETT ÉRTÉKEK ;

Vegye figyelembe, hogy amikor beszúr egy sort a táblázatba, minden korlátozás érvényesül ezt a táblázatot. Ezek lehetnek elsődleges kulcs kényszerek ill egyedi index, ellenőrizze a CHECK típusú megszorításokat, a hivatkozási integritási megszorításokat. Bármely korlátozás megsértése esetén a sor beillesztése elutasításra kerül. Tekintsük most egy segédlekérdezés használatának esetét. Tegyük fel, hogy a Termék_D táblába szeretnénk beszúrni a Termék tábla összes modelljéhez kapcsolódó sorát személyi számítógépek(type='PC'). Mivel a szükséges értékek már szerepelnek néhány táblázatban, a beszúrt sorok manuális kialakítása egyrészt nem hatékony, másrészt beviteli hibákat is megengedhet. Egy segédlekérdezés az alábbi problémákat oldja meg:

Ebben az esetben indokolt a "*" szimbólum használata a részlekérdezésben, mivel az oszlopok sorrendje mindkét tábla esetében azonos. Ha ez nem így lenne, akkor vagy az INSERT utasításban, vagy az allekérdezésben, vagy mindkettőben egy oszloplistát kell alkalmazni, amely megfelel az oszlopok sorrendjének:

Itt, mint korábban, nem minden oszlopot adhat meg, ha a meglévő alapértelmezett értékeket szeretné használni, például:

Ebben az esetben a Product_D tábla típusoszlopa az összes beszúrt sornál az alapértelmezett PC értékre lesz beállítva.

Ne feledje, hogy predikátumot tartalmazó részlekérdezés használatakor csak azok a sorok kerülnek beszúrásra, amelyeknél az állítmány értéke IGAZ (nem UNKNOWN !). Más szóval, ha a Termék tábla típusoszlopa nullázható lenne, és ez az érték több sorban szerepel, akkor ezek a sorok nem kerülnek be a Product_D táblába.

Az egyetlen sor INSERT utasításba történő beszúrásának korlátainak kiküszöbölése érdekében, amikor sorkonstruktort használunk egy VALUES záradékban, mesterséges trükk egy olyan segédlekérdezés használata, amely egy sort alkot UNION ALL záradékkal. Tehát ha több sort kell beszúrnunk egyetlen INSERT utasítással, a következőket írhatjuk:

    INSERT INTO Product_D

    SELECT "B" AS gyártó, 1158 AS modell, "PC" AS típus

    UNIÓ MINDEN

    SELECT "C", 2190, "Laptop"

    UNIÓ MINDEN

    KIVÁLASZTÁS "D" , 3219 , "Nyomtató" ;

Az UNION ALL használata előnyösebb, mint az UNION, még akkor is, ha garantált, hogy nem lesznek ismétlődő sorok, mert ebben az esetben nem történik meg a duplikációk ellenőrzése.

Megjegyzendő, hogy több sor beszúrása a string konstruktor segítségével már megvalósult A Microsoft Corporation által kifejlesztett relációs adatbázis-kezelő rendszer (DBMS).A strukturált lekérdezési nyelv egy általános célú számítógépes nyelv, amelyet relációs adatbázisokban lévő adatok létrehozására, módosítására és kezelésére használnak. SQL szerver 2008. Ennek a lehetőségnek a birtokában az utolsó lekérdezés átírható a következőképpen:

    INSERT A termék_D ÉRTÉKEIBE

    ("B" , 1158 , "PC") ,

    ("C" , 2190 , "Laptop") ,

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.

Az SQL INSERT INTO és INSERT SELECT utasítások új sorok táblába történő beszúrására szolgálnak. Az utasítások használatának két módja van:

  1. Csak értékek: Az első módszer csak a beszúrandó adatértékek megadása az oszlopnevek nélkül.

Szintaxis:

INSERT INTO táblanév ÉRTÉKEK (érték1, érték2, érték3,...); table_name: a tábla neve. érték1, érték2,.. : az első oszlop, a második oszlop, ... értékei az új bejegyzéshez

  1. Oszlopok nevei és értékei: A második módszer meghatározza a beszúrandó oszlopneveket és sorértékeket:

Szintaxis:

INSERT INTO táblanév(oszlop1,oszlop2,oszlop3,..) VALUES(érték1,érték2,érték3,...); table_name: a tábla neve. oszlop1: első oszlop neve, második oszlop... érték1, érték2,.. : első oszlop, második oszlop értékei,... új bejegyzéshez

Kérések:

1. módszer ( csak értékeket szúr be):

INSERT INTO Student VALUES("5","HARSH","NYUGAT-BENGÁLIA","8759770477","19");

Eredmény:

Után az INSERT használatával Az INTO SELECT tábla Student most így fog kinézni:

ROLL_NO NÉV CÍM TELEFON Kor
1 Ram Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
5 DURVA NYUGAT-BENGÁL 8759770477 19

2. módszer ( csak a megadott oszlopokba írja be az értékeket):

INSERT INTO Diák (ROLL_SZÁM, NÉV, Életkor) ÉRTÉKEK ("5", "PRATIK", "19");

Eredmény:

A tanuló táblázat most így fog kinézni:

ROLL_NO NÉV CÍM TELEFON Kor
1 Ram Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
5 PRATIK nulla nulla 19

Vegye figyelembe, hogy az értéket nem tartalmazó oszlopok nullára vannak állítva.

A SELECT használata az INSERT INTO utasításban

A MySQL INSERT SELECT utasítás segítségével sorokat másolhat az egyik táblából, és beillesztheti őket egy másikba.

Az operátor használata megegyezik az INSERT INTO használatával. A különbség az, hogy a SELECT utasítás egy másik tábla adatainak kiválasztására szolgál. Alul láthatók különböző módokon az INSERT INTO SELECT segítségével:

  • Szúrja be a táblázat összes oszlopát: Az összes adatot átmásolhatja egy táblázatba, és beillesztheti egy másik táblába.

Szintaxis:

INSERT INTO első_tábla SELECT * FROM második_tábla; first_table: Az első tábla neve. second_table: a második tábla neve.

Egy SELECT utasítást használtunk az adatok másolására az egyik táblából, az INSERT INTO utasítással pedig a másik táblába való beillesztéséhez.

  • Egyes táblázatoszlopok beszúrása. Csak egy táblázat oszlopait másolhatja át, amelyeket be szeretne illeszteni egy másik táblába.

Szintaxis:

INSERT INTO első_tábla(oszlopnevek1) SELECT oszlopnevek2 FROM második_tábla; first_table: Az első tábla neve. second_table: a második tábla neve. colnames1: vesszővel elválasztott oszlopnevek(,) az 1. táblához. col-names2: vesszővel elválasztott oszlopnevek(,) a 2. táblához.

SELECT utasítással csak a második tábla kiválasztott oszlopaiból másoltunk adatokat, az első táblába pedig egy MySQL INSERT INTO SELECT utasítást használtunk.

  • Adott sorok másolása egy táblázatból. Kimásolhat adott sorokat egy táblázatból, hogy később beillessze egy másik táblába, ha egy WHERE záradékot használ egy SELECT utasítással. Ebben az esetben a megfelelő WHERE záradékot kell használnia.

Szintaxis:

2. táblázat: LateralStudent

ROLL_NO NÉV CÍM TELEFON Kor
7 SOUVIK DUMDUM LÖVEDÉK 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 SOMESH ROHTAK 9687543210 20

Kérések:

1. módszer ( szúrjon be minden sort és oszlopot):

INSERT INTO Student SELECT * FROM LateralStudent;

Eredmény:

Ez a lekérdezés a LateralStudent táblából származó összes adatot beszúrja a Student táblába. Az SQL INSERT INTO SELECT alkalmazása után a Student tábla így fog kinézni:

ROLL_NO NÉV CÍM TELEFON Kor
1 Ram Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
7 SOUVIK DUMDUM LÖVEDÉK 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 SOMESH ROHTAK 9687543210 20

2. módszer ( szúrjon be egyes oszlopokat):

INSERT INTO Student(ROLL_NO,NAME,Age) SELECT ROLL_NO, NÉV, Életkor FROM LateralStudent;

Eredmény:

Ez a lekérdezés a LateralStudent tábla ROLL_NO , NAME és Age oszlopaiból szúr be adatokat a Student táblába. A Student táblázat többi oszlopa null értékre lesz állítva. Az SQL INSERT SELECT alkalmazása után a táblázat így fog kinézni:

ROLL_NO NÉV CÍM TELEFON Kor
1 Ram Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
7 SOUVIK Nulla nulla 18
8 NIRAJ Nulla nulla 19
9 SOMESH Nulla nulla 20
  • Konkrét beszúrandó sorok kiválasztása:

Eredmény:

Ez a lekérdezés csak az első sort választja ki a LateralStudent táblából, hogy beszúrja a tanulói táblába. Az INSERT SELECT alkalmazása után a táblázat így fog kinézni.

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. Van két különböző formák ezt az utasítást:

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ést hajtanak végre a személyzeti számok, a projektszámok és a projekt kezdési dátumainak lekérésére minden, a p2 projekten dolgozó "menedzser" beosztású alkalmazottnál, majd betöltik 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ához 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 (1. mező, 2. mező...) É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ő kialakítástól eltérően BESZÁLLÍTÁS... KIVÁLASZTÁS... amikor adatot adnak hozzá meglévő táblázat, a konstrukció egy új táblába másolja az adatokat. 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:

  • - az operátorban bármilyen mondatot használhat 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.