Oracle PL / SQL Vstavljanje, posodabljanje, brisanje & Izberite Into (primer)

Kazalo:

Anonim

V tej vadnici se bomo naučili uporabljati SQL v PL / SQL. SQL je dejanska komponenta, ki skrbi za pridobivanje in posodabljanje podatkov v zbirki podatkov, PL / SQL pa komponenta, ki te podatke obdeluje. Nadalje bomo v tem članku razpravljali tudi o tem, kako združiti SQL znotraj bloka PL / SQL.

V tej vadnici boste izvedeli-

  • Vstavljanje podatkov
  • Posodobitev podatkov
  • Brisanje podatkov
  • Izbira podatkov

Transakcije DML v PL / SQL

DML pomeni jezik za manipulacijo s podatki . Te izjave se v glavnem uporabljajo za izvajanje manipulacijske dejavnosti. Ukvarja se s spodnjimi operacijami.

  • Vstavljanje podatkov
  • Posodobitev podatkov
  • Brisanje podatkov
  • Izbira podatkov

V PL / SQL lahko manipuliramo s podatki samo z ukazi SQL.

Vstavljanje podatkov

V PL / SQL lahko podatke vstavimo v katero koli tabelo z ukazom SQL INSERT INTO. Ta ukaz bo za vhod vzel ime tabele, vrednosti stolpca in vrednosti stolpca in vrednost vstavil v osnovno tabelo.

Ukaz INSERT lahko vrednosti vzame tudi iz druge tabele z uporabo stavka 'SELECT', namesto da bi dal vrednosti za vsak stolpec. Skozi stavek 'SELECT' lahko vstavimo toliko vrstic, kolikor vsebuje osnovna tabela.

Sintaksa:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • Zgornja sintaksa prikazuje ukaz INSERT INTO. Imena in vrednosti tabele so obvezna polja, imena stolpcev pa niso obvezna, če imajo stavki za vstavljanje vrednosti za vse stolpce tabele.
  • Ključna beseda 'VREDNOTE' je obvezna, če so vrednosti podane ločeno, kot je prikazano zgoraj.

Sintaksa:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • Zgornja sintaksa prikazuje ukaz INSERT INTO, ki z ukazom SELECT vzame vrednosti neposredno iz .
  • Ključna beseda 'VREDNOTE' v tem primeru ne sme biti prisotna, saj vrednosti niso podane ločeno.

Posodobitev podatkov

Posodobitev podatkov preprosto pomeni posodobitev vrednosti katerega koli stolpca v tabeli. To lahko storite z uporabo stavka 'UPDATE'. Ta izjava za vhod vzame ime tabele, ime stolpca in vrednost in posodobi podatke.

Sintaksa:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • Zgornja sintaksa prikazuje UPDATE. Ključna beseda 'SET' navodi, da PL / SQL mehanizem posodobi vrednost stolpca z navedeno vrednostjo.
  • Klavzula WHERE ni obvezna. Če ta klavzula ni podana, bo vrednost omenjenega stolpca v celotni tabeli posodobljena.

Brisanje podatkov

Brisanje podatkov pomeni brisanje enega celotnega zapisa iz tabele zbirke podatkov. V ta namen se uporablja ukaz 'DELETE'.

Sintaksa:

BEGINDELETEFROM
WHERE ;END;
  • Zgornja sintaksa prikazuje ukaz DELETE. Ključna beseda 'FROM' ni obvezna in se ukaz z ali brez klavzule 'FROM' obnaša enako.
  • Klavzula WHERE ni obvezna. Če ta klavzula ni podana, bo celotna tabela izbrisana.

Izbira podatkov

Projekcija / pridobivanje podatkov pomeni pridobivanje zahtevanih podatkov iz tabele baze podatkov. To lahko dosežemo z uporabo ukaza 'SELECT' s klavzulo 'INTO'. Ukaz 'SELECT' bo vrednosti prikril iz baze podatkov, klavzula 'INTO' pa jih bo dodelila lokalni spremenljivki bloka PL / SQL.

Spodaj so točke, ki jih je treba upoštevati v izjavi 'SELECT'.

  • Stavek 'SELECT' mora vrniti samo en zapis, medtem ko uporabljate stavek 'INTO', saj lahko ena spremenljivka vsebuje samo eno vrednost. Če stavek 'SELECT' vrne več kot eno vrednost, bo prikazana izjema 'TOO_MANY_ROWS'.
  • Stavek 'SELECT' bo spremenljivki dodelil vrednost v stavku 'INTO', zato mora iz tabele dobiti vsaj en zapis, da zapolni vrednost. Če ni dobil nobenega zapisa, se vzpostavi izjema "NO_DATA_FOUND".
  • Število stolpcev in njihov tip podatkov v stavku 'SELECT' se mora ujemati s številom spremenljivk in njihovimi tipi podatkov v stavku 'INTO'.
  • Vrednosti se pridobijo in zapolnijo v enakem vrstnem redu, kot je navedeno v izjavi.
  • Klavzula WHERE ni obvezna, kar omogoča večje omejitve zapisov, ki jih je treba pridobiti.
  • Stavek 'SELECT' lahko uporabimo v pogoju 'WHERE' drugih stavkov DML za določitev vrednosti pogojev.
  • Stavek 'SELECT' pri uporabi stavkov 'INSERT', 'UPDATE', 'DELETE' ne sme imeti stavka 'INTO', saj v teh primerih ne bo zapolnil nobene spremenljivke.

Sintaksa:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • Zgornja sintaksa prikazuje ukaz SELECT-INTO. Ključna beseda 'FROM' je obvezna, ki določa ime tabele, iz katere je treba pridobiti podatke.
  • Klavzula WHERE ni obvezna. Če ta klavzula ni podana, bodo pridobljeni podatki iz celotne tabele.

Primer 1 : V tem primeru bomo videli, kako izvajati operacije DML v PL / SQL. Spodnje štiri zapise bomo vstavili v tabelo emp.

EMP_NAME EMP_NO PLAČA VODITELJ
BBB 1000 25000 AAA
XXX 1001 10000 BBB
YYY 1002 10000 BBB
ZZZ 1003 7500 BBB

Nato bomo plačo 'XXX' posodobili na 15000 in izbrisali evidenco zaposlenih 'ZZZ'. Na koncu bomo projicirali podrobnosti o zaposlenem "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;/

Izhod:

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

Razlaga kode:

  • Vrstica kode 2-5 : razglasitev spremenljivke.
  • Vrstica kode 7-14 : Vstavljanje zapisov v tabelo emp.
  • Vrstica kode 15 : Predvajanje transakcij vstavljanja.
  • Šifrirna vrstica 17-19 : Posodobitev plače zaposlenega "XXX" na 15000
  • Vrstica kode 20 : Zavezovanje transakcije posodobitve.
  • Vrstica kode 22 : Brisanje zapisa "ZZZ"
  • Vrstica kode 23 : Izvajanje transakcije brisanja.
  • Vrstica kode 25-27 : Izbira zapisa 'XXX' in zapolnitev v spremenljivko l_emp_name, l_emp_no, l_salary, l_manager.
  • Vrstica kode 28-32 : Prikaz vrednosti pridobljenih zapisov.