Oracle PL / SQL Vložiť, aktualizovať, vymazať & Vybrať do (príklad)

Obsah:

Anonim

V tomto výučbe sa naučíme používať SQL v PL / SQL. SQL je skutočný komponent, ktorý sa stará o načítanie a aktualizáciu údajov v databáze, zatiaľ čo PL / SQL je komponent, ktorý tieto dáta spracováva. Ďalej v tomto článku budeme diskutovať o tom, ako kombinovať SQL v rámci bloku PL / SQL.

V tomto návode sa naučíte

  • Vkladanie údajov
  • Aktualizácia údajov
  • Vymazanie údajov
  • Výber údajov

Transakcie DML v PL / SQL

DML znamená Data Manipulation Language . Tieto výroky sa používajú hlavne na vykonávanie manipulačnej činnosti. Zaoberá sa nasledujúcimi operáciami.

  • Vkladanie údajov
  • Aktualizácia údajov
  • Vymazanie údajov
  • Výber údajov

V PL / SQL môžeme manipuláciu s údajmi robiť iba pomocou príkazov SQL.

Vkladanie údajov

V PL / SQL môžeme dáta vložiť do ľubovoľnej tabuľky pomocou príkazu SQL INSERT INTO. Tento príkaz vezme za vstup názov tabuľky, stĺpec tabuľky a hodnoty stĺpca a vloží hodnotu do základnej tabuľky.

Príkaz INSERT môže tiež brať hodnoty priamo z inej tabuľky pomocou príkazu 'SELECT' namiesto toho, aby uvádzal hodnoty pre každý stĺpec. Prostredníctvom príkazu 'SELECT' môžeme vložiť toľko riadkov, koľko obsahuje základná tabuľka.

Syntax:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • Vyššie uvedená syntax zobrazuje príkaz INSERT INTO. Názov a hodnoty tabuľky sú povinné polia, zatiaľ čo názvy stĺpcov nie sú povinné, ak príkazy vloženia obsahujú hodnoty pre celý stĺpec tabuľky.
  • Kľúčové slovo „HODNOTY“ je povinné, ak sú hodnoty uvedené osobitne, ako je uvedené vyššie.

Syntax:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • Vyššie uvedená syntax zobrazuje príkaz INSERT INTO, ktorý pomocou príkazu SELECT preberá hodnoty priamo z .
  • Kľúčové slovo „VALUES“ by v tomto prípade nemalo byť, pretože hodnoty nie sú uvedené osobitne.

Aktualizácia údajov

Aktualizácia údajov znamená aktualizáciu hodnoty ktoréhokoľvek stĺpca v tabuľke. To je možné vykonať pomocou príkazu „UPDATE“. Tento príkaz berie ako vstup názov tabuľky, názov stĺpca a hodnotu a aktualizuje údaje.

Syntax:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • Vyššie uvedená syntax zobrazuje UPDATE. Kľúčové slovo 'SET' dáva pokyn PL / SQL stroju, aby aktualizoval hodnotu stĺpca o danú hodnotu.
  • Klauzula „WHERE“ je voliteľná. Ak táto klauzula nie je uvedená, aktualizuje sa hodnota uvedeného stĺpca v celej tabuľke.

Vymazanie údajov

Vymazanie údajov znamená vymazanie jedného celého záznamu z databázovej tabuľky. Na tento účel sa používa príkaz 'DELETE'.

Syntax:

BEGINDELETEFROM
WHERE ;END;
  • Vyššie uvedená syntax zobrazuje príkaz DELETE. Kľúčové slovo „FROM“ je voliteľné a s klauzulou „FROM“ alebo bez nej sa príkaz správa rovnako.
  • Klauzula „WHERE“ je voliteľná. Ak táto klauzula nie je uvedená, celá tabuľka sa vymaže.

Výber údajov

Projekcia / načítanie údajov znamená načítanie požadovaných údajov z databázovej tabuľky. To sa dá dosiahnuť použitím príkazu „SELECT“ s klauzulou „INTO“. Príkaz 'SELECT' načíta hodnoty z databázy a klauzula 'INTO' tieto hodnoty priradí miestnej premennej bloku PL / SQL.

Ďalej sú uvedené body, ktoré je potrebné zohľadniť vo vyhlásení „SELECT“.

  • Príkaz 'SELECT' by mal vrátiť iba jeden záznam pri použití klauzuly 'INTO', pretože jedna premenná môže obsahovať iba jednu hodnotu. Ak vyhlásenie 'SELECT' vráti viac ako jednu hodnotu, bude vyvolaná výnimka 'TOO_MANY_ROWS'.
  • Príkaz 'SELECT' priradí hodnotu premennej v klauzule 'INTO', takže na vyplnenie hodnoty je potrebné získať z tabuľky aspoň jeden záznam. Ak nezískalo žiadny záznam, vyvolá sa výnimka 'NO_DATA_FOUND'.
  • Počet stĺpcov a ich údajový typ v klauzule „SELECT“ by sa mal zhodovať s počtom premenných a ich údajovými typmi v klauzule „INTO“.
  • Hodnoty sa načítajú a vyplnia v rovnakom poradí, ako je uvedené vo výpise.
  • Klauzula „WHERE“ je voliteľná, čo umožňuje väčšie obmedzenie záznamov, ktoré sa majú načítať.
  • Príkaz „SELECT“ je možné použiť v podmienkach „WHERE“ iných príkazov DML na definovanie hodnôt podmienok.
  • Príkaz „SELECT“ pri použití príkazov „INSERT“, „UPDATE“ a „DELETE“ by nemal mať klauzulu „INTO“, pretože v týchto prípadoch nebude obsahovať žiadnu premennú.

Syntax:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • Vyššie uvedená syntax zobrazuje príkaz SELECT-INTO. Kľúčové slovo „FROM“ je povinné, ktoré identifikuje názov tabuľky, z ktorej je potrebné načítať údaje.
  • Klauzula „WHERE“ je voliteľná. Ak táto klauzula nie je uvedená, načítajú sa údaje z celej tabuľky.

Príklad 1 : V tomto príklade sa dozvieme, ako vykonávať operácie DML v PL / SQL. Nasledujúce štyri záznamy vložíme do tabuľky emp.

EMP_NAME EMP_NO PLATBA MANAŽÉR
BBB 1 000 25000 AAA
XXX 1001 10 000 BBB
RRRR 1002 10 000 BBB
ZZZ 1003 7500 BBB

Potom aktualizujeme plat „XXX“ na 15000 a odstránime záznam zamestnanca „ZZZ“. Nakoniec ideme premietnuť podrobnosti o zamestnancovi „XXX“.

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;/

Výkon:

Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB

Vysvetlenie kódu:

  • Riadok kódu 2-5 : Deklarovanie premennej.
  • Riadok kódu 7-14 : Vkladanie záznamov do tabuľky emp.
  • Riadok kódu 15 : Zaviazanie transakcií vloženia.
  • Riadok kódu 17-19 : Aktualizácia platu zamestnanca „XXX“ na 15000
  • Riadok kódu 20 : Potvrdenie transakcie aktualizácie.
  • Riadok kódu 22 : Vymazanie záznamu „ZZZ“
  • Riadok kódu 23 : Zaviazanie sa transakcie odstránenia.
  • Riadok kódu 25-27 : Výber záznamu „XXX“ a vyplnenie do premennej l_emp_name, l_emp_no, l_salary, l_manager.
  • Riadok kódu 28-32 : Zobrazenie hodnoty načítaných záznamov.