az előző cikkben két táblát hoztunk létre, és most készen állunk az SQL INSERT into TABLE parancs használatára, és ezeket a táblákat adatokkal töltjük fel. Ennek érdekében elkészítjük az utasításokat az Excelben, majd beillesztjük ezeket az utasításokat az SQL Serverbe, és végrehajtjuk őket. A parancsok előtt és után is ellenőrizzük mindkét tábla tartalmát a SELECT utasítás segítségével. Tehát kezdjük.
INSERT into TABLE utasítás
nincs értelme adatbázis-struktúrákat létrehozni anélkül, hogy bármilyen adat lenne az adatbázisban. Az INSERT into TABLE utasítás az, amelyet a probléma megoldására használunk. Ez az egyik a négy fontos SQL DML (Data Manipulation Language) utasítások SELECT … FROM, INSERT into TABLE, UPDATE … SET, and DELETE FROM… a teljes szintaxis elég összetett, mivel a INSERT INTO is lehet egy nagyon összetett nyilatkozatot. Kérjük, vessen egy pillantást a T-SQL INSERT into TABLE teljes szintaxisra itt.
ebben a cikkben fogjuk használni egyszerűsített, hanem a leggyakoribb szintaxis:
INSERT INTO table_name (column_list) értékek (column_values);
az ilyen INSERT into utasítás, akkor meg kell határozni a table_name, ahol beszúrja az adatokat, felsorolja az összes oszlopot (talán akkor használja őket, de talán csak néhány közülük), majd felsorolja az összes értéket. Figyelje meg, hogy az oszlopértékeknek meg kell egyezniük az oszloptípusok definíciójával (például nem lehet szöveges értéket beszúrni a numerikus oszlopba/attribútumba).
abban az esetben, ha az összes értéket beszúrja a táblázatba, akkor nem kell az összes oszlopot felsorolnia a táblázat_neve után, és még egyszerűbb szintaxist is használhat:
beszúrás a táblázat_neve értékekbe (oszlop_értékek);
személy szerint inkább az összes oszlopnevet sorolom fel, mert ez a megközelítés akkor is működik, ha új oszlopokat adunk hozzá a meglévő táblához.
-
Megjegyzés: Az INSERT into TABLE utasítás írható oly módon, hogy több sort szúrunk be 1 utasítással, vagy akár a SELECT utasítással kombinálva.
az egyszerűsített szintaxis egy ilyen esetben, amikor INSERT és SELECT utasításokat kombináljuk az alábbiakban:
INSERT INTO destination_table (column_list, …)
SELECT column_list
from source_table
WHERE feltétel;
INSERT INTO TABLE example
mielőtt bármit csinálnánk, nézzük meg, mi van tárolva a táblázatokban. Ezt a modellt hoztuk létre az előző cikkben. Láthatja, hogy van egy táblázatunk, ahol az országokra vonatkozó adatokat tároljuk, egy másik pedig a városokra vonatkozó adatokat. Ők is kapcsolatban állnak egymással, de erről a következő cikkben fogunk beszélni:
a két táblázat tartalmának ellenőrzéséhez két egyszerű SELECT utasítást fogunk használni:
1
2
|
válasszon * országból;
válasszon * városból;
|
bár a SELECT nem a cikk témája, meg kell említeni, hogy’ alapvető szintaxisa:
válasszon 1 vagy több attribútumot a táblázatból;
a csillag (*) a SELECT után azt jelenti, hogy a lekérdezés eredményében meg akarjuk jeleníteni az adott táblázat összes attribútumának/oszlopának értékeit.
ahogy az várható volt, ebben a két táblázatban nincs semmi, az SQL Server pedig az eredményt adja vissza, amint az az alábbi képen látható. Az utasítások az oszlopok nevét adják vissza a SELECT lekérdezésben használt táblázatokból, de ezekben az oszlopnevekben nincs semmi. Ezt üres Excel lapként tekintheti meg, meghatározott oszlopnevekkel (fejlécekkel). Tudja, hogy milyen típusú adatoknak kell lenniük, de nincs semmi:
ezen változtatnunk kell.
először az országtáblát töltjük fel a következő INSERT into TABLE utasításokkal:
1
2
3
4
5
|
INSERT into country (ország_neve, ország_neve, ország_kódja) értékek (‘Deutschland’, ‘Németország’, ‘DEU’);
INSERT into country (ország_neve, ország_neve_eng, ország_kódja) értékek (‘Srbija’, ‘Szerbia’, ‘SRB’);
INSERT into country (ország_neve, ország_neve_eng, ország_kódja) értékek (‘Hrvatska’, ‘Horvátország’, ‘hrv’);
helyezze be az ország (ország_neve, ország_neve, ország_kódja) értékeket (‘Egyesült Államok’,’ Egyesült Államok’,’ USA’);
helyezze be az országba (ország_neve, ország_neve_eng, ország_kódja) értékeket (‘Polska’, ‘Lengyelország’, ‘POL’);
|
öt ország adatait sikerült beilleszteni. Az eredmény az alábbi képen látható. Mivel 5 INSERT into TABLE utasításunk volt, 1″ (1 sor érintett) “üzenetünk van az öt parancs mindegyikéhez az “üzenetek” részben:
kérjük, vegye figyelembe, hogy az összes értéket (az értékek után) ugyanúgy rendeztük, mint az oszlopokat (az országba való beillesztés után). Mindhárom érték szöveg. A lekérdezés akkor is működne, ha nem a megfelelő módon rendeltük meg őket, mert mindegyiknek ugyanaz az adattípusa (szöveg), de az adatokat rossz oszlopokban tárolják. Ebben az esetben szemantikai hiba lenne.
a következő dolog, amit meg kell tennünk, hogy feltöltjük a városi táblát. Ezt a következő utasításokkal fogjuk megtenni:
1
2
3
4
5
6
|
INSERT into city (city_name, lat, long, country_id) értékek (‘Berlin’, 52.520008, 13.404954, 1);
INSERT into city (city_name, lat, long, country_id) értékek (‘Belgrád’, 44.787197, 20.457273, 2);
helyezze be a városba (városnév, lat, hosszú, ország_id) értékeket (‘Zágráb’, 45.815399, 15.966568, 3);
INSERT into city (city_name, lat, long, country_id) értékek (‘New York’, 40.73061, -73.935242, 4);
helyezze be a city (city_name, lat, long, country_id) értékeket (‘Los Angeles’, 34.052235, -118.243683, 4);
INSERT into city (city_name, lat, long, country_id) értékek (‘Varsó’, 52.237049, 21.017532, 5);
|
ezen állítások végrehajtása után ez volt az eredmény. A várakozásoknak megfelelően 6 sor került hozzáadásra. Még egyszer 1 üzenetünk van minden egyes beszúráshoz az üzenetek részben:
ebben az esetben problémát okozna, ha nem azonos módon soroltuk fel az értékeket, oszlopokat soroltunk fel, mert adattípusuk nem azonos (sorrendben vannak: szöveg, tizedes szám, tizedes szám, egész szám). Ezt a típusú hibát szintaktikai hibának nevezzük, és maga a DBMS megakadályozza a lekérdezés futtatását.
SELECT – ellenőrizze, hogy mi került beillesztésre
most még egyszer ellenőrizzük, hogy mi van tárolva a táblázatokban. Ugyanazt a két SELECT utasítást fogjuk használni, amelyeket korábban használtunk:
1
2
|
válasszon * országból;
válasszon * városból;
|
az eredmény az alábbi képen látható. Kérjük, vegye figyelembe, hogy a lekérdezések végrehajtása után most már az eredmények és az üzenetek szakaszai vannak a lekérdezések alatt:
arra a következtetésre juthatunk, hogy adatbázisunkban mindkét tábla tartalmaz adatokat, és most készen állunk arra, hogy “játsszunk” valami ennél sokkal hűvösebb dologgal.
beszúrás a táblázatba az Excel használatával
sok esetben több SQL utasítást kell futtatnia a megadott adatkészlet alapján. Ez nem csak az INSERT into TABLE utasítást jelenti, hanem az UPDATE és DELETE utasításokat is. Nincs értelme ezeket az állításokat manuálisan beírni, de inkább okosabb megközelítést kell alkalmaznia – készítsen képleteket (vagy szkriptet), amelyek automatizálják ezt a részt. Ilyen helyzetekben inkább az Excel és a képletek használatát részesítem előnyben.
Megjegyzés: Személy szerint az adatbázisok összefüggésében nagyon hasznosnak találom az Excel-t, amikor több utasítást kell létrehoznom, valamint az eredmények bemutatásakor és/vagy irányítópultok létrehozásakor.
vessünk egy pillantást ezekre a képletekre:
az első ország (Németország) beszúrásához használt képlet a következő:
1
|
=”helyezze be az ország (ország_neve, ország_neve, ország_kód) értékeket (‘”& B2 & “‘, ‘” & C2 & “‘, ‘” & D2 &”‘);”
|
az első város (Berlin) beszúrásához használt képlet a következő:
1
|
=”INSERT in city (city_name, lat, long, country_id) értékek (‘”& B2 & “‘, ” & C2 &”, ” & D2 &”, ” & E2 & “);”
|
nyugodtan használja ezeket a képleteket a feladatok automatizálásához. Hasonló megközelítést fogunk használni később, amikor több UPDATE és DELETE utasítást futtatunk (és még a SELECT utasítások létrehozásakor is).
következtetés
ebben a cikkben a négy legfontosabb SQL utasítás egyikét fedtük le –INSERT into TABLE utasítás. Az előző cikkben létrehozott táblázatok feltöltésére használtuk. Ez előfeltétele volt annak, hogy áttérjünk az okosabb dolgokra – például az adatbázis-elméletre, és ami még fontosabb, az adatbázisunkból származó eredmények visszaküldésére.
a következő cikkben az elsődleges kulcsról beszélünk – mi az, és miért fontos az adatbázisokban.
Tartalomjegyzék
Tanuljon SQL-t: adatbázis létrehozása & hozzon létre táblázat műveleteket
Tanuljon SQL-t: helyezze be a táblázatba
Tanuljon SQL-t: elsődleges kulcs
tanuljon SQL-t: idegen kulcs
ismerje meg az SQL-t: SELECT utasítás
ismerje meg az SQL-t: Belső csatlakozás vs bal csatlakozás
Ismerje meg az SQL-T: SQL szkriptek
ismerje meg az SQL-t: a kapcsolatok típusai
Ismerje meg az SQL-t: Csatlakozzon több táblához
Ismerje meg az SQL-t: összesített függvények
Ismerje meg az SQL-t: hogyan kell összetett kiválasztási lekérdezést írni
Ismerje meg az SQL-t: az INFORMATION_SCHEMA Adatbázis
Ismerje meg az SQL-T: SQL adattípusok
Ismerje meg az SQL-t: állítsa be az elméletet
tanuljon SQL-t: felhasználó által definiált függvények
Tanuljon SQL-t: felhasználó által definiált tárolt eljárások
Tanuljon SQL-T: SQL nézetek
Tanuljon SQL-T: SQL-triggerek
Tanuljon SQL-t: gyakoroljon SQL-lekérdezéseket
Ismerje meg az SQL-t: SQL lekérdezési példák
Ismerje meg az SQL-t: hozzon létre jelentést manuálisan az SQL lekérdezések segítségével
Ismerje meg az SQL: SQL Server dátum-és időfüggvények
Ismerje meg az SQL: SQL Server Pivot táblákat
> Ismerje meg az SQL-t: sql server Exportálás Excel-be
Ismerje meg az SQL-t: bevezetés az SQL Server hurkokba
Ismerje meg az SQL: SQL Server kurzorokat
Ismerje meg az SQL: SQL legjobb gyakorlatait az adatok törléséhez és frissítéséhez
Ismerje meg az SQL: elnevezési konvenciókat
Ismerje meg az SQL-t: SQL-rel kapcsolatos munkák
Ismerje meg az SQL-t: nem Equi csatlakozik az SQL Server-hez
Ismerje meg az SQL-T: SQL Injection
Ismerje meg az SQL-t: dinamikus SQL
- szerző
- Legutóbbi hozzászólások
korábbi és jelenlegi elkötelezettségei az adatbázis tervezésétől és kódolásától az adatbázisok oktatásáig, tanácsadásáig és írásáig terjednek. Ne felejtsük el, BI, algoritmusok létrehozása, sakk, Filatélia, 2 kutya, 2 Macska, 1 Feleség, 1 baba…
megtalálja őt a LinkedIn-en
Emil Drkusic összes hozzászólásának megtekintése
- Ismerje meg az SQL-t: dinamikus SQL-március 3, 2021
- Ismerje meg az SQL-T: SQL injekció-November 2, 2020
- Ismerje meg az SQL-t: Nem Equi csatlakozik az SQL Server-hez-szeptember 29, 2020