Naudodami SQL saugomas pro­ce­dū­ras, galite išsaugoti dažnai nau­do­ja­mus už­klau­si­mus ir pro­ce­dū­ras kaip kodų blokus, kuriuos vėliau bus galima lengvai iškviesti. Tai padės sutaupyti laiko ir užtikrins, kad kiekvieną kartą, kai jas naudosite, nereikės iš naujo įvesti SQL teiginių.

Kas yra SQL saugomos pro­ce­dū­ros?

Dirbdami su SQL, tikrai su­si­dur­si­te su už­klau­so­mis, kurias naudojate nuolat. Sudėtingų užklausų rašymas nuo nulio kiekvieną kartą, kai jų prireikia, gali atimti daug laiko ir padidinti klaidų tikimybę. SQL saugomos pro­ce­dū­ros pa­leng­vi­na darbą su dažnai nau­do­ja­mo­mis su­dė­tin­go­mis už­klau­so­mis. Jų pagalba galite saugoti ir iškviesti dažnai nau­do­ja­mus kodų blokus. Taip galėsite au­to­ma­ti­zuo­ti pa­si­kar­to­jan­čias pro­ce­dū­ras ir padaryti duomenų tvarkymą efek­ty­ves­nį.

Vienas iš SQL saugomųjų procedūrų privalumų yra tai, kad jose galima išsaugoti beveik bet kokio tipo teiginius, kuriuose yra SQL funkcijos, SQL komandos ar SQL ope­ra­to­riai, ir atlikti beveik bet kokias užduotis. Galite sukurti sau­go­mą­sias pro­ce­dū­ras konk­re­čiai veiklai atlikti ir jas iškviesti įterpdami PROCEDURE pa­va­di­ni­mą į įprastus teiginius, pa­vyz­džiui, SQL UPDATE ir SQL SELECT. Funkcijos, kurias galima au­to­ma­ti­zuo­ti naudojant SQL sau­go­mą­sias pro­ce­dū­ras, apima duomenų at­nau­ji­ni­mą, užklausas, duomenų ištrynimą ir verčių išvedimą.

Tip

Su­si­pa­žin­ki­te su SQL pag­rin­dais! Mūsų SQL įvadas su pa­vyz­džiais suteiks jums greitą svar­biau­sių šios kalbos funkcijų ir taisyklių apžvalgą.

Kokia yra SQL saugomų procedūrų sintaksė?

Konk­re­čios saugomos pro­ce­dū­ros sintaksė pri­klau­sys nuo to, kokį kodų bloką norite išsaugoti, ir gali būti daugiau ar mažiau sudėtinga.

Štai paprastos saugomos pro­ce­dū­ros sintaksė:

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

Pri­klau­so­mai nuo to, kokią duomenų bazių valdymo sistemą naudojate, sintaksė taip pat gali atrodyti taip:

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

Tai yra šie pa­ra­met­rai:

  • CREATE PROCEDURE: Čia nu­ro­dy­ki­te pro­ce­dū­ros pa­va­di­ni­mą. Šį pa­va­di­ni­mą naudosite vykdydami kodą arba įterpdami jį į kitą teiginį. Pa­ra­met­rai apima įvairius duomenis, rei­ka­lin­gus kodų blokui, įskaitant jų failų tipą.
  • AS: Pa­žy­mė­ki­te kodo bloko, kurį norite išsaugoti kaip saugomą procedūrą, pradžią.
  • BEGIN + END: Pa­žy­mė­ki­te kodo bloko, kurį norite išsaugoti, pradžią ir pabaigą.
  • GO: Žymi kodo bloko pabaigą (atlieka tą pačią funkciją kaip END).

Šį kodą galite naudoti saugotai pro­ce­dū­rai vykdyti:

EXEC Procedure_name;
sql

Kokie yra SQL saugomų procedūrų pri­va­lu­mai ir taikymo atvejai?

Naudodami SQL saugomas pro­ce­dū­ras, galite išsaugoti beveik bet kokį SQL teiginį ir vėliau jį iškviesti. Saugomų procedūrų pri­va­lu­mai:

  • Kodo pa­kar­to­ti­nis nau­do­ji­mas: yra tam tikrų SQL komandų ir funkcijų, kurias duomenų bazėje naudosite nuolat. Iš­sau­go­jus paprastas ir su­dė­tin­gas inst­ruk­ci­jas, jas galima naudoti pa­kar­to­ti­nai, nereikia kiekvieną kartą įvesti kodo iš naujo.
  • Su­pa­pras­tin­tas darbas su duomenų bazėmis: kai reikia atlikti su­dė­tin­gas užduotis, saugomos pro­ce­dū­ros suskaido dideles, su­dė­tin­gas ope­ra­ci­jas į keletą mažesnių procedūrų. Kodų blokai trak­tuo­ja­mi kaip moduliai, kuriuos galima įtraukti į teiginį, su kuriuo dirbate.
  • Didesnis efek­ty­vu­mas, geresnis našumas: Kodų blokų sau­go­ji­mas pa­leng­vi­na SQL teiginių kūrimą ir pagerina didelių duomenų bazių našumą.
  • Didesnis saugumas: su­tei­kiant leidimus saugotoms pro­ce­dū­roms už­tik­ri­na­ma, kad kon­fi­den­cia­lūs duomenys gali būti gaunami ar prieinami tik turint leidimą.

Štai keletas praktinių SQL saugomų procedūrų taikymo pavyzdžių iš įvairių pramonės šakų:

  • Užsakymų tvarkymo procesų au­to­ma­ti­za­vi­mas ir klientų duomenų at­nau­ji­ni­mas
  • Įtartinų fi­nan­si­nių operacijų ste­bė­ji­mas ir tik­ri­ni­mas arba palūkanų normų skai­čia­vi­mas
  • Au­to­ma­ti­nis pasiūlymų kūrimas remiantis klientų duo­me­ni­mis, pirkimo elgsena, užsakymų apimtimi ir regionu
  • Dar­buo­to­jų komisinių skai­čia­vi­mas pagal darbo re­zul­ta­tus
  • Fi­nan­si­nių ataskaitų rengimas ir sandorių įrašymas
  • Atsargų ir gaunamų užsakymų sekimas, ste­bė­ji­mas ir sin­ch­ro­ni­za­vi­mas

SQL saugomų procedūrų pa­vyz­džiai

Dabar pa­nag­ri­nė­si­me du SQL saugomų procedūrų pa­vyz­džius.

Visų klientų paieška

Tarkime, kad norite išgauti visus klientų duomenis iš lentelės, pa­va­din­tos „Klientai“. Tai atrodytų taip:

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

Užsakymų atranka pagal miestą

Tarkime, kad norite iš lentelės „Orders“ išrinkti visus užsakymus iš vieno miesto:

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

Ar yra al­ter­na­ty­vų SQL saugomoms pro­ce­dū­roms?

Yra keletas SQL saugomų procedūrų al­ter­na­ty­vų, at­lie­kan­čių panašias funkcijas. Tai:

  • UDF (vartotojo apibrėžta funkcija): UDF leidžia kurti ir išsaugoti savo funkcijas naudojant raktinį žodį CREATE FUNCTION. Tai suteikia galimybę su­dė­tin­gus už­klau­si­mus įtraukti į SQL teiginius kaip iš anksto api­brėž­tas funkcijas, nereikia įvedinėti viso kodo bloko.
  • VIEWS: VIEWS leidžia kurti tuščias, vir­tu­alias lenteles įrašų analizei su iš anksto api­brėž­tais pa­ra­met­rais. Kaip ir UDF bei saugomos pro­ce­dū­ros, VIEWS galima įterpti kaip elementą į SQL teiginius.
Go to Main Menu