Oracle PL / SQL beszúrás, frissítés, törlés és amp; Válassza ki (példa)

Tartalomjegyzék:

Anonim

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 UPDATE 
SET =,=,=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:

BEGINDELETEFROM
WHERE ;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.