Vaata vs salvestatud protseduur
Vaated ja salvestatud protseduurid on kahte tüüpi andmebaasiobjekte. Vaated on salvestatud päringud, mis koguvad andmeid ühest või mitmest tabelist. Siin on süntaks vaate loomiseks
loo või asenda vaate vaate nimi
as
select_statement;
Salvestatud protseduur on eelnev alt kompileeritud SQL-i käsukomplekt, mis salvestatakse andmebaasiserverisse. Igal salvestatud protseduuril on kutsuv nimi, mida kasutatakse nende kutsumiseks teiste pakettide, protseduuride ja funktsioonide sees. See on süntaks (ORACLE'is) salvestatud protseduuri loomiseks
loo või asenda protseduuri protseduurinimi (parameetrid)
on
alusta
avaldused;
erand
erandi_käsitlemine
lõpp;
Vaata
A Vaade toimib virtuaalse tabelina. See peidab valitud avalduse oma keha sees. See valikulause võib olla väga keeruline, mis võtab andmeid mitmest tabelist ja vaatest. Seega, teisisõnu, vaade on nimega select-lause, mis salvestatakse andmebaasi. Vaate abil saab varjata tabelisuhete taga olevat loogikat lõppkasutajate eest. Kuna vaade on salvestatud päringu tulemus, ei säilita see andmeid. See kogub andmeid baastabelitest ja näitab. Vaated mängivad olulist rolli ka andmete turvalisuses. Kui tabeliomanik peab lõppkasutajatele näitama ainult andmekogumit, on vaate loomine hea lahendus. Vaateid saab jagada kahte kategooriasse
- Värskendatavad vaated (Vaated, mida saab kasutada SISESTAMISE, VÄRSKENDAMISE ja KUSTUTAMISE jaoks)
- Mittevärskendatavad vaated (Vaated, mida ei saa kasutada SISESTAMISE, VÄRSKENDAMISE ja KUSTUTAMISE jaoks)
Värskendatavad vaated ei tohi sisaldada järgmisi, Määra operaatorid (TERV, MIINUS, UNION, UNION ALL)
DISTINCT
Rühma koondfunktsioonid (AVG, COUNT, MAX, MIN, SUM jne)
GROUP BY Clause
TELLIMINE klausli järgi
ÜHENDAGE klausli järgi
ALUSTAGE klausliga
Kogu avaldis valikuloendis
Alampäring valikuloendis
Liitu päringuga
Salvestatud protseduur
Salvestatud protseduure nimetatakse programmeerimisplokkideks. Neil peab olema nimi, millele helistada. Salvestatud protseduurid aktsepteerivad parameetreid kasutaja sisendiks ja töötlevad vastav alt protseduuri taga olevale loogikale ning annavad tulemuse (või sooritavad konkreetse toimingu). Muutujate deklaratsioonid, muutujate määramised, juhtlaused, tsüklid, SQL-päringud ja muud funktsioonid/protseduuri-/paketikutsed võivad olla protseduuride korpuses.
Mis vahe on vaatamis- ja salvestamisprotseduuril?
Vaadakem nende kahe erinevusi.
• Vaated toimivad virtuaalsete tabelitena. Neid saab kasutada otse SQL-päringute lõpust (valitud), kuid protseduure ei saa kasutada päringute lõpust.
• Vaadete kehaks on ainult valitud lause, kuid protseduuride kehana võivad olla muutujate deklaratsioonid, muutujate määramised, juhtlaused, tsüklid, SQL-päringud ja muud funktsioonid/protseduuri-/paketikutsed.
• Protseduur aktsepteerib täitmiseks parameetreid, kuid vaated ei soovi parameetreid käivitada.
• Kirjetüüpe saab luua vaadetest kasutades % ROWTYPE, kuid protseduuride abil ei saa kirjetüüpe luua.
• SQL-i näpunäiteid saab kasutada sisevaate valikulauses, et optimeerida täitmisplaani, kuid SQL-i vihjeid ei saa kasutada salvestatud protseduurides.
• KUSTUTAMINE, LISAMINE, VÄRSKENDAMINE, VALIMINE, TAGASIVÄLGEMINE ja SILUMINE saab lubada vaadetel, kuid protseduuride puhul saab lubada ainult VÄLITAMINE ja SILU.