SQL-tal­len­net­tu­jen me­net­te­ly­jen avulla voit tallentaa usein käytetyt kyselyt ja me­net­te­lyt koo­di­loh­koik­si, jotka on helppo hakea esiin myöhemmin. Niiden avulla voit säästää aikaa ja välttää SQL-lauseiden kir­joit­ta­mi­sen alusta joka kerta, kun käytät niitä.

Mitä ovat SQL-tal­len­ne­tut me­net­te­lyt?

Kun työs­ken­te­let SQL:n parissa, on varmasti lauseita, joita käytät yhä uudelleen. Mo­ni­mut­kais­ten lauseiden kir­joit­ta­mi­nen alusta alkaen joka kerta, kun niitä tarvitset, voi viedä aikaa ja lisätä virheiden riskiä. SQL:n tal­len­ne­tut me­net­te­ly­ta­vat hel­pot­ta­vat sään­nöl­lis­ten ja mo­ni­mut­kais­ten kyselyjen kä­sit­te­lyä. Niiden avulla voit tallentaa ja hakea usein käyt­tä­miä­si koo­di­loh­ko­ja. Näin voit au­to­ma­ti­soi­da toistuvia toi­men­pi­tei­tä ja tehostaa tietojen hallintaa.

Yksi SQL-tal­len­net­tu­jen me­net­te­ly­jen etu on, että niihin voi tallentaa käy­tän­nös­sä minkä tahansa SQL -funk­tioi­ta, -komentoja tai -ope­raat­to­rei­ta si­säl­tä­vän lauseen ja suorittaa niillä lähes minkä tahansa tehtävän. Voit luoda kyseistä toimintoa varten tal­len­net­tu­ja me­net­te­ly­jä ja kutsua niitä li­sää­mäl­lä me­net­te­lyn nimen ta­val­li­siin lausei­siin, kuten SQL UPDATE- ja SQL SELECT-lausei­siin. SQL-tal­len­net­tu­jen me­net­te­ly­jen avulla voidaan au­to­ma­ti­soi­da esi­mer­kik­si tietojen päi­vit­tä­mi­nen, kyselyt, tietojen pois­ta­mi­nen ja arvojen tu­los­ta­mi­nen.

Vinkki

Opi SQL:n perusteet! Esi­merk­ke­jä sisältävä SQL-esit­te­lym­me tarjoaa sinulle nopean kat­sauk­sen kielen tär­keim­piin toi­min­toi­hin ja sään­töi­hin.

Mikä on SQL-tal­len­net­tu­jen me­net­te­ly­jen syntaksi?

Kunkin tal­len­ne­tun pro­se­duu­rin syntaksi riippuu tal­len­net­ta­vas­ta koo­di­loh­kos­ta ja voi olla enemmän tai vähemmän mo­ni­mut­kai­nen.

Tässä on yk­sin­ker­tai­sen tal­len­ne­tun pro­se­duu­rin syntaksi:

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

Käyt­tä­mäs­tä­si tie­to­kan­ta­jär­jes­tel­mäs­tä riippuen syntaksi voi näyttää myös seu­raa­val­ta:

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

Kyseessä ovat seuraavat pa­ra­met­rit:

  • CREATE PROCEDURE: Määritä tässä pro­se­duu­rin nimi. Tätä nimeä käytät, kun suoritat koodin tai lisäät sen toiseen lausee­seen. Pa­ra­met­rei­hin si­säl­ty­vät koo­di­loh­kon suo­rit­ta­mi­seen tar­vit­ta­vat tiedot, mukaan lukien tie­dos­to­tyy­pit.
  • AS: Merkitse tällä koo­di­loh­kon alku, jonka haluat tallentaa tal­len­net­tu­na me­net­te­ly­nä.
  • BEGIN + END: Merkitse tal­len­net­ta­van koo­di­loh­kon alku ja loppu.
  • GO: Merkitsee koo­di­loh­kon lopun (toimii samalla tavalla kuin END).

Voit suorittaa tal­len­ne­tun pro­se­duu­rin tällä koodilla:

EXEC Procedure_name;
sql

Mitkä ovat SQL-tal­len­net­tu­jen pro­se­duu­rien edut ja käyt­tö­ta­pauk­set?

SQL-tal­len­net­tu­jen me­net­te­ly­jen avulla voit tallentaa käy­tän­nös­sä minkä tahansa SQL-lauseen ja hakea sen myöhemmin. Tal­len­net­tu­jen me­net­te­ly­jen etuja ovat muun muassa:

  • Koodin uu­del­leen­käyt­tö: Tie­to­kan­nas­sa on tiettyjä SQL-komentoja ja -funk­tioi­ta, joita käytät yhä uudelleen. Tal­len­ta­mal­la sekä yk­sin­ker­tai­sia että mo­ni­mut­kai­sia lauseita voit käyttää niitä tois­tu­vas­ti ilman, että joudut kir­joit­ta­maan koodia joka kerta alusta.
  • Yk­sin­ker­tais­tet­tu työs­ken­te­ly tie­to­kan­to­jen kanssa: Mo­ni­mut­kais­ten tehtävien kohdalla tal­len­ne­tut me­net­te­lyt jakavat suuret, mo­ni­mut­kai­set ope­raa­tiot useiksi pie­nem­mik­si me­net­te­lyik­si. Koo­di­loh­ko­ja kä­si­tel­lään mo­duu­lei­na, jotka voidaan si­säl­lyt­tää kä­sit­te­le­mää­si lausek­kee­seen.
  • Te­hok­kuut­ta ja suo­ri­tus­ky­kyä: Koo­di­loh­ko­jen tal­len­ta­mi­nen helpottaa SQL-lauseiden luomista ja parantaa suurten tie­to­kan­to­jen suo­ri­tus­ky­kyä.
  • Parempi tie­to­tur­va: Tal­len­net­tu­jen me­net­te­ly­jen käyt­tö­oi­keuk­sien mää­rit­tä­mi­nen varmistaa, että ar­ka­luon­toi­sia tietoja voidaan hakea tai käyttää vain val­tuu­tuk­sen pe­rus­teel­la.

Seu­raa­vas­sa on muutamia käytännön esi­merk­ke­jä SQL-tal­len­net­tu­jen me­net­te­ly­jen käytöstä eri toi­mia­loil­la:

  • Ti­lauspro­ses­sien au­to­ma­ti­soin­ti ja asia­kas­tie­to­jen päi­vit­tä­mi­nen
  • Epäi­lyt­tä­vien ra­hoi­tus­ta­pah­tu­mien seuranta ja tarkastus tai korkojen las­ke­mi­nen
  • Tar­jous­ten au­to­maat­ti­nen luominen asia­kas­tie­to­jen, os­to­käyt­täy­ty­mi­sen, ti­laus­mää­rien ja alueen pe­rus­teel­la
  • Työn­te­ki­jöi­den pro­vi­sioi­den las­ke­mi­nen suo­ri­tus­ky­vyn pe­rus­teel­la
  • Ta­lous­ra­port­tien luominen ja ta­pah­tu­mien kir­jaa­mi­nen
  • Varaston ja saapuvien tilausten seuranta, valvonta ja synk­ro­noin­ti

Esi­merk­ke­jä SQL-tal­len­ne­tuis­ta me­net­te­lyis­tä

Siirrymme nyt kahteen esi­merk­kiin SQL-tal­len­ne­tuis­ta me­net­te­lyis­tä.

Kaikkien asiak­kai­den hakeminen

Oletetaan, että haluat hakea kaikki asia­kas­tie­dot tau­lu­kos­ta nimeltä ”Customers”. Se näyttäisi tältä:

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

Ti­lauk­sien valinta yhdestä kau­pun­gis­ta

Oletetaan, että haluat hakea kaikki tietyn kaupungin tilaukset tau­lu­kos­ta nimeltä ”Orders”:

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

Onko SQL-tal­len­ne­tuil­le pro­se­duu­reil­le vaih­toeh­to­ja?

SQL:n tal­len­ne­tuil­le pro­se­duu­reil­le on olemassa useita vaih­toeh­to­ja, joilla on sa­man­lai­nen toiminto. Niitä ovat muun muassa:

  • UDF (käyttäjän mää­rit­tä­mä funktio): UDF-funk­tioi­den avulla voit luoda ja tallentaa omia funk­tioi­ta CREATE FUNCTION avulla. Näin voit si­säl­lyt­tää mo­ni­mut­kai­sia kyselyitä SQL-lausei­siin valmiina funk­tioi­na ilman, että sinun tarvitsee kir­joit­taa koko koo­di­loh­koa.
  • VIEWS: VIEWS-toiminnon avulla voit luoda tyhjiä, vir­tu­aa­li­sia tau­lu­koi­ta tie­tuei­den ana­ly­soi­mi­sek­si ennalta mää­ri­tel­lyil­lä pa­ra­met­reil­la. Kuten UDF-funk­tioi­den ja tal­len­net­tu­jen me­net­te­ly­jen tapaan, voit lisätä VIEWS-toiminnon ele­ment­ti­nä SQL-lausei­siin.
Siirry pää­va­lik­koon