SQL Serverin funktiot ovat tietokantaobjekteja, jotka sisältävät a joukko SQL-lauseita tietyn tehtävän suorittamiseksi . Funktio hyväksyy syöteparametrit, suorittaa toimintoja ja palauttaa sitten tuloksen. Huomaa, että funktiot palauttavat aina joko yhden arvon tai taulukon. Toimintojen päätarkoitus on replikoida yhteinen tehtävä helposti. Voimme rakentaa toimintoja yhden kerran ja käyttää niitä useissa paikoissa tarpeidemme mukaan. SQL Server ei salli tietokantataulukoiden tietueiden lisäämiseen, poistamiseen tai päivittämiseen tarkoitettujen toimintojen käyttöä.
Seuraavat ovat säännöt SQL Server -toimintojen luomiseksi:
- Funktiolla on oltava nimi, eikä nimi saa alkaa erikoismerkillä, kuten @, $, # tai muilla vastaavilla merkeillä.
- SELECT-käskyt ovat ainoita, jotka toimivat funktioiden kanssa.
- Voimme käyttää funktiota missä tahansa, kuten AVG, COUNT, SUM, MIN, DATE ja muita toimintoja SELECT-kyselyn kanssa SQL:ssä.
- Aina kun funktiota kutsutaan, se kääntää.
- Funktioiden on palautettava arvo tai tulos.
- Toiminnot käyttävät vain syöttöparametreja.
- Emme voi käyttää TRY- ja CATCH-käskyjä funktioissa.
Toimintojen tyypit
SQL Server luokittelee toiminnot kahteen tyyppiin:
- Järjestelmän toiminnot
- Käyttäjän määrittämät toiminnot
Kuvataan molemmat tyypit yksityiskohtaisesti.
Järjestelmän toiminnot
Järjestelmän määrittelemiä toimintoja kutsutaan järjestelmäfunktioiksi. Toisin sanoen kaikki sisäänrakennetut toiminnot palvelimen tukemia kutsutaan järjestelmätoiminnoiksi. Sisäänrakennetut toiminnot säästävät aikaa tietyn tehtävän suorittamisessa. Tämäntyyppiset funktiot toimivat yleensä SQL SELECT -käskyn kanssa arvojen laskemiseen ja tietojen käsittelemiseen.
Tässä on luettelo joistakin SQL Serverissä käytetyistä järjestelmätoiminnoista:
- Merkkijonofunktiot (LEN, SUBSTRING, REPLACE, CONCAT, TRIM)
- Päivämäärä- ja aikafunktiot (datetime, datetime2, smalldatetime)
- Kokoonpanofunktiot (COUNT, MAX, MIN, SUM, AVG)
- Matemaattiset funktiot (ABS, POWER, PI, EXP, LOG)
- Sijoitusfunktiot (RANK, DENSE_RANK, ROW_NUMBER, NTILE)
Seuraava kuva näyttää kaikki sisäänrakennetut tietokantatoiminnot, joita käytetään SQL Serverissä:
Käyttäjän määrittämät toiminnot
Toiminnot, jotka ovat käyttäjän luoma Järjestelmätietokannassa tai käyttäjän määrittämässä tietokannassa tunnetaan käyttäjän määrittämiä toimintoja. UDF-funktiot hyväksyvät parametrit, suorittavat toimintoja ja palauttavat tuloksen. Nämä toiminnot auttavat meitä yksinkertaistamaan kehitystämme kapseloimalla monimutkaisen liiketoimintalogiikan ja mahdollistamalla sen uudelleenkäyttöön missä tahansa tarpeiden mukaan. Käyttäjän määrittämät toiminnot tekevät tietojen kyselyyn tarvittavan koodin kirjoittamisesta paljon helpompaa. Ne parantavat myös kyselyn luettavuutta ja toimivuutta sekä antavat muille käyttäjille mahdollisuuden toistaa samat menettelyt.
SQL Server luokittelee käyttäjän määrittämät toiminnot pääasiassa kahteen tyyppiin:
- Skalaarifunktiot
- Taulukkoarvoiset funktiot
Tässä on näiden UDF-toimintojen kuvaukset.
Skalaarifunktiot
Skalaaritoiminto SQL Serverissä aina hyväksyy parametreja, joko yksittäisiä tai useita, ja palauttaa yhden arvon . Skalaarifunktiot ovat hyödyllisiä koodimme yksinkertaistamisessa. Oletetaan, että meillä saattaa olla monimutkainen laskenta, joka esiintyy useissa kyselyissä. Tällaisessa tapauksessa voimme rakentaa skalaarifunktion, joka kapseloi kaavan ja käyttää sitä jokaisessa kyselyssä jokaisen kyselyn sijaan.
Seuraavassa on syntaksi, joka havainnollistaa skalaarifunktion luomista SQL Serverissä:
CREATE FUNCTION schema_name.function_name (parameter_list) RETURNS data_type AS BEGIN statements RETURN value END
Yllä olevat syntaksiparametrit on kuvattu alla:
Määritämme ensin funktion nimen jälkeen LUO TOIMINTO avainsanoja. Kaavan nimi on valinnainen. Jos emme määrittele skeeman nimeä, SQL Server käyttää oletusskeemaa dbo . Seuraavaksi määrittelemme luettelon parametrit suluissa. Kolmanneksi kirjoitamme funktion lausunnot ja sitten PALAUTUKSET lauseke, määritä palautusarvon tietotyyppi. Lopuksi olemme lisänneet RETURN-lauseen palauttamaan arvon funktion rungossa.
Esimerkki
Tämä esimerkki luo funktion laskea liikevaihtoa määrän, hinnan ja alennusarvon perusteella:
CREATE FUNCTION udfNet_Sales( @quantity INT, @price DEC(10,2), @discount DEC(3,2) ) RETURNS DEC(10,2) AS BEGIN RETURN @quantity * @price * (1 - @discount); END;
Nyt voimme käyttää tätä toimintoa laskeaksemme minkä tahansa määritetyn taulukon myyntitilauksen liikevaihdon.
Seuraava kuva näyttää, josta löydämme skalaarifunktiot:
Voimme kutsua skalaarifunktioita samoin kuin SQL Serverin sisäänrakennettua funktiota. Voimme esimerkiksi kutsua yllä olevaa udfNet_Sales-funktiota seuraavasti:
SELECT dbo.udfNet_Sales(25, 500, 0.2) AS net_sales;
Tämän toiminnon suorittaminen palauttaa liikevaihdon:
SQL Server mahdollistaa myös meille muuttaaksesi skalaarifunktiota käyttämällä ALTER avainsana. Tässä on syntaksi tämän tekemiseen:
ALTER FUNCTION schema_name.function_name (parameter_list) RETURNS data_type AS BEGIN statements RETURN value END
Voimme käyttää alla olevaa lausetta poistaaksesi skalaarifunktion SQL Server -tietokannasta:
DROP FUNCTION [schema_name.]function_name;
Taulukkoarvoiset funktiot
SQL Serverin taulukkoarvoiset funktiot ovat käyttäjän määrittämä toiminto joka palauttaa taulukkotyyppiset tiedot. Koska tämä toiminto on palautustyyppi on taulukko , voimme käyttää sitä samalla tavalla kuin käytämme taulukkoa.
Voimme luokitella taulukkoarvoisen funktion kahteen tyyppiin:
1. Sisäiset taulukkoarvot -funktiot
Tämä UDF-funktio palauttaa taulukkomuuttujan funktion suorittaman toiminnon perusteella. Taulukkomuuttujan arvon määrittämiseen tulee käyttää yhtä SELECT-käskyä.
Esimerkki
Alla oleva esimerkki luo taulukon arvot -funktion ja noutaa työntekijätaulukon tiedot:
--It creates a table-valued function to get employees CREATE FUNCTION fudf_GetEmployee() RETURNS TABLE AS RETURN (SELECT * FROM Employee)
Tässä syntaksissa PALAUTUSPÖYTÄ määrittää, että funktio palauttaa taulukon. Koska ei ole ALOITUS... LOPPU lauseke, se yksinkertaisesti kysyy tietoja työntekijätaulukosta. Lisäksi, jos sillä ei ole parametreja, sitä kutsutaan suoraan.
Voimme kutsua taulukkoarvoisia funktioita käyttämällä FROM lauseke VALITSE kysely. Esimerkiksi , voimme soittaa yllä olevaan udf_GetEmployee toimi seuraavasti:
SELECT * FROM udf_GetEmployee();
Tämän toiminnon suorittaminen palauttaa seuraavan tuloksen:
SQL Serverin avulla voimme myös muokata taulukkoarvoisia toimintoja käyttämällä ALTER-avainsanaa CREATE-avainsanan sijaan. Muu käsikirjoitus on sama.
Monilauseiset taulukkoarvoiset funktiot (MSTVF)
Tämä UDF-toiminto palauttaa taulukkomuuttujan toiminnon suorittaman toiminnon perusteella. Se voi sisältää yhden tai useita lausekkeita tuloksen tuottamiseksi, ja se on myös funktio, joka palauttaa useiden lauseiden tuloksen taulukkomuodossa. Se on hyödyllinen, koska voimme suorittaa useita käskyjä tässä funktiossa ja saada yhdistettyjä tuloksia palautettuun taulukkoon. Voimme määrittää tämän funktion käyttämällä taulukkomuuttujaa palautusarvona. Toiminnon sisällä suoritamme useita kyselyitä ja lisäämme tietoja tähän taulukkomuuttujaan.
Seuraava esimerkki luo funktion nimen 'MONIARVOITTU' joka palauttaa ' @Työntekijä' pöytä. Se sisältää kolme kenttää nimeltä id, emp_name ja palkka alkaen 'Työntekijä' taulukko käyttäen INSERT-käskyä ja päivittää sitten työntekijän nimen UPDATE-käskyn avulla.
CREATE FUNCTION MULTIVALUED() RETURNS @Employee TABLE (id INT, emp_name VARCHAR(50), salary INT) AS BEGIN INSERT INTO @Employee SELECT E.id, E.emp_name, E.salary FROM Employee E; UPDATE @Employee SET emp_name = 'Graeme Smith' WHERE id = 3; RETURN END
Voimme kutsua monilauseisia taulukkoarvoisia funktioita käyttämällä SELECT-kyselyn FROM-lausetta. Esimerkiksi , voimme kutsua yllä olevaa toimintoa seuraavasti:
SELECT * FROM MULTIVALUED();
Tämän toiminnon suorittaminen palauttaa seuraavan tuloksen:
Milloin taulukkoarvoisia funktioita tulee käyttää?
Taulukkoarvoisia funktioita käytetään yleisesti parametroituina näkyminä. Taulukkoarvoiset funktiot ovat joustavampia kuin tallennetut toiminnot, koska niitä voidaan käyttää kaikkialla, missä taulukoita käytetään.
kuinka löytää estetyt numerot Androidista
Johtopäätös
Tämä artikkeli selittää täydellisen yleiskatsauksen SQL Serverissä käytetyistä toiminnoista. Täällä olemme oppineet pääasiassa kahdenlaisia SQL Serverissä käytettyjä toimintoja: järjestelmä- ja käyttäjän määrittämiä toimintoja.