logo

SQL Server funkciók

Az SQL Server függvényei azok az adatbázis-objektumok, amelyek tartalmazzák a SQL utasításkészlet egy adott feladat végrehajtásához . A függvény elfogadja a bemeneti paramétereket, műveleteket hajt végre, majd visszaadja az eredményt. Meg kell jegyeznünk, hogy a függvények mindig egyetlen értéket vagy táblázatot adnak vissza. A funkciók fő célja a közös feladat egyszerű megismétlése. A funkciókat egy alkalommal építhetjük fel, és igényeink szerint több helyen is használhatjuk. Az SQL Server nem teszi lehetővé a rekordok beszúrására, törlésére vagy frissítésére szolgáló funkciók használatát az adatbázistáblákban.

Az SQL Server függvények létrehozásának szabályai a következők:

  • A függvénynek rendelkeznie kell névvel, és a név nem kezdődhet speciális karakterrel, például @, $, # vagy más hasonló karakterekkel.
  • A SELECT utasítások az egyetlenek, amelyek függvényekkel működnek.
  • Bárhol használhatunk függvényeket, például AVG, COUNT, SUM, MIN, DATE és más függvényeket az SQL SELECT lekérdezésével.
  • Amikor egy függvényt meghívunk, az lefordítja.
  • A függvényeknek értéket vagy eredményt kell visszaadniuk.
  • A függvények csak bemeneti paramétereket használnak.
  • A függvényekben nem használhatunk TRY és CATCH utasításokat.

A függvények típusai

Az SQL Server a funkciókat két típusba sorolja:

  • Rendszerfunkciók
  • Felhasználó által meghatározott funkciók

Ismertesse meg mindkét típust részletesen.

beszúrás rendezés java

Rendszerfunkciók

A rendszer által meghatározott funkciókat rendszerfüggvényeknek nevezzük. Más szóval, az összes beépített funkciók a szerver által támogatott rendszerfunkcióknak nevezzük. A beépített funkciókkal időt takaríthatunk meg az adott feladat elvégzése közben. Az ilyen típusú függvények általában az SQL SELECT utasítással működnek az értékek kiszámításához és az adatok kezeléséhez.

Íme néhány, az SQL Serverben használt rendszerfunkció listája:

  • Karakterlánc-függvények (LEN, SUBSTRING, REPLACE, CONCAT, TRIM)
  • Dátum és idő funkciók (datetime, datetime2, smalldatetime)
  • Összesített függvények (COUNT, MAX, MIN, SUM, AVG)
  • Matematikai függvények (ABS, POWER, PI, EXP, LOG)
  • Rangsorolási függvények (RANK, DENSE_RANK, ROW_NUMBER, NTILE)

Az alábbi kép az SQL Serverben használt összes beépített adatbázis-funkciót mutatja:

SQL Server funkciók

Felhasználó által meghatározott funkciók

Funkciók, amelyek a felhasználó hozta létre a rendszer adatbázisában vagy a felhasználó által definiált adatbázisban felhasználó által definiált függvényekként ismertek. Az UDF függvények paramétereket fogadnak el, műveleteket hajtanak végre, és visszaadják az eredményt. Ezek a funkciók segítenek leegyszerűsíteni fejlesztésünket azáltal, hogy komplex üzleti logikát foglalnak magukba, és az igényeknek megfelelően bárhol újra felhasználhatók. A felhasználó által definiált függvények sokkal könnyebbé teszik az adatok lekérdezéséhez szükséges kód írását. Ezenkívül javítják a lekérdezések olvashatóságát és funkcionalitását, valamint lehetővé teszik más felhasználók számára, hogy ugyanazokat az eljárásokat replikálják.

Az SQL Server a felhasználó által definiált függvényeket főként két típusba sorolja:

  1. Skaláris függvények
  2. Táblázatértékű függvények

Íme az UDF-funkciók leírása.

Skaláris függvények

A skaláris függvény mindig az SQL Serverben paramétereket fogad el, akár egyetlen, akár többszöröst, és egyetlen értéket ad vissza . A skaláris függvények hasznosak a kódunk egyszerűsítésében. Tegyük fel, hogy van egy összetett számításunk, amely számos lekérdezésben megjelenik. Ilyen esetben létrehozhatunk egy skaláris függvényt, amely beágyazza a képletet, és nem minden lekérdezésben, hanem minden lekérdezésben használja.

A következő szintaxis illusztrálja a skaláris függvény létrehozását az SQL Serverben:

szám a string java
 CREATE FUNCTION schema_name.function_name (parameter_list) RETURNS data_type AS BEGIN statements RETURN value END 

A fenti szintaktikai paraméterek leírása az alábbiakban található:

Először a függvény nevét adjuk meg a FUNKCIÓ LÉTREHOZÁSA kulcsszavakat. A séma neve nem kötelező. Ha nem adjuk meg a séma nevét, az SQL Server az alapértelmezett sémát használja dbo . Ezután meghatározzuk a listát paramétereket zárójelben. Harmadszor megírjuk a függvény utasításait, majd a VISSZATÉRÉS utasítást, adja meg a visszatérési érték adattípusát. Végül hozzáadtuk a RETURN utasítást, hogy egy értéket adjunk vissza a függvény törzsében.

Példa

Ez a példa egy függvényt hoz létre kiszámítja a nettó árbevételt mennyiség, ár és kedvezményérték alapján:

 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; 

Most ezzel a függvénnyel kiszámolhatjuk bármely értékesítési rendelés nettó árbevételét a meghatározott táblázatban.

A következő képen láthatjuk a skalár függvényeket:

SQL Server funkciók

A skalár függvényeket ugyanúgy hívhatjuk, mint az SQL Server beépített függvényét. Például a fenti udfNet_Sales függvényt az alábbiak szerint hívhatjuk meg:

 SELECT dbo.udfNet_Sales(25, 500, 0.2) AS net_sales; 

Ennek a függvénynek a végrehajtása visszaadja a nettó árbevételt:

SQL Server funkciók

Az SQL Server is lehetővé teszi számunkra a skalár függvény módosításához az ALTER használatával kulcsszó. Íme a szintaxis ehhez:

 ALTER FUNCTION schema_name.function_name (parameter_list) RETURNS data_type AS BEGIN statements RETURN value END 

Az alábbi utasítással eltávolíthatjuk a skalár függvényt az SQL Server adatbázisból:

Sree Ramanujan
 DROP FUNCTION [schema_name.]function_name; 

Táblázatértékű függvények

Az SQL Server tábla értékű függvényei a felhasználó által definiált funkció amely táblázat típusú adatokat ad vissza. Mivel ez a funkció A visszatérési típus egy táblázat , ugyanúgy használhatjuk, mint egy táblázatot.

A táblázat értékű függvényeket két típusba sorolhatjuk:

1. Soron belüli táblázatérték-függvények

Ez az UDF függvény egy táblázatváltozót ad vissza a függvény által végrehajtott művelet alapján. A táblaváltozó értékének meghatározásához egyetlen SELECT utasítást kell használni.

Példa

Az alábbi példa egy táblázatérték függvényt hoz létre, és lekéri az alkalmazottak tábla adatait:

 --It creates a table-valued function to get employees CREATE FUNCTION fudf_GetEmployee() RETURNS TABLE AS RETURN (SELECT * FROM Employee) 

Ebben a szintaxisban a VISSZATÉRÉSI ASZTAL megadja, hogy a függvény egy táblát ad vissza. Mivel nincs KEZDÉS...VÉGE utasítást, egyszerűen lekérdezi az adatokat az alkalmazotti táblából. Továbbá, ha nincsenek paraméterei, akkor közvetlenül meghívásra kerül.

A tábla értékű függvényeket a segítségével hívhatjuk meg TÓL TŐL záradéka a KIVÁLASZTÁS lekérdezés. Például , hívhatjuk a fentieket udf_GetEmployee működjön az alábbiak szerint:

 SELECT * FROM udf_GetEmployee(); 

A függvény végrehajtása az alábbi eredményt adja vissza:

SQL Server funkciók

Az SQL Server azt is lehetővé teszi, hogy a CREATE kulcsszó helyett az ALTER kulcsszó használatával módosítsuk a táblázat értékű függvényeket. A forgatókönyv többi része ugyanaz.

egy karakterlánc felosztása c++-ban

Többutasításos táblaértékű függvények (MSTVF)

Ez az UDF funkció táblázatváltozót ad vissza a funkció által végzett cselekvés alapján. Tartalmazhat egyetlen vagy több utasítást az eredmény előállításához, és ez egy olyan függvény is, amely több utasítás eredményét adja vissza táblázatos formában. Hasznos, mert ebben a függvényben több utasítást is végrehajthatunk, és összesített eredményeket kaphatunk a visszaadott táblába. Ezt a függvényt úgy határozhatjuk meg, hogy visszatérési értékként egy táblaváltozót használunk. A függvényen belül több lekérdezést hajtunk végre, és adatokat szúrunk be ebbe a táblázatváltozóba.

A következő példa egy függvénynevet hoz létre 'TÖBBÉRTÉKES' ami visszaadja a ' @Munkavállaló' asztal. Három mezőt tartalmaz: id, emp_name és fizetés 'Munkavállaló' táblázatot az INSERT utasítás használatával, majd az UPDATE utasítással frissíti az alkalmazott nevét.

 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 

A többutasításos táblaértékű függvényeket a SELECT lekérdezés FROM záradékának használatával hívhatjuk meg. Például , a fenti függvényt az alábbiak szerint hívhatjuk:

 SELECT * FROM MULTIVALUED(); 

A függvény végrehajtása az alábbi eredményt adja vissza:

SQL Server funkciók

Mikor kell használni a táblázat értékű függvényeket?

A táblázatos értékű függvényeket általában paraméterezett nézetként használják. A táblaértékű függvények rugalmasabbak, mint a tárolt eljárások, mivel bárhol használhatók, ahol táblákat használnak.

Következtetés

Ez a cikk az SQL Serverben használt funkciók teljes áttekintését ismerteti. Itt főleg kétféle, az SQL Serverben használt függvényt tanultunk meg: a rendszer és a felhasználó által definiált függvényeket.