Bekyk versus gestoorde prosedure
Aansigte en gestoorde prosedures is twee tipes databasisobjekte. Aansigte is soort gestoorde navrae wat data van een of meer tabelle versamel. Hier is die sintaksis om 'n aansig te skep
skep of vervang aansig-aansignaam
as
select_statement;
'n Gestoorde prosedure is 'n vooraf saamgestelde SQL-opdragstel wat in die databasisbediener gestoor word. Elke gestoorde prosedure het 'n roepnaam, wat gebruik word om hulle binne ander pakkette, prosedures en funksies te noem. Dit is die sintaksis (in ORACLE) om 'n gestoorde prosedure te skep, skep of vervang prosedure-prosedurenaam (parameters)
is
begin
stellings;
uitsondering
exception_handling
end;
Bekyk
A View dien as 'n virtuele tafel. Dit versteek 'n uitgesoekte stelling in sy liggaam. Hierdie uitgesoekte stelling kan 'n baie komplekse een wees, wat data uit verskeie tabelle en aansigte neem. Daarom, met ander woorde, 'n aansig is 'n benoemde kiesstelling, wat in die databasis gestoor word. 'n Aansig kan gebruik word om die logika agter die tabelverhoudings vir eindgebruikers weg te steek. Aangesien 'n aansig 'n resultaat is van 'n gestoorde navraag, hou dit geen data nie. Dit versamel data van die basistabelle en wys. Uitsigte speel ook 'n belangrike rol in datasekuriteit. Wanneer die tabeleienaar slegs 'n stel data aan eindgebruikers moet wys, is die skep van 'n aansig 'n goeie oplossing. Kyke kan in twee kategorieë verdeel word
- Opdateerbare aansigte (aansigte wat gebruik kan word vir INSERT, UPDATE en DELETE)
- Nie-opdateerbare aansigte (aansigte wat nie gebruik kan word vir INSERT, UPDATE en DELETE)
Opdateerbare kyke kan nie volgelinge insluit nie, Stel operateurs (INTERSECT, MINUS, UNION, UNION ALL)
DISTINCT
Groep-aggregaat-funksies (AVG, COUNT, MAX, MIN, SUM, ens.)
GROUP BY Klousule
BESTEL DEUR Klousule
CONNECT BY Clause
BEGIN MET Klousule
Versamelingsuitdrukking in 'n uitgesoekte lys
Subnavraag in 'n uitgesoekte lys
Sluit aan by navraag
Gestoorde prosedure
Gestoorde prosedures word programmeringsblokke genoem. Hulle moet 'n naam hê om te noem. Gestoorde prosedures aanvaar parameters as gebruikersinvoer en verwerk volgens die logika agter die prosedure en gee die resultaat (of voer 'n spesifieke aksie uit). Veranderlike verklarings, veranderlike opdragte, beheerstellings, lusse, SQL-navrae en ander funksies/prosedure/pakketoproepe kan binne die liggaam van prosedures wees.
Wat is die verskil tussen bekyk en gestoorde prosedure?
Kom ons kyk na die verskille tussen hierdie twee.
• Aansigte dien as virtuele tafels. Hulle kan direk vanaf die einde van SQL-navrae gebruik word (kies), maar prosedures kan nie vanaf die einde van navrae gebruik word nie.
• Aansigte het slegs 'n uitgesoekte stelling as hul liggaam, maar prosedures kan Veranderlike verklarings, veranderlike toewysings, kontrole stellings, lusse, SQL-navrae en ander funksies/prosedure/pakketoproepe as die liggaam hê.
• Prosedure aanvaar parameters om uit te voer, maar aansigte wil nie hê dat parameters uitgevoer moet word nie.
• Rekordtipes kan geskep word vanaf aansigte deur % ROWTYPE te gebruik, maar deur gebruik te maak van prosedures kan rekordtipes nie geskep word nie.
• SQL-wenke kan binneaansig-kiesstelling gebruik word om die uitvoeringsplan te optimaliseer, maar SQL-wenke kan nie in gestoorde prosedures gebruik word nie.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK en DEBUG kan op kyke toegestaan word, maar slegs EXECUTE en DEBUG kan op prosedures toegestaan word.