# SQL-tallennettujen menettelyjen käyttö

SQL-tallennettujen menettelyjen avulla voit tallentaa **usein käytetyt kyselyt ja menettelyt koodilohkoiksi,** jotka on helppo hakea esiin myöhemmin. Niiden avulla voit säästää aikaa ja välttää SQL-lauseiden kirjoittamisen alusta joka kerta, kun käytät niitä.

## Mitä ovat SQL-tallennetut menettelyt?

Kun työskentelet [SQL:n](https://www.ionos.com/fi-fi/digitalguide/palvelin/osaaminen/mikae-on-sql/) parissa, on varmasti lauseita, joita käytät yhä uudelleen. Monimutkaisten lauseiden kirjoittaminen alusta alkaen joka kerta, kun niitä tarvitset, voi viedä aikaa ja lisätä virheiden riskiä. SQL:n tallennetut menettelytavat helpottavat säännöllisten ja monimutkaisten kyselyjen käsittelyä. Niiden avulla voit tallentaa ja hakea usein käyttämiäsi koodilohkoja. Näin voit **automatisoida toistuvia toimenpiteitä** ja tehostaa tietojen hallintaa.

Yksi SQL-tallennettujen menettelyjen etu on, että niihin voi tallentaa **käytännössä minkä tahansa** SQL -funktioita, -komentoja tai -operaattoreita sisältävän **lauseen** ja suorittaa niillä lähes minkä tahansa tehtävän. Voit luoda kyseistä toimintoa varten tallennettuja menettelyjä ja kutsua niitä lisäämällä menettelyn nimen tavallisiin lauseisiin, kuten SQL UPDATE- ja SQL SELECT-lauseisiin. SQL-tallennettujen menettelyjen avulla voidaan automatisoida esimerkiksi tietojen päivittäminen, kyselyt, tietojen poistaminen ja arvojen tulostaminen.

Vinkki Opi SQL:n perusteet! [Esimerkkejä sisältävä SQL-esittelymme](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/sqln-esittely-esimerkkien-kera/) tarjoaa sinulle nopean katsauksen kielen tärkeimpiin toimintoihin ja sääntöihin.

## Mikä on SQL-tallennettujen menettelyjen syntaksi?

Kunkin tallennetun proseduurin syntaksi riippuu tallennettavasta koodilohkosta ja voi olla enemmän tai vähemmän monimutkainen.

Tässä on **yksinkertaisen tallennetun proseduurin** syntaksi:

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

Käyttämästäsi tietokantajärjestelmästä riippuen syntaksi voi näyttää myös seuraavalta:

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

Kyseessä ovat seuraavat parametrit:

- `CREATE PROCEDURE`: Määritä tässä proseduurin nimi. Tätä nimeä käytät, kun suoritat koodin tai lisäät sen toiseen lauseeseen. Parametreihin sisältyvät koodilohkon suorittamiseen tarvittavat tiedot, mukaan lukien tiedostotyypit.
- `AS`: Merkitse tällä koodilohkon alku, jonka haluat tallentaa tallennettuna menettelynä.
- `BEGIN` + `END`: Merkitse tallennettavan koodilohkon alku ja loppu.
- `GO`: Merkitsee koodilohkon lopun (toimii samalla tavalla kuin `END`).

Voit suorittaa tallennetun proseduurin tällä koodilla:

```sql
EXEC Procedure_name;
```

## Mitkä ovat SQL-tallennettujen proseduurien edut ja käyttötapaukset?

SQL-tallennettujen menettelyjen avulla voit tallentaa käytännössä minkä tahansa SQL-lauseen ja hakea sen myöhemmin. Tallennettujen menettelyjen etuja ovat muun muassa:

- **Koodin uudelleenkäyttö**: Tietokannassa on tiettyjä SQL-komentoja ja -funktioita, joita käytät yhä uudelleen. Tallentamalla sekä yksinkertaisia että monimutkaisia lauseita voit käyttää niitä toistuvasti ilman, että joudut kirjoittamaan koodia joka kerta alusta.
- **Yksinkertaistettu työskentely tietokantojen kanssa**: Monimutkaisten tehtävien kohdalla tallennetut menettelyt jakavat suuret, monimutkaiset operaatiot useiksi pienemmiksi menettelyiksi. Koodilohkoja käsitellään moduuleina, jotka voidaan sisällyttää käsittelemääsi lausekkeeseen.
- **Tehokkuutta ja suorituskykyä**: Koodilohkojen tallentaminen helpottaa SQL-lauseiden luomista ja parantaa suurten tietokantojen suorituskykyä.
- **Parempi tietoturva**: Tallennettujen menettelyjen käyttöoikeuksien määrittäminen varmistaa, että arkaluontoisia tietoja voidaan hakea tai käyttää vain valtuutuksen perusteella.

Seuraavassa on muutamia käytännön esimerkkejä SQL-tallennettujen menettelyjen käytöstä eri toimialoilla:

- Tilausprosessien automatisointi ja asiakastietojen päivittäminen
- Epäilyttävien rahoitustapahtumien seuranta ja tarkastus tai korkojen laskeminen
- Tarjousten automaattinen luominen asiakastietojen, ostokäyttäytymisen, tilausmäärien ja alueen perusteella
- Työntekijöiden provisioiden laskeminen suorituskyvyn perusteella
- Talousraporttien luominen ja tapahtumien kirjaaminen
- Varaston ja saapuvien tilausten seuranta, valvonta ja synkronointi

## Esimerkkejä SQL-tallennetuista menettelyistä

Siirrymme nyt kahteen esimerkkiin SQL-tallennetuista menettelyistä.

### Kaikkien asiakkaiden hakeminen

Oletetaan, että haluat hakea kaikki asiakastiedot taulukosta nimeltä ”Customers”. Se näyttäisi tältä:

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

### Tilauksien valinta yhdestä kaupungista

Oletetaan, että haluat hakea kaikki tietyn kaupungin tilaukset taulukosta nimeltä ”Orders”:

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

## Onko SQL-tallennetuille proseduureille vaihtoehtoja?

SQL:n tallennetuille proseduureille on olemassa useita vaihtoehtoja, joilla on samanlainen toiminto. Niitä ovat muun muassa:

- **UDF (käyttäjän määrittämä funktio)**: UDF-funktioiden avulla voit luoda ja tallentaa omia funktioita `CREATE FUNCTION` avulla. Näin voit sisällyttää monimutkaisia kyselyitä SQL-lauseisiin valmiina funktioina ilman, että sinun tarvitsee kirjoittaa koko koodilohkoa.
- **VIEWS**: VIEWS-toiminnon avulla voit luoda tyhjiä, virtuaalisia taulukoita tietueiden analysoimiseksi ennalta määritellyillä parametreilla. Kuten UDF-funktioiden ja tallennettujen menettelyjen tapaan, voit lisätä VIEWS-toiminnon elementtinä SQL-lauseisiin.


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/sql-tallennetut-menettelyt/](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/sql-tallennetut-menettelyt/) for AI/LLM consumption.