SQL-sal­ves­ta­tud prot­se­duure saab kasutada selleks, et sal­ves­tada sageli ka­su­ta­ta­vaid päringuid ja prot­se­duure koo­di­lõi­ku­dena, mida on hiljem lihtne uuesti kasutada. See aitab säästa aega ja tagab, et te ei pea SQL-käsklusi iga kord uuesti sisestama.

Mis on SQL-sal­ves­ta­tud prot­se­duu­rid?

SQL-iga töötades on kindlasti käske, mida kasutate ikka ja jälle. Keerukate käskude iga kord algusest peale si­ses­ta­mine võib võtta aega ja suu­ren­dada vigade tekkimise võimalust. SQL-i sal­ves­ta­tud prot­se­duu­rid hõl­bus­ta­vad korduvate ja keerukate päringute ka­su­ta­mist. Nende abil saate sal­ves­tada ja välja otsida sageli ka­su­ta­ta­vaid koo­di­lõike. Nii saate korduvaid toi­min­guid au­to­ma­ti­see­rida ja muuta oma and­me­hal­dust tõ­hu­samaks.

SQL-sal­ves­ta­tud prot­se­duu­ride üks eelis on see, et neisse saab sal­ves­tada peaaegu iga­su­gu­seid käske, mis si­sal­da­vad SQL-funkt­sioone, SQL-käsklusi või SQL-ope­raa­to­reid, ning täita peaaegu iga­su­gu­seid üles­an­deid. Saate luua sal­ves­ta­tud prot­se­duure vastava toimingu jaoks ning neid käivitada, lisades prot­se­duuri nime ta­valis­tesse käs­ku­desse, nagu SQL UPDATE ja SQL SELECT. SQL-sal­ves­ta­tud prot­se­duu­ri­dega saab au­to­ma­ti­see­rida näiteks andmete uuen­da­mist, päringuid, andmete kus­tu­ta­mist ja väärtuste väl­jas­ta­mist.

Tip

Õpi SQLi põ­hi­tõ­de­sid! Meie näidetega il­lust­ree­ri­tud SQLi sis­se­ju­ha­tus annab sulle kiire ülevaate keele olu­li­se­ma­test funkt­sioo­ni­dest ja reeg­li­test.

Milline on SQL-i sal­ves­ta­tud prot­se­duu­ride süntaks?

Konk­reetse sal­ves­ta­tud prot­se­duuri süntaks sõltub sellest, millise koo­di­l­õigu soovid sal­ves­tada, ning võib olla rohkem või vähem keeruline.

Siin on lihtsa sal­ves­ta­tud prot­se­duuri süntaks:

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

Sõltuvalt sellest, millist and­me­baasi­hal­dus­süs­teemi kasutate, võib süntaks olla ka järgmine:

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

Need on as­ja­oma­sed pa­ra­meet­rid:

  • CREATE PROCEDURE: Määrake siin oma prot­se­duuri nimi. Seda nime kasutate koodi käi­vi­ta­miseks või selle li­sa­miseks teise käsklusse. Pa­ra­meet­rid hõlmavad koo­dib­lo­kile vajalikke erinevaid andmeid, seal­hul­gas nende fai­li­tüüpi.
  • AS: Märgib selle koo­dib­loki algust, mida soovite sal­ves­tada sal­ves­ta­tud prot­se­duu­rina.
  • BEGIN + END: Märkige sal­ves­ta­tava koo­dib­loki algus ja lõpp.
  • GO: Märgib koo­dib­loki lõppu (on sama funkt­sioo­niga kui END).

Selle koodi abil saate sal­ves­ta­tud prot­se­duuri käivitada:

EXEC Procedure_name;
sql

Millised on SQL-sal­ves­ta­tud prot­se­duu­ride eelised ja ka­su­tus­või­ma­lu­sed?

SQL-sal­ves­ta­tud prot­se­duu­ride abil saab sal­ves­tada peaaegu iga SQL-käsku ja seda hiljem uuesti kasutada. Sal­ves­ta­tud prot­se­duu­ride eelised on järgmised:

  • Koodi taas­ka­su­ta­mine: on teatud SQL-käsklusi ja funkt­sioone, mida kasutate oma and­me­baasiga ikka ja jälle. Lihtsate ja keerukate käskude sal­ves­ta­mine võimaldab neid korduvalt kasutada, ilma et peaksite koodi iga kord uuesti sisestama.
  • Liht­sus­ta­tud töö and­me­baasi­dega: kee­ru­liste üles­an­nete puhul jagavad sal­ves­ta­tud prot­se­duu­rid suured ja kee­ru­li­sed ope­rat­sioo­nid mitmeks väik­se­maks prot­se­duu­riks. Koo­dib­lokke kä­sit­le­takse moo­du­li­tena, mida saab lisada käsitusse, millega parasjagu töötate.
  • Suurem tõhusus, parem jõudlus: Koo­dib­lok­kide sal­ves­ta­mine liht­sus­tab SQL-avalduste loomist ja parandab suurte and­me­baaside jõudlust.
  • Suurem tur­va­li­sus: sal­ves­ta­tud prot­se­duu­ri­dele õiguste määramine tagab, et tundlikke andmeid saab kätte või neile pääseb ligi ainult volituse alusel.

Mõned SQL-sal­ves­ta­tud prot­se­duu­ride prak­ti­li­sed ra­ken­dus­näi­ted eri­ne­va­test töös­tus­ha­ru­dest on järgmised:

  • Tel­li­mis­prot­ses­side au­to­ma­ti­see­ri­mine ja klien­di­and­mete aja­ko­has­ta­mine
  • Kahtlaste fi­nants­te­hin­gute jälgimine ja kont­rol­li­mine või int­res­si­mää­rade ar­vu­ta­mine
  • Pak­ku­miste au­to­maatne koos­ta­mine klien­di­and­mete, os­tu­käi­tu­mise, tel­li­muste mahu ja piirkonna põhjal
  • Töötajate ko­mis­jo­ni­tasude ar­vu­ta­mine tu­le­mus­lik­kuse alusel
  • Fi­nants­aru­an­nete koos­ta­mine ja tehingute kir­jen­da­mine
  • Laoseisu ja sis­se­tu­le­vate tel­li­muste jälgimine, kont­rol­li­mine ja sünk­ro­ni­see­ri­mine

Näited SQL-i sal­ves­ta­tud prot­se­duu­ri­dest

Nüüd vaatame kahte näidet SQL-i sal­ves­ta­tud prot­se­duu­ri­dest.

Kõigi klientide kuvamine

Oletame, et soovid kätte saada kõik klien­di­and­med tabelist nimega „Customers”. See näeks välja järg­mi­selt:

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

Tel­li­muste valimine ühest linnast

Oletame, et soovid tabelist „Orders” välja tuua kõik ühest linnast pärit tel­li­mu­sed:

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

Kas SQL-i sal­ves­ta­tud prot­se­duu­ri­dele on al­ter­na­tiive?

SQL-i sal­ves­ta­tud prot­se­duu­ri­dele on mitmeid sarnase funkt­sioo­niga al­ter­na­tiive. Nende hulka kuuluvad:

  • UDF (kasutaja määratud funkt­sioon): UDF-ide abil saate märksõna CREATE FUNCTION abil luua ja sal­ves­tada oma funkt­sioone. See võimaldab teil in­teg­ree­rida keerukaid päringuid SQL-käs­ku­desse eel­mää­ra­tud funkt­sioo­ni­dena, ilma et peaksite kogu koo­diplokki käsitsi sisestama.
  • VIEWS: VIEWS võimaldab teil luua tühje vir­tuaal­ta­be­leid, et ana­lüü­sida kirjeid eel­de­fi­nee­ri­tud pa­ra­meet­ri­tega. Nagu UDF-id ja sal­ves­ta­tud prot­se­duu­rid, saate lisada VIEWS-i SQL-käs­ku­desse ele­men­dina.
Go to Main Menu