Ebben az oktatóanyagban megtanuljuk, hogyan kell használni az SQL-t PL / SQL-ben. Az SQL az a tényleges összetevő, amely az adatbázisban lévő adatok beolvasásáról és frissítéséről gondoskodik, míg a PL / SQL az az adatfeldolgozó összetevő. Továbbá ebben a cikkben azt is megvitatjuk, hogyan lehet az SQL-t egyesíteni a PL / SQL blokkon belül.
Ebben az oktatóanyagban megtanulja-
- Adatbevitel
- Adatok frissítése
- Adattörlés
- Adatok kiválasztása
DML-tranzakciók PL / SQL-ben
A DML az adatkezelési nyelv rövidítése . Ezeket az állításokat elsősorban a manipulációs tevékenység végrehajtására használják. Az alábbi műveletekkel foglalkozik.
- Adatbevitel
- Adatok frissítése
- Adattörlés
- Adatok kiválasztása
A PL / SQL-ben csak az SQL parancsok használatával végezhetünk adatkezelést.
Adatbevitel
A PL / SQL-ben bármelyik táblába beilleszthetjük az adatokat az INSERT INTO SQL paranccsal. Ez a parancs beveszi a táblázat nevét, a táblázat oszlopát és az oszlop értékeit, és beilleszti az értéket az alap táblába.
Az INSERT parancs az értékeket közvetlenül egy másik táblából is átveheti a „SELECT” utasítás segítségével, ahelyett, hogy megadná az egyes oszlopok értékeit. A 'SELECT' utasítással annyi sort beszúrhatunk, amennyit az alaptábla tartalmaz.
Szintaxis:
BEGININSERT INTO( , ,… )VALUES( ,… : );END;
- A fenti szintaxis az INSERT INTO parancsot mutatja. A táblázat neve és értékei kötelező mezők, míg az oszlopok neve nem kötelező, ha az insert utasítások a táblázat összes oszlopához tartalmaznak értékeket.
- Az „ÉRTÉKEK” kulcsszó kötelező, ha az értékeket külön adják meg, a fentiek szerint.
Szintaxis:
BEGININSERT INTO( , ,… , )SELECT , ,… FROM ;END;
- A fenti szintaxis az INSERT INTO parancsot mutatja, amely az értékeket közvetlenül a
-ből veszi a SELECT paranccsal. - A „VALUES” kulcsszó ebben az esetben nem szerepelhet, mivel az értékeket nem adják meg külön.
Adatok frissítése
Az adatfrissítés egyszerűen a táblázat bármely oszlopának értékének frissítését jelenti. Ezt az 'UPDATE' utasítással lehet megtenni. Ez az utasítás beveszi a táblázat nevét, oszlopnevét és értékét, és frissíti az adatokat.
Szintaxis:
BEGIN UPDATESET = , = , = WHERE ;END;
- A fenti szintaxis az UPDATE-t mutatja. A „SET” kulcsszó arra utasítja a PL / SQL motort, hogy frissítse az oszlop értékét a megadott értékkel.
- A WHERE záradék nem kötelező. Ha ezt a záradékot nem adjuk meg, akkor a teljes táblázat említett oszlopának értéke frissül.
Adattörlés
Az adatok törlése azt jelenti, hogy egy teljes rekordot törölni kell az adatbázis táblából. Erre a célra a „DELETE” parancsot használják.
Szintaxis:
BEGINDELETEFROMWHERE ;END;
- A fenti szintaxis a DELETE parancsot mutatja. A „FROM” kulcsszó opcionális, és a „FROM” záradékkal vagy anélkül a parancs ugyanúgy viselkedik.
- A WHERE záradék nem kötelező. Ha ez a záradék nincs megadva, akkor az egész tábla törlődik.
Adatok kiválasztása
Az adatvetítés / lekérés a szükséges adatok lekérését jelenti az adatbázis táblából. Ez a 'SELECT' és az 'INTO' záradékkal elérhető. A 'SELECT' parancs lekéri az értékeket az adatbázisból, az 'INTO' záradék pedig ezeket az értékeket hozzárendeli a PL / SQL blokk helyi változójához.
Az alábbiakban felsoroljuk azokat a pontokat, amelyeket figyelembe kell venni a „SELECT” utasításban.
- A 'SELECT' utasítás csak egy rekordot adhat vissza, míg az 'INTO' záradékot használja, mivel egy változó csak egy értéket tartalmazhat. Ha a „SELECT” utasítás egynél több értéket ad vissza, akkor a „TOO_MANY_ROWS” kivétel felvetésre kerül.
- A 'SELECT' utasítás hozzárendeli az értéket az 'INTO' záradékban szereplő változóhoz, ezért az érték feltöltéséhez legalább egy rekordot kell kapnia a táblából. Ha nem kapott rekordot, akkor a „NO_DATA_FOUND” kivétel felmerül.
- A „SELECT” záradék oszlopainak és adattípusainak meg kell egyezniük az „INTO” záradékban szereplő változók és adattípusok számával.
- Az értékeket ugyanabban a sorrendben kapják le és töltik fel, ahogyan azt a nyilatkozat említi.
- A 'WHERE' záradék opcionális, amely lehetővé teszi a beolvasni kívánt rekordok nagyobb korlátozását.
- A 'SELECT' utasítás használható más DML utasítások WHERE feltételében a feltételek értékeinek meghatározásához.
- Az „INSERT”, „UPDATE”, „DELETE” utasítások használatakor a „SELECT” utasításnak nem szabad tartalmaznia „INTO” záradékot, mivel ezekben az esetekben nem tölt be semmilyen változót.
Szintaxis:
BEGINSELECT,… INTO ,… FROM WHERE ;END;
- A fenti szintaxis a SELECT-INTO parancsot mutatja. A „FROM” kulcsszó kötelező, amely azonosítja a tábla nevét, amelyből az adatokat be kell szerezni.
- A WHERE záradék nem kötelező. Ha ez a záradék nincs megadva, akkor a teljes táblázat adatai be lesznek töltve.
1. példa : Ebben a példában megnézzük, hogyan lehet DML műveleteket végrehajtani PL / SQL-ben. Az alábbi négy rekordot be fogjuk illeszteni az emp táblázatba.
EMP_NAME | EMP_NO | FIZETÉS | MENEDZSER |
BBB | 1000 | 25000 | AAA |
XXX | 1001 | 10000 | BBB |
YYY | 1002 | 10000 | BBB |
ZZZ | 1003 | 7500 | BBB |
Ezután frissíteni fogjuk az „XXX” fizetését 15000-re, és törölni fogjuk a „ZZZ” alkalmazotti nyilvántartást. Végül kivetítjük a (z) „XXX” alkalmazott részleteit.
DECLAREl_emp_name VARCHAR2(250);l_emp_no NUMBER;l_salary NUMBER;l_manager VARCHAR2(250);BEGIN INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘BBB’,1000,25000,’AAA’);INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES('XXX',1001,10000,’BBB);INSERT INTO emp(emp_name,emp_no,salary,managedVALUES(‘YYY',1002,10000,'BBB');INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘ZZZ',1003,7500,'BBB'):COMMIT;Dbms_output.put_line(‘Values Inserted');UPDATE EMPSET salary=15000WHERE emp_name='XXX';COMMIT;Dbms_output.put_line(‘Values Updated');DELETE emp WHERE emp_name='ZZZ';COMMIT:Dbms_output.put_line('Values Deleted );SELECT emp_name,emp_no,salary,manager INTO l_emp_name,l_emp_no,l_salary,l_manager FROM emp WHERE emp_name='XXX';Dbms output.put line(‘Employee Detail’);Dbms_output.put_line(‘Employee Name:‘||l_emp_name);Dbms_output.put_line(‘Employee Number:‘||l_emp_no);Dbms_output.put_line(‘Employee Salary:‘||l_salary);Dbms output.put line(‘Emplovee Manager Name:‘||l_manager):END;/
Kimenet:
Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB
Kód Magyarázat:
- 2-5 . Kódsor: A változó deklarálása.
- Kódsor 7-14 : A rekordok beszúrása az emp táblába.
- 15. kódsor: A beszúrási tranzakciók végrehajtása.
- Kódsor 17-19 : A (XXX) alkalmazott fizetésének frissítése 15000-re
- 20. kódsor: A frissítési tranzakció végrehajtása.
- 22. kódsor: A „ZZZ” rekordjának törlése
- 23. kódsor: A törlési tranzakció végrehajtása.
- 25-27 kódsor: Az 'XXX' rekordjának kiválasztása és feltöltése az l_emp_name, l_emp_no, l_salary, l_manager változóba.
- Kódsor 28-32 : A lekért rekordérték megjelenítése.