S pomočjo shra­nje­nih postopkov SQL lahko pogosto upo­ra­blja­na po­i­zve­do­va­nja in postopke shranite kot kodne bloke, ki jih je mogoče kasneje enostavno ponovno uporabiti. S tem pri­hra­ni­te čas in se izognete ponovnemu vnašanju SQL-izjav ob vsaki uporabi.

Kaj so shranjene procedure v jeziku SQL?

Pri delu s SQL-jem zagotovo obstajajo stavki, ki jih upo­ra­blja­te vedno znova. Vnašanje za­ple­te­nih stavkov od začetka vsakič, ko jih po­tre­bu­je­te, vam lahko vzame veliko časa in poveča možnost napak. Shranjene procedure v SQL-ju olajšajo delo z rednimi, za­ple­te­ni­mi po­i­zved­ba­mi. Z njimi lahko shra­nju­je­te in pri­kli­če­te bloke kode, ki jih pogosto upo­ra­blja­te. Na ta način lahko av­to­ma­ti­zi­ra­te po­na­vlja­jo­če se postopke in poskrbite za učin­ko­vi­tej­še upra­vlja­nje podatkov.

Ena od prednosti shra­nje­nih postopkov SQL je, da lahko v njih shranite praktično kakršno koli izjavo, ki vsebuje funkcije, ukaze ali operacije SQL, ter izvedete praktično kakršno koli nalogo. Za zadevno dejanje lahko ustvarite shranjene postopke in jih pokličete tako, da ime PROCEDURE vstavite v običajne izjave, kot sta SQL UPDATE in SQL SELECT. Funkcije, ki jih lahko av­to­ma­ti­zi­ra­te s shra­nje­ni­mi postopki SQL, vklju­ču­je­jo po­so­do­bi­tve, poizvedbe, brisanje podatkov in iz­pi­so­va­nje vrednosti.

Tip

Osvojite si osnovno znanje o jeziku SQL! Naš uvod v jezik SQL s primeri vam ponuja hiter pregled naj­po­memb­nej­ših funkcij in pravil tega jezika.

Kakšna je sintaksa shra­nje­nih postopkov v jeziku SQL?

Sintaksa posamezne shranjene procedure je odvisna od kodnega bloka, ki ga želite shraniti, in je lahko bolj ali manj zapletena.

Tukaj je sintaksa za preprosto shranjeno proceduro:

CREATE PROCEDURE Procedure_name (Parameter1 file_type, Parameter2 file_type, …)
AS
BEGIN
(Code block you want to save)
END;
sql

Glede na to, kateri sistem za upra­vlja­nje po­dat­kov­nih baz upo­ra­blja­te, lahko sintaksa izgleda tudi takole:

CREATE PROCEDURE Procedure_name (Parameter1 file_type, Parameter2 file_type, …)
AS
(Code block you want to save)
GO;
sql

To so zadevni parametri:

  • CREATE PROCEDURE: Tukaj določite ime svoje procedure. To je ime, ki ga boste uporabili za izvedbo kode ali za vstavitev v drugo navodilo. Parametri vklju­ču­je­jo različne podatke, potrebne za blok kode, vključno z njihovim tipom datoteke.
  • AS: Označi začetek bloka kode, ki ga želite shraniti kot shranjeno proceduro.
  • BEGIN + END: Označita začetek in konec bloka kode, ki ga želite shraniti.
  • GO: Označuje konec bloka kode (ima enako funkcijo kot END).

S tem kodom lahko izvedete shranjeno proceduro:

EXEC Procedure_name;
sql

Kakšne so prednosti in primeri uporabe shra­nje­nih postopkov v jeziku SQL?

S pomočjo shra­nje­nih postopkov SQL lahko shranite praktično katero koli SQL-izjavo in jo kasneje ponovno uporabite. Prednosti shra­nje­nih postopkov so:

  • Ponovna uporaba kode: Obstajajo določeni SQL-ukazi in funkcije, ki jih boste pri delu z bazo podatkov upo­ra­blja­li vedno znova. Shra­nje­va­nje pre­pro­stih in za­ple­te­nih stavkov vam omogoča, da jih upo­ra­blja­te večkrat, ne da bi morali vsakič znova vnašati kodo.
  • Po­e­no­sta­vlje­no delo z bazami podatkov: Pri za­ple­te­nih nalogah shranjene procedure razdelijo velike, zapletene operacije na več manjših postopkov. Bloki kode se obrav­na­va­jo kot moduli, ki jih lahko vključite v izjavo, na kateri delate.
  • Večja učin­ko­vi­tost, boljša zmo­glji­vost: Shra­nje­va­nje blokov kode olajša ustvar­ja­nje SQL izjav in izboljša zmo­glji­vost velikih baz podatkov.
  • Večja varnost: do­de­lje­va­nje dovoljenj shra­nje­nim postopkom za­go­ta­vlja, da se ob­ču­tlji­vi podatki lahko pridobijo ali dostopajo le z av­to­ri­za­ci­jo.

Med praktične primere uporabe shra­nje­nih postopkov SQL iz različnih panog spadajo:

  • Av­to­ma­ti­za­ci­ja postopkov obdelave naročil in po­so­da­blja­nje podatkov o strankah
  • Spre­mlja­nje in pre­ver­ja­nje sumljivih finančnih tran­sak­cij ali izračun obrestnih mer
  • Samodejno ustvar­ja­nje ponudb na podlagi podatkov o strankah, nakupnega vedenja, obsega naročil in regije
  • Izračun provizij za­po­sle­nih na podlagi uspe­šno­sti
  • Ustvar­ja­nje finančnih poročil in knjiženje tran­sak­cij
  • Sledenje, spre­mlja­nje in sin­hro­ni­za­ci­ja zalog ter prejetih naročil

Primeri shra­nje­nih postopkov v jeziku SQL

Sedaj si bomo ogledali dva primera shra­nje­nih postopkov v jeziku SQL.

Pri­do­bi­va­nje vseh strank

Recimo, da želite pridobiti vse podatke o strankah iz tabele z imenom »Stranke«. To bi izgledalo takole:

CREATE PROCEDURE SelectAllCustomers
AS
BEGIN
SELECT * FROM Customers
END;
sql

Izbira naročil iz enega mesta

Recimo, da želite iz tabele z imenom »Naročila« pridobiti vsa naročila iz enega mesta:

CREATE PROCEDURE SelectAllOrdersBristol
AS
BEGIN
SELECT * FROM Orders WHERE City = 'Bristol'
END;
sql

Ali obstajajo al­ter­na­ti­ve za shranjene postopke v SQL?

Obstaja več al­ter­na­tiv shra­nje­nim postopkom SQL s podobno funkcijo. Mednje spadajo:

  • UDF (funkcija, ki jo določi uporabnik): UDF-ji vam omogočajo, da z uporabo ključne besede CREATE FUNCTION ustvarite in shranite lastne funkcije. To vam omogoča, da kom­ple­ksna po­i­zve­do­va­nja vključite v SQL-izjave kot vnaprej določene funkcije, ne da bi morali vnašati celoten blok kode.
  • VIEWS: VIEWS vam omogoča ustvar­ja­nje praznih, vir­tu­al­nih tabel za analizo zapisov s pred­de­fi­ni­ra­ni­mi parametri. Podobno kot UDF-je in shranjene postopke lahko VIEWS vstavite kot element v SQL-izjave.
Go to Main Menu