itthon / Avatar / Munka az adatbázissal. Függvények SQL lekérdezésekben. SQL nyelvi funkciók SELECT utasítás szintaxisa és feldolgozási sorrendje

Munka az adatbázissal. Függvények SQL lekérdezésekben. SQL nyelvi funkciók SELECT utasítás szintaxisa és feldolgozási sorrendje

8.2. táblázat. SQL matematikai függvények
Matematikai függvény Leírás
ABS(X) Az X szám abszolút értékét adja eredményül
ACOS (X) Az X arc koszinuszát adja eredményül
ASIN(X) Az X szám arcszinuszát adja eredményül
ATAN(X) X arctangensét adja eredményül
COS(X) Az X szám koszinuszát adja eredményül
EXP(X) X kitevőjét adja eredményül
JEL(X) -1-et ad vissza, ha X<0,0, если Х=0, +1 , если Х>0
LN(X) Visszatér természetes logaritmus számok X
MOD(X,Y) A maradékot adja vissza, ha X osztva Y-val
CEIL (X) Az X-nél nagyobb vagy egyenlő legkisebb egész számot adja vissza
KEREK (X;n) Az X számot n tizedesjegyű számra kerekíti
SIN(X) X szinuszát adja vissza
SQRT(X) Egy X szám négyzetgyökét adja eredményül
TAN(X) X tangensét adja vissza
EMELET (X) Az X-nél kisebb vagy egyenlő legnagyobb egész számot adja vissza
NAPLÓ(a,X) X logaritmusát adja vissza A bázisra
SINH(X) Az X hiperbolikus szinuszát adja eredményül
COSH(X) Az X hiperbolikus koszinuszát adja eredményül
TANH(X) Az X hiperbolikus tangensét adja eredményül
TRANC(X;n) Az X számot n számjegyű számmá csonkolja a tizedesvessző után
TELJESÍTMÉNY(A,X) Az A értékét X hatványára emelve adja vissza

A beépített funkciók készlete az egyes gyártók DBMS-einek verziójától és a különböző gyártók DBMS-eitől függően változhat. Például az SQLBase DBMS-ben a Century Inc. Van egy @ATAN2(X,Y) függvény, amely visszaadja az Y/X arctangensét, de nincs SIGN(X) függvény.

Az aritmetikai kifejezésekre olyan adatok beszerzéséhez van szükség, amelyek nem közvetlenül az adatbázistáblák oszlopaiban vannak tárolva, de amelyek értékeit a felhasználó megköveteli. Tegyük fel, hogy szüksége van egy listára az alkalmazottakról, amely tartalmazza az egyes alkalmazottak fizetését, beleértve a bónuszokat és büntetéseket.

KIVÁLASZTÁS ENAME, SAL, COMM, FINE, SAL + COMM - FINE ALKALMAZOTTAI RENDELÉSBŐL DEPNO ÁLTAL;

A SAL + COMM - FINE aritmetikai kifejezés új oszlopként kerül kiadásra az eredménytáblázatban, amely a lekérdezés eredményeként kerül kiszámításra. Az ilyen oszlopokat származtatott (számított) attribútumoknak vagy mezőknek is nevezik.

String feldolgozási funkciók

Az SQL a funkciók széles skáláját kínálja a karakterlánc-adatok kezeléséhez (karakterlánc-összefűzés, CHR, LENGTH, INSTR és mások). A karakterláncadatok feldolgozásához szükséges fő funkciók listája a 8.3. táblázatban található.

8.3. táblázat. SQL-függvények karakterlánc-feldolgozáshoz
Funkció Leírás
CHR(N) Az N decimális kód ASCII-kód karakterét adja vissza
ASCII(S) Egy karakterlánc első karakterének decimális ASCII-kódját adja vissza
INSTR(S2.S1.poz[,N] Visszaadja az S1 karakterlánc pozícióját az S2 karakterláncban, amely nagyobb vagy egyenlő, mint a pos.N – az előfordulások száma
HOSSZ(OK) Egy karakterlánc hosszát adja vissza
ALSÓ(K) A karakterlánc összes karakterét nagybetűre cseréli
INITCAP(S) A karakterlánc minden szava első karakterét nagybetűre állítja, a többi szót pedig nagybetűre
SUBSTR(S,poz,[,len]) Kiválaszt egy len hosszúságú részkarakterláncot az S karakterláncban, a poz. pozíciótól kezdve
FELSŐ(EK) A karakterláncban lévő nagybetűket nagybetűkké alakítja
LPAD(S,N[,A]) Visszaadja az S karakterláncot balra kitöltve, legfeljebb N karakterrel. Karakter – alapértelmezett kitöltő – szóköz
Rpad(S,N[,A]) Az S karakterláncot adja vissza, jobbra kitömve az A karakterekkel az N karakterek számához. Karakter – alapértelmezett kitöltő – szóköz
LTRIM(S,) A balra csonkolt S karakterláncot adja vissza. A karakterek mindaddig törlődnek, amíg az eltávolítandó karakter szerepel a karakterláncban - S1 minta (alapértelmezett - szóköz)
RTRIM(S,) A jobbra csonkolt S karakterláncot adja vissza. A karakterek mindaddig törlődnek, amíg az eltávolítandó karakter benne van a karakterláncban - S1 minta (alapértelmezett - szóköz
FORDÍTÁS(S,S1,S2) Az S karakterláncot adja vissza úgy, hogy az S1 karakterlánc minden előfordulása S2 karakterláncra cserélve. Ha S1<>S2 , akkor a nem egyező karakterek kikerülnek a kapott karakterláncból
CSERE (S,S1,[,S2]) Az S karakterláncot adja vissza, amelynél az S1 karakterlánc minden előfordulását az S2 részkarakterlánc helyettesíti. Ha az S2 nincs megadva, akkor az S1 részkarakterlánc minden előfordulása el lesz távolítva a kapott karakterláncból
NVL(X,Y) Ha X NULL , akkor Y karakterláncot, számot vagy dátumot ad vissza, az Y eredeti típusától függően

Ugyanazon függvények neve eltérhet a különböző DBMS-ekben. Például az SQLBase DBMS-ben az Oracle DBMS függvény SUBSTR(S, pos, [, len]) neve @SUBSTRING(S, pos, len) . Az SQLBase DBMS olyan funkciókat tartalmaz, amelyek nem érhetők el az Oracle DBMS-ben (lásd.

A Transact-SQL nyelvi függvények lehetnek összesítettek vagy skalárisak. Az ilyen típusú funkciókat ebben a cikkben tárgyaljuk.

Összesített függvények

Az aggregált függvények számításokat hajtanak végre az oszlopértékek csoportján, és a számítások eredményeként mindig egyetlen értéket adnak vissza. A Transact-SQL számos általános összesítő funkciót támogat:

AVG

Kiszámítja az oszlopban található adatok számtani átlagát. A számításhoz használt értékeknek numerikusnak kell lenniük.

MIN és MAX

Meghatározza egy oszlopban található összes adatérték maximális és minimális értékét. Az értékek lehetnek numerikusak, karakterláncok vagy időbeliek (dátum/idő).

ÖSSZEG

Kiszámítja egy oszlopban lévő értékek teljes összegét. A számításhoz használt értékeknek numerikusnak kell lenniük.

SZÁMOL

Megszámolja az oszlopban lévő nem null értékek számát. A count(*) függvény az egyetlen összesítő függvény, amely nem végez számításokat oszlopokon. Ez a függvény a sorok számát adja vissza (függetlenül attól, hogy az egyes oszlopok tartalmaznak-e null értékeket).

COUNT_BIG

Hasonló a count függvényhez, azzal a különbséggel, hogy BIGINT adatértéket ad vissza.

A szabályos összesítő függvények SELECT utasításban való használatáról egy későbbi cikkben lesz szó.

Skaláris függvények

A Transact-SQL skalárfüggvényeket skaláris kifejezések létrehozására használják. (A skaláris függvény egyetlen értékre vagy értéklistára, míg az összesített függvény több sorban lévő értékcsoportra végez számításokat.) A skaláris függvények a következő kategóriákra bonthatók:

    numerikus függvények;

    dátumfüggvények;

    karakterlánc-függvények;

    rendszerfunkciók;

    metaadat függvények.

Az ilyen típusú funkciókat a következő szakaszok tárgyalják.

Numerikus függvények

A Transact-SQL numerikus függvények numerikus értékek módosítására szolgáló matematikai függvények. A numerikus függvények listája és rövid leírása az alábbi táblázatban található:

Transact-SQL numerikus függvények
Funkció Szintaxis Leírás Használati példa
ABS ABS(n)

Egy n numerikus kifejezés abszolút értékét adja vissza (vagyis a negatív értékeket pozitívként adja vissza).

SELECT ABS(-5.320) -- 5.320 SELECT ABS(8.90) -- 8.90

ACOS, ASIN, ATAN, ATN2 ACOS(n), ASIN(n), ATAN(n), ATN2(n, m)

Inverz trigonometrikus függvények, amelyek az n érték arccosine, arcsine, arctangensét számítják ki (ATN2 esetén az n/m arctangens kerül kiszámításra). Az n, m bemeneti értékek és az eredmény FLOAT adattípusú.

COS, SIN, TAN, COT COS(n), SIN(n), TAN(n), COT(n)

Trigonometrikus függvények, amelyek kiszámítják az n érték koszinuszát, szinuszát, tangensét, kotangensét. Az eredmény FLOAT adattípusú.

FOKOK, RADIÁNOK FOK(n), RADIÁNSZ(n)

A DEGREES függvény a radiánokat fokokká, RADIANS-t, illetve fordítva konvertálja.

SELECT DEGREES(PI() / 4) -- 45 SELECT COS(RADIANS(60.0))) -- 0.5 értéket ad vissza

MENNYEZET MENNYEZET (n)

Egy számot magasabb egész értékre kerekít.

MENNYEZET KIVÁLASZTÁSA(-5.320) -- Visszatér -5 MENNYEZET KIVÁLASZTÁSA(8.90) -- 9.

KEREK ROUND(n, p, [t])

n értékét a legközelebbi p-re kerekíti. Ha p pozitív szám, akkor n tört része kerekítésre kerül, ha pedig negatív, akkor az egész rész. Az opcionális t argumentum használatakor az n számot nem kerekítjük, hanem csonkoljuk (vagyis lefelé kerekítjük).

SELECT ROUND(5.3208, 3) -- 5.3210 SELECT ROUND(125.384, -1) -- 130.000 SELECT ROUND(125.384, -1, 1) -- 120.000 értéket ad vissza

PADLÓ EMELET(n)

Lefelé kerekít a legalacsonyabb egész értékre.

EMELET KIVÁLASZTÁSA(5,88) -- 5. eredmény

EXP EXP(n)

Kiszámítja e n értékét.

NAPLÓ, LOG10 LOG(n), LOG10(n)

LOG(n) - kiszámítja az n szám természetes logaritmusát (azaz e bázisát), LOG10(n) - kiszámítja az n szám decimális (10-es) logaritmusát.

P.I. PI()

π értékét adja vissza (3,1415).

ERŐ TELJESÍTMÉNY(x, y)

Kiszámítja x y értékét.

RAND RAND()

Tetszőleges számú FLOAT típusút ad vissza a 0 és 1 közötti értéktartományban.

ROWCOUNT_BIG ROWCOUNT_BIG()

A rendszer által legutóbb végrehajtott Transact-SQL utasítás által feldolgozott táblázatsorok számát adja vissza. A visszatérési érték BIGINT típusú.

JEL JEL(n)

Az n előjelét adja vissza számként: +1, ha pozitív, -1, ha negatív.

SQRT, SQUARE SQRT(n), NÉGYZET(n)

SQRT(n) - az n szám négyzetgyökét számítja ki, SQUARE(n) - az n argumentum négyzetét adja vissza.

Dátum funkciók

A dátumfüggvények kiértékelik a kifejezés megfelelő dátum- vagy időpontrészeit, vagy időintervallumértéket adnak vissza. A Transact-SQL által támogatott dátumfüggvényeket és azok rövid leírását az alábbi táblázat tartalmazza:

Transact-SQL dátumfüggvények
Funkció Szintaxis Leírás Használati példa
GETDATE GETDATE()

Az aktuális rendszerdátumot és -időt adja vissza.

KIVÁLASZTÁS GETDATE()

DATEPART DATEPART (tétel, dátum)

Az item paraméterben megadott dátumrészt egész számként adja vissza.

1. (január) SELECT DATEPART(hónap, "2012. 01. 01.") -- 4. visszatérés (szerda) SELECT DATEPART (hétköznap, "2012. 01. 01.")

DATENAME DATENAME (tétel, dátum)

Az item paraméterben megadott dátumrészt karakterláncként adja vissza.

Visszatér: január SELECT DATENAME(hónap, "2012. 01. 01.") -- szerda SELECT DATENAME (hétköznap, "2012. 01. 02.")

DATEDIFF DATEDIFF (elem, dat1, dat2)

Kiszámítja a különbséget két dátumrész, dat1 és dat2 között, és egy egész számot ad vissza az item argumentumban megadott egységekben.

19-et ad vissza (19 éves intervallum a dátumok között) SELECT DATEDIFF(év, "01/01/1990", "01/01/2010") -- 7305-öt ad vissza (7305 napos intervallum a dátumok között) SELECT DATEDIFF(nap, "01/01") /1990", "01/01" .2010")

DATEADD DATEADD (tétel, n, dátum)

Hozzáadja az item argumentumban megadott egységek n-edik számát a megadott dátumhoz. (n negatív is lehet.)

3 napot ad az aktuális dátumhoz SELECT DATEADD(nap, 3, GETDATE())

String függvények

A karakterlánc-függvények manipulálják az oszlopértékeket, amelyek jellemzően karakteres adattípusok. A Transact-SQL támogatott karakterlánc-függvényeit és azok rövid leírását az alábbi táblázat tartalmazza:

Transact-SQL karakterlánc-függvények
Funkció Szintaxis Leírás Használati példa
ASCII, UNICODE ASCII(karakter), UNICODE(karakter)

A megadott karaktert a megfelelő ASCII-kód egész számmá alakítja.

SELECT ASCII("W") -- 87 SELECT UNICODE("u") -- 1102

CHAR, NCHAR CHAR(int), NCHAR(int)

ASCII kódot (vagy Unicode-ot, ha NCHAR) a megfelelő karakterré alakít át.

SELECT CHAR(87) -- "W" SELECT NCHAR(1102) -- "yu"

CHARINDEX CHARINDEX (str1, str2)

Az str1 részkarakterlánc előfordulásának kezdőpozícióját adja vissza az str2 karakterláncban. Ha az str2 karakterlánc nem tartalmazza az str1 részkarakterláncot, akkor a rendszer 0 értéket ad vissza

5 SELECT CHARINDEX értéket ad vissza ("morf", "polimorfizmus")

KÜLÖNBSÉG KÜLÖNBSÉG (str1, str2)

Egy 0 és 4 közötti egész számot ad vissza, amely a két str1 és str2 karakterlánc SOUNDEX értéke közötti különbség. A SOUNDEX metódus egy számot ad vissza, amely a húr hangját jellemzi. Ezzel a módszerrel hasonló hangzású húrokat azonosíthat. Csak ASCII karakterekkel működik.

2 SELECT DIFFERENCE ("elírás", "megmondó") értéket ad vissza

BAL JOBB BAL (szt, hossz), JOBB (szt, hossz)

Visszaadja az str string első karaktereinek számát, amelyet a hossz paraméter a BALRA, és az str string utolsó karaktereit a JOBBRA függvényhez.

DECLARE @str nvarchar(30) = "Szinkronizálás"; -- A "Sync" értéket adja vissza SELECT LEFT(@str, 4) -- "Zation"-t adja vissza SELECT RIGHT(@ str, 5)

LEN LEN(str)

Az argumentumban megadott str string karaktereinek számát (nem a bájtok számát) adja vissza, beleértve a záró szóközöket.

ALSÓ FELSŐ LOWER(str), UPPER(str)

A LOWER függvény az str1 összes nagybetűjét kisbetűvé alakítja. A kisbetűket és a karakterláncban szereplő egyéb karaktereket ez nem érinti. Az UPPER függvény az str karakterlánc összes kisbetűjét nagybetűvé alakítja.

DECLARE @str nvarchar(30) = "Szinkronizálás"; -- "SYNCHRONIZATION" SELECT UPPER(@str) - "synch" értéket adja vissza SELECT LOWER(@str)

LTRIM, RTRIM LTRIM(str), RTRIM(str)

Az LTRIM függvény eltávolítja a kezdő szóközöket a str stringből, az RTRIM pedig eltávolítja a szóközöket a karakterlánc végén.

QUOTENAME QUOTENAME (karakterlánc)

Unicode kódolású karakterláncot ad vissza határolókkal, amelyek a bemeneti karakterláncot érvényes elválasztott azonosítóvá alakítják.

DECLARE @str nvarchar(30) = "Szinkronizálás"; -- „[Szinkronizálás]” visszaadása SELECT QUOTENAME(@str)

PATINDEX PATINDEX (%p%, kif)

A p minta első előfordulásának kezdőpozícióját adja vissza az adott kifejezésben, vagy nullát, ha a minta nem található.

4 SELECT PATINDEX("%chro%", "Szinkronizálás")

CSERE CSERE (str1, str2, str3)

Az str2 részkarakterlánc minden előfordulását lecseréli az str1 karakterláncban az str3 részkarakterláncra.

A "Desynchronization" értéket adja vissza SELECT REPLACE("Szinkronizálás", "Szinkronizálás", "Deszinkronizálás")

MEGISMÉTELNI REPLIKÁLÁS (str, i)

Megismétli a str i karakterláncot.

"aBaBaBaBaB" SELECT REPLICATE("aB", 5) eredményt ad vissza

FORDÍTOTT VISSZA (str)

A str karakterláncot fordított sorrendben nyomtatja ki.

A "yaitsazinorkhniS" értéket adja vissza SELECT REVERSE("Szinkronizálás")

SOUNDEX SOUNDEX (str)

Egy négy karakterből álló soundex kódot ad vissza, amely annak meghatározására szolgál, hogy két karakterlánc hasonló-e. Csak ASCII karakterekkel működik.

HELY TÉR (hossz)

A hossz paraméterben megadott hosszúságú szóközök karakterláncát adja vissza. Hasonló a REPLICATE(" ", hossza).

STR STR (f[, len[, d]])

A megadott f lebegőpontos kifejezést karakterláncsá alakítja, ahol len a karakterlánc hossza, beleértve a tizedesvesszőt, előjelet, számjegyeket és szóközöket (alapértelmezés szerint 10), d pedig a visszaadandó tizedesjegyek száma.

„3.14” SELECT STR (3.1415, 4, 2) értéket ad vissza

DOLOG STUFF (str1, a, hossza, str2)

Eltávolítja a hosszúságú karaktereket az str1 karakterláncból, az a pozíciótól kezdve, és beszúrja az str2 karakterláncot a helyükre.

Megjegyzés egy könyvben SELECT STUFF("Jegyzetfüzet", 5, 0," in a ") -- Kézikönyv SELECT STUFF("Jegyzetfüzet", 1, 4, "Kézi")

SUBSTRING SUBSTRING (str1, a, hosszúság)

Az a pozíciótól kezdődő str karakterláncból kivon egy hosszúságú részkarakterláncot.

Rendszerfunkciók

A Transact-SQL rendszerfunkciók kiterjedt információkat nyújtanak az adatbázis-objektumokról. A legtöbb rendszerfunkció belső numerikus azonosítót (ID) használ, amely minden adatbázis-objektumhoz hozzá van rendelve annak létrehozásakor. Ezzel az azonosítóval a rendszer egyedileg tud azonosítani minden adatbázis-objektumot.

Az alábbi táblázat felsorol néhány legfontosabb rendszerfunkciót azok rövid leírásával együtt:

Transact-SQL rendszerfunkciók
Funkció Szintaxis Leírás Használati példa
ÖNTVÉNY CAST (AS típusú [(hossz)]

A w kifejezést a megadott adattípusra konvertálja (ha lehetséges). A w argumentum bármilyen érvényes kifejezés lehet.

3 SELECT CAST (3,1258 AS INT) eredményt ad vissza

EGYESÜL EGYESÜLÉS (a1, a2)

Az első kifejezésértéket adja vissza az a1, a2, ... kifejezések listájából, amely nem null.

COL_LENGTH COL_LENGTH (obj, col)

Az adatbázis-objektum (tábla vagy nézet) obj oszlop oszlopának hosszát adja vissza.

4-et ad vissza SELECT COL_LENGTH("Alkalmazott", "Id")

ALAKÍTANI KONVERT (típus[(hossz)], w)

Egyenértékű a CAST függvénnyel, de az argumentumok eltérőek. Bármilyen adattípussal használható.

CURRENT_TIMESTAMP CURRENT_TIMESTAMP

Az aktuális dátumot és időt adja vissza.

JELENLEGI FELHASZNÁLÓ JELENLEGI FELHASZNÁLÓ

Az aktuális felhasználó nevét adja vissza.

ADATHOSSZ DATALENGTH(z)

A z kifejezés által elfoglalt bájtok számát adja eredményül.

Ez a lekérdezés visszaadja az egyes mezők hosszát SELECT DATALENGTH(FirstName) FROM Employee

GETANSINUL GETANSINULL("dbnév")

1-et ad vissza, ha a null értékek használata a dbname adatbázisban megfelel az ANSI SQL szabványnak.

NULLA ISNULL (kifejezés, érték)

Az expr értékét adja vissza, ha nem NULL; ellenkező esetben értéket ad vissza.

ISNUMERIC ISNUMERIC (kif)

Meghatározza, hogy az expr kifejezés érvényes numerikus típus-e.

NEWID ÚJID()

Létrehoz egy egyedi azonosítószám-azonosítót, amely egy 16 bájtos bináris karakterláncból áll, amely az UNIQUEIDENTIFIER adattípus értékeinek tárolására szolgál.

NEWSEQUENTIALID NEWSEQUENTIALID()

Létrehoz egy GUID-t, amely nagyobb, mint bármely más, a funkció által korábban létrehozott GUID-azonosító a megadott számítógépen. (Ez a függvény csak alapértelmezett értékeként használható egy oszlophoz.)

NULLIF NULLIF (expr1, expr2)

Null értékkel tér vissza, ha az expr1 és a expr2 értéke megegyezik.

A lekérdezés NULL értéket ad vissza egy projekthez -- amelynek száma = "p1" SELECT NULLIF(szám, "p1") FROM projekt

SZERVERTULAJDON SERVERPROPERTY (tulajdonnév)

Információkat ad vissza az adatbázis-kiszolgáló tulajdonságairól.

SYSTEM_USER SYSTEM_USER

Az aktuális felhasználó azonosítóját adja vissza.

FELHASZNÁLÓI AZONOSÍTÓ FELHASZNÁLÓI AZONOSÍTÓ()

A felhasználói azonosító felhasználónevet adja vissza. Ha nincs megadva felhasználó, akkor az aktuális felhasználói azonosító kerül visszaadásra.

FELHASZNÁLÓNÉV FELHASZNÁLÓNÉV()

A megadott azonosítójú felhasználónevet adja vissza. Ha nincs megadva azonosító, akkor a rendszer az aktuális felhasználó nevét adja vissza.

Metaadat funkciók

Alapvetően a metaadatfüggvények egy megadott adatbázisról és adatbázis-objektumokról adnak vissza információkat. Az alábbi táblázat összefoglal néhány legfontosabb metaadat-funkciót azok rövid leírásával együtt:

Transact-SQL metaadat-függvények
Funkció Szintaxis Leírás Használati példa
COL_NAME COL_NAME (tab_id, col_id)

A tab_id azonosítójú tábla col_id megadott azonosítójú oszlopának nevét adja vissza.

A "LastName" oszlop nevét adja vissza SELECT COL_NAME (OBJECT_ID("Employee"), 3)

OSZLOPTULAJDONSÁG OSZLOPTULAJDONSÁG (azonosító, oszlop, tulajdonság)

A megadott oszlop adatait adja vissza.

A PRECISION tulajdonság értékét adja vissza az Employee tábla Id oszlopához SELECT COLUMNPROPERTY (OBJECT_ID("Employee"), "Id", "precision")

ADATBÁZISTULAJDONSÁG ADATBÁZISTULAJDON (adatbázis, tulajdonság)

Az adatbázis tulajdonság tulajdonság értékét adja vissza.

Az IsNullConcat tulajdonság értékét adja vissza -- a SampleDb adatbázishoz SELECT DATABASEPROPERTY ("SampleDb", "IsNullConcat")

DB_ID DB_ID()

A db_name adatbázis-azonosítót adja vissza. Ha nincs megadva adatbázisnév, akkor az aktuális adatbázis azonosítója kerül visszaadásra.

DB_NAME DB_NAME()

A db_id értékkel rendelkező adatbázis nevét adja vissza. Ha nincs megadva azonosító, akkor a rendszer az aktuális adatbázis nevét adja vissza.

INDEX_COL INDEX_COL (tábla, i, nem)

A táblatábla indexelt oszlopának nevét adja vissza. Az oszlopot az i indexazonosító és a no oszloppozíció jelzi az indexben.

INDEXPROPERTY INDEXPROPERTY (obj_id, index_name, property)

Egy elnevezett index vagy statisztika tulajdonságait adja vissza a megadott táblaazonosító számhoz, az index vagy statisztika nevét és a tulajdonság nevét.

OBJECT_NAME OBJECT_NAME (obj_id)

Az obj_id azonosítóval rendelkező adatbázis-objektum nevét adja vissza.

SELECT OBJECT_NAME(245575913);

OBJECT_ID OBJECT_ID (obj_name)

Az adatbázis obj_name objektumazonosítóját adja vissza.

Visszatér: 245575913 – Alkalmazotti táblázat azonosítója SELECT OBJECT_ID("Alkalmazott")

TÁRGY TULAJDONSÁG OBJECTPROPERTY (obj_id, property)

Információkat ad vissza az objektumokról az aktuális adatbázisból.

Ebben a cikkben megtekintheti az SQL nyelv függvénytípusait. A függvények lehetnek összesített vagy skalárisak. Kezdjük...

SZÁMOL()

SZÁMOL()- egy függvény, amely a tábla rekordjainak (sorainak) számát adja vissza. Egy oszlopot meghatározó függvény írása egy adott oszlop rekordjainak számát adja vissza, a NULL rekordok nélkül. Függvény szintaxis:

COUNT(oszlop_neve);

Ha egy függvényt „*” maszkkal ír, akkor a táblázatban szereplő összes rekord számát adja vissza. Szintaxis:

SZÁMOL(*);

Nézzünk példákat. A következő egyetemi táblázat található:

ID Egyetem neve Diákok Karok professzorok Elhelyezkedés Webhely
1 Permi Állami Nemzeti Kutató Egyetem 12400 12 1229 perm psu.ru
2 Szentpétervári Állami Egyetem 21300 24 13126 Szentpétervár spbu.ru
3 Novoszibirszki Állami Egyetem 7200 13 1527 Novoszibirszk nsu.ru
4 Moszkvai Állami Egyetem 35100 39 14358 Moszkva msu.ru
5 Közgazdasági Felsőiskola 20335 12 1615 Moszkva hse.ru
6 Uráli Szövetségi Egyetem 57000 19 5640 Jekatyerinburg urfu.ru
7 Nemzeti Kutató Nukleáris Egyetem 8600 10 936 Moszkva mephi.ru

1. példa Nyomtassa ki a táblarekordok számát a COUNT függvény segítségével:

SZÁM KIVÁLASZTÁSA (*)
Egyetemektől; // nyomtat 7

2. példa: Keresse meg a moszkvai egyetemek számát a COUNT függvény segítségével:

SELECT COUNT(*) FROM egyetemek WHERE Hely = "Moszkva"; // nyomtat 3

AVG()

AVG()- egy oszlop átlagértékét visszaadó függvény. Ez a funkció csak numerikus oszlopokra vonatkozik. Szintaxis:

AVG(oszlop_neve);

Nézzünk egy példát. Vegyük az egyetemek táblázatát. Példa. Az AVG függvény segítségével keresse meg az összes egyetem hallgatóinak (hallgatók) átlagos számát:

SELECT AVG(Students) FROM egyetemek; // kinyomtatja a 23133-at

MIN()

MIN()- egy oszlop minimális értékét visszaadó függvény. A függvény a következő szintaxissal rendelkezik:

MIN(oszlop_neve);

Nézzünk egy példát. Vegyük az egyetemek táblázatát. Példa. A MIN függvény segítségével keresse meg a Professzorok oszlop minimális értékét:

SELECT MIN (professzorok) FROM egyetemek; // kinyomtatja a 936-ot

MAX()

MAX()- egy függvény, amely a táblázat oszlopának maximális értékét adja vissza. A függvény a következő szintaxissal rendelkezik:

MAX(oszlop_neve);

Nézzünk egy példát. Vegyük az egyetemek táblázatát. Példa. A MAX függvény segítségével keresse meg a Diákok oszlop maximális értékét:

SELECT MAX(Students) FROM egyetemekről; // 57000-et fog kiadni

ÖSSZEG()

ÖSSZEG()- egy függvény, amely egy táblázat oszlopának értékeinek összegét adja vissza. Csak numerikus oszlopokhoz használatos. Függvény szintaxis:

SZUM(kifejezés);

Paraméter MINDEN- az alapértelmezett beállítás. Az összes sor összege kiszámításra kerül. Paraméter megadásakor KÜLÖNBÖZŐ- csak az egyedi értékek számítanak.

Nézzünk példákat. Vegyük az egyetemek táblázatát. 1. példa: A SUM függvény segítségével keresse meg a táblázatban az összes egyetem hallgatóinak számát:

SELECT SUM(Students) FROM egyetemek; // kinyomtatja a 161935-öt

2. példa: A SUM függvény segítségével számolja meg a Karok oszlop egyedi értékeit:

SELECT SUM(DISTINCT Faculties) FROM egyetemek; // a 117-et fogja megjeleníteni (a Karok oszlopban 2 azonos rekord van, 1-es és 5-ös azonosító alatt. Az 5-ös azonosító alatti oszlop értéke nincs összeadva.)

KEREK()

KEREK()- funkció decimális számok kerekítésére. Csak numerikus oszlopokkal vagy tetszőleges valós számokkal működik. Függvény szintaxis:

ROUND(kifejezés, hossz);

kifejezés- az oszlop vagy oszlopok neve, valamint egy valós szám. hossz- jelzi a szám kerekítési pontosságát.

Nézzünk egy példát. Vegyük a bolygók táblázatát:

ID Bolygónév Sugár Napszezon Nyitási Év HavingRings Nyitó
1 Mars 3396 687.58 1659 Nem Christiaan Huygens
2 Szaturnusz 60268 10759.22 - Igen -
3 Neptun 24764 60190.91 1846 Igen John Couch Adams
4 Higany 2439 115.88 1631 Nem Miklós Kopernikusz
5 Vénusz 6051 243.56 1610 Nem Galileo Galilei

Példa. A ROUND funkcióval kerekítse egy tizedesjegyre a SunSeason oszlopot:

KORDULÓ KIVÁLASZTÁSA (Napszezon, 1) Bolygókról;

UCASE()

UCASE()- egy függvény, amely egy oszlop vagy oszlopok értékeit adja vissza nagybetűkkel. Az MS SQL Server DBMS-ben az UCASE() analógja az UPPER függvény, ugyanazzal a szintaxissal:

UCASE(oszlop_neve)

Nézzünk egy példát. Vegyük a bolygók táblázatunkat. Példa. Nyomtassa ki a gyűrűvel nem rendelkező bolygók nevét nagybetűvel a UCASE funkció segítségével:

SELECT UCASE(PlanetName) FROM Planets WHERE HavingRings = "Nem";

LCASE()

LCASE()- egy függvény, amely egy oszlop vagy oszlopok értékeit adja vissza kisbetűkkel. Az MS SQL Server DBMS-ben az SQL LCASE() operátor analógja a LOWER függvény, ugyanazzal a szintaxissal:

LCASE(oszlop_neve);

Nézzünk egy példát. Vegyük a bolygók táblázatunkat. Példa. Az LCASE funkció használatával nyomtassa ki kisbetűkkel a gyűrűs bolygók nevét:

SELECT LCASE(PlanetName) FROM Planets WHERE HavingRings = "Igen";

LEN()

LEN()- egy függvény, amely a rekord mezőben lévő érték hosszát adja vissza. A függvény kizárja a számlálásból a záró szóközöket. Szintaxis:

LEN(oszlop_neve);

Nézzünk egy példát. Vegyük a bolygók táblázatunkat. Példa. Nyomtassa ki a bolygó felfedezőjét (Opener) és az általa felfedezett bolygó nevének hosszát a LEN függvény segítségével:

SELECT Opener, LEN(PlanetName) FROM Bolygók;

KÖZÉPSŐ()

KÖZÉPSŐ()- egy függvény, amely meghatározott számú karaktert jelenít meg a táblázat szövegmezőjében. Függvény szintaxis:

MID(oszlop_neve,kezdet [,hossz]);

Paraméter Rajt megadja a kezdő karakter pozícióját. Paraméter hossz beállítja a kiírandó karakterek számát a start paraméterben megadott pozíciótól kezdve.

Nézzünk egy példát. Vegyük a régi egyetemi táblázatunkat. Példa. Nyomtassa ki a város nevének (Location) első 3 karakterét a MID funkcióval:

SELECT MID(Hely, 1, 3) FROM egyetemek;

MOST()

MOST()- egy függvény, amely visszaadja a rendszeridőt és a dátumot. Függvény szintaxis:

Nézzünk egy példát. Vegyük a régi egyetemi táblázatunkat. Példa. Nézze meg, hány hallgató tanul jelenleg az egyes egyetemeken. a MOST funkció használatával:

SELECT UniversityName, Students, NOW() AS CurDate FROM Universities;

Az anyag megszilárdításához saját maga hajtson végre egy példát az egyes funkciókra. Ha bármilyen kérdése van, írja meg a megjegyzésekben, és biztosan válaszolok rájuk.

Az SQL-lekérdezések megtanulásának ezen szakaszának lépései annak bemutatására szolgálnak, hogy az SQL nemcsak összetett kijelöléseket és adatokat tud rendezni, hanem matematikai függvények eredményeit is kiszámítja, szövegtranszformációt hajt végre, rekordokat csoportosít stb. Pontosabban nem az SQL képes mindezt megtenni, hanem azok, amelyek támogatják. Az SQL a szabványaival csak ugyanezen DBMS-ek követelményeit fogalmazza meg.

15. lépés: SUM, AVG, MIN, MAX, COUNT… függvények

Ez a lépés megmutatja, hogyan kell egyszerű függvényeket használni az SQL-ben, például összeget, minimális és maximális értékeket, átlagot stb. Kezdjük mindjárt egy példával az összes alkalmazott átlagos szolgálati idejének levezetésére.

AVG(D_STAFF.S_TAPASZTALAT) KIVÁLASZTÁS [AZ ALKALMAZOTTAK ÁTLAGOS TAPASZTALATA] A D_STAFF-TÓL

SQL függvény AVG.

Hasonlóképpen kiszámíthatja a minimális és maximális értékeket (MIN, MAX), a teljes összeget (SUM) stb. Azt tanácsolom, hogy próbálja ki ezt az edzésprogram segítségével. Érdemes megpróbálni további kritériumokat meghatározni a függvény végső értékének meghatározásában részt vevő rekordok kiválasztásához a WHERE záradék használatával.

A fent felsorolt ​​függvények a teljes lekérdezés eredményét használják fel értékük meghatározásához. Az ilyen függvényeket ún összesített . Ezenkívül számos olyan függvény létezik, amelyek argumentumai nem a kérésben meghatározott oszlop összes értéke, hanem az eredmény minden egyes sorának minden egyes értéke. Ilyen függvény például a LEN szövegmező hosszának kiszámítására szolgáló SQL függvény:

KIVÁLASZTJA S_NAME, LEN(D_STAFF.S_NAME) AS [LENGTH] FROM D_STAFF


Használható SQL függvények szuperpozíciója az alábbiak szerint, és számítsa ki az S_NAME mező maximális hosszértékét.

MAX(LEN(D_STAFF.S_NAME)) MINT [MAXIMUM LENGTH] KIVÁLASZTÁS D_STAFF-BÓL


SQL függvény MAX.

Nos, összefoglalva, mindent együtt.

SELECT SUM(D_STAFF.S_PERIENCE) AS [SUM], AVG(D_STAFF.S_PERIENCE) AS [AVERAGE], MIN(D_STAFF.S_PERIENCE) AS [MINIMUM], MAX(D_STAFF.S_PERIENCE) AS [MAXIMUM], COUNT(*) AS [RECORDOK SZÁMA], MAX(LEN(D_STAFF.S_NAME)) AS [MAXIMUM LENGTH] FROM D_STAFF


Példa az összesített SQL-függvények használatára.

Figyelje meg a COUNT függvény argumentumát. Azért adtam meg (*) argumentumként, mert szeretném megkapni a rekordok teljes számát. Ha például megadja a COUNT(S_NAME) értéket, az eredmény a nem üres S_NAME értékek száma lesz (S_NAME NEM NULL). Lehetséges lenne COUNT(DISTINCT S_NAME) írása és az egyedi S_NAME értékek számának lekérése, de az MS Access sajnos nem támogatja ezt a lehetőséget. Példánkban a COUNT(S_NAME) és COUNT(*) pontosan ugyanazt az eredményt adja.

16. lépés: Szöveg konvertálása

A szöveges értékeket gyakran másképp töltik ki a szoftverfelhasználók: ki írja a teljes nevet. nagybetűvel, ki nem; Vannak, akik mindent nagybetűvel írnak. Sok jelentési űrlap egységes megközelítést igényel, és nem csak a jelentési űrlapok. A probléma megoldására az SQL-nek két funkciója van: UCASE és LCASE. Az alábbiakban látható egy példa egy kérésre és annak feldolgozásának eredményére:

UCASE(D_STAFF.S_NAME) AS , LCASE(D_STAFF.S_NAME) AS KIVÁLASZTÁSA D_STAFF-BÓL


UCASE és LCASE SQL függvények.

17. lépés: SQL és a karakterláncokkal való munka

Van egy csodálatos MID funkció is, amely segít megoldani azt a problémát, hogy egy karakterlánc egy részét a szövegmező teljes értékéből vonja ki. A legjobb megjegyzés itt is egy példa lenne - egy példa a felhasználói profilok nevének „zaklatására”.

SELECT UCASE(MID(P_NAME,3,5)) FROM D_PROFILE


Az UCASE és MID SQL függvények szuperpozíciója.

A profilnév értékekből „kivágtunk” 5-5 karaktert, a 3.-tól kezdve, és egy csomó ismétlődő „szemét” lett a vége. Annak érdekében, hogy csak egyedi értékeket hagyjunk, a DISTINCT kulcsszót használjuk.

SELECT DISTINCT UCASE(MID(P_NAME,3,5)) A D_PROFILBÓL


Egyedi összesített függvényértékek kiválasztása.

Néha a LEN függvényt tartalmazó kifejezéseket kell használnia a MID függvény argumentumaiként. A következő példában már az utolsó 5 karaktert megjelenítjük a profilnevekben.

UCASE(MID(P_NAME,LEN(P_NAME)-4,5)) KIVÁLASZTÁSA D_PROFILBÓL


A LEN SQL függvény használata.

18. lépés: SQL függvények használata a rekordkiválasztási feltételekben. HAVING operátor

A funkciók megértése után szinte azonnal felmerül a kérdés: hogyan használhatók fel a rekordok kiválasztásának kritériumaiban? Néhány funkció, nevezetesen azok, amelyek nem összesített függvények, meglehetősen könnyen használhatók. Itt van például azoknak az alkalmazottaknak a listája, akiknek teljes neve. több mint 25 karakter.

SELECT S_NAME FROM D_STAFF WHERE LEN(D_STAFF.S_NAME) > 25


A nem összesítő LEN függvény használata SQL lekérdezési feltételekben.

Nos, ha például meg kell jelenítenie az összes olyan pozíció azonosítóját, amelyet egynél több alkalmazott tölt be a vállalatnál, akkor ez a megközelítés nem fog működni. Úgy értem, hogy a következő lekérdezésnek talán nincs értelme, de strukturált lekérdezés szempontjából helytelen. Ez annak a ténynek köszönhető, hogy az ilyen SQL-lekérdezések összesített függvényekkel történő helyes feldolgozásához nem lesz elegendő egy lineáris áthaladás az alkalmazotti rekordokon.

SELECT S_POSITION FROM D_STAFF WHERE COUNT(S_POSITION)>1

Ilyen esetekre került be az SQL-be ​​a HAVING kulcsszó, ami segít a pozíciókkal és alkalmazottakkal kapcsolatos probléma megoldásában.

S_POSITION KIVÁLASZTÁSA D_STAFF CSOPORTBÓL S_POSITION SZERINT, HA COUNT(S_POSITION)>1


Összesítő függvények használata SQL lekérdezési feltételekben.

19. lépés: Adatok csoportosítása az SQL lekérdezés eredményeiben a GROUP BY operátor használatával

A GROUP BY operátor szükséges az összesített függvények értékeinek csoportosításához a hozzájuk tartozó mezők értékei alapján. Akkor van rá szükség, ha az összesített függvényértéket szeretnénk használni a rekordkiválasztási feltételekben (előző lépés). Akkor is szükség van rá, ha egy összesítő függvény értékét szeretnénk belefoglalni a lekérdezés eredményébe. De a legegyszerűbb formájában a csoportosítás egyenértékű egy oszlop egyedi értékeinek kiemelésével. Nézzünk egy példakérést.

S_POSITION KIVÁLASZTÁSA D_STAFFBÓL


Ez a két lehetőség pedig csak egyedi S_POSITION értékek megjelenítését teszi lehetővé.

KIVÁLASZTÁS S_POSITION A D_STAFF CSOPORTBÓL S_POSITION SZERINT

KIVÁLASZTÁSA D_STAFF-TÓL KÜLÖNBÖZŐ S_POSITION


Nos, most térjünk vissza a függvényértékek csoportosításához a hozzájuk tartozó mezők értékei alapján. Minden felhasználói profilnál megjelenítjük a hozzá tartozó rekordok számát a D_STAFF_PROFILE táblában.

SELECT PROFILE_ID AS , COUNT(PROFILE_ID) AS [RECORDOK SZÁMA] FROM D_STAFF_PROFILE GROUP BY PROFILE_ID


SQL összesítő függvény használata csoportosítással együtt.

A GROUP BY operátor azt is lehetővé teszi, hogy a lekérdezés eredményét egynél több mező szerint csoportosítsa, vesszővel elválasztva. Remélem, hogy a fentiek után az utolsó lekérdezés eredményéhez nincs szükség további megjegyzésekre.

SELECT S.S_POSITION AS , S.S_NAME AS [MUNKATÁRS], COUNT(SP.STAFF_ID) MINT [REkordok SZÁMA A D_STAFF_PROFILE TÁBLÁZATBAN] FROM D_STAFF S, D_STAFF_PROFILE SP WHERE S.XD_IID=SP.STAFF_ID CSOPORTBY POSITION, S.S. S_NAME


SQL lekérdezés eredménysorainak csoportosítása több mező szerint.

Alapvető SQL-parancsok, amelyeket minden programozónak tudnia kell

Az SQL vagy Structured Query Language egy nyelv, amelyet a relációs adatbázisrendszerben (RDBMS) lévő adatok kezelésére használnak. Ez a cikk az általánosan használt SQL-parancsokkal foglalkozik, amelyeket minden programozónak ismernie kell. Ez az anyag ideális azok számára, akik állásinterjú előtt szeretnék felfrissíteni SQL-ismereteiket. Ehhez nézze meg a cikkben szereplő példákat, és ne feledje, hogy párban tanulmányozta az adatbázisokat.

Vegye figyelembe, hogy egyes adatbázisrendszerek pontosvesszőt igényelnek minden utasítás végén. A pontosvessző a szabványos mutató az SQL-ben minden utasítás végére. A példák MySQL-t használnak, ezért pontosvessző szükséges.

Adatbázis felállítása a példákhoz

Hozzon létre egy adatbázist a csapatok működésének bemutatására. A munkához két fájlt kell letöltenie: DLL.sql és InsertStatements.sql. Ezután nyisson meg egy terminált, és jelentkezzen be a MySQL konzolba a következő paranccsal (a cikk feltételezi, hogy a MySQL már telepítve van a rendszeren):

Mysql -u root -p

Ezután adja meg jelszavát.

Futtassa a következő parancsot. Nevezzük az adatbázist egyetemnek:

ADATBÁZIS LÉTREHOZÁSA egyetem; USE egyetem; FORRÁS ; FORRÁS

Parancsok az adatbázisokkal való munkavégzéshez

1. Az elérhető adatbázisok megtekintése

ADATBÁZISOK MUTATÁSA;

2. Hozzon létre egy új adatbázist

ADATBÁZIS LÉTREHOZÁSA;

3. A használni kívánt adatbázis kiválasztása

HASZNÁLAT ;

4. Importáljon SQL parancsokat .sql fájlból

FORRÁS ;

5. Törölje az adatbázist

DROP ADATBÁZIS ;

Asztalokkal való munka

6. Tekintse meg az adatbázisban elérhető táblákat

ASZTALOK MUTATÁSA;

7. Hozzon létre egy új táblázatot

TÁBLÁZAT LÉTREHOZÁSA ( , , ELSŐDLEGES KULCS ( ), IDEGEN KULCS ( ) IRODALOM ());

Integritási korlátozások a CREATE TABLE használatakor

Előfordulhat, hogy korlátozásokat kell létrehoznia a táblázat egyes oszlopaiban. Táblázat létrehozásakor a következő korlátozásokat állíthatja be:

  • egy táblázatcellának nem lehet NULL értéke;
  • elsődleges kulcs - PRIMARY KEY (oszlopnév1, oszlopnév2, ...) ;
  • idegen kulcs - IDEGEN KULCS (col_namexn, …, col_namexn) HIVATKOZÁSOK táblázat_neve(col_namex1, …, col_namexn) .

Egynél több elsődleges kulcsot is megadhat. Ebben az esetben egy összetett elsődleges kulcsot kap.

Példa

Hozzon létre egy "oktató" táblázatot:

TÁBLÁZAT LÉTREHOZÁSA oktató (ID CHAR(5), név VARCHAR(20) NOT NULL, részleg_neve VARCHAR(20), fizetés SZÁMSZÁM(8,2), ELSŐDLEGES KULCS (ID), IDEGEN KULCS (részleg_neve) REFERENCIÁK osztály(osztálynév));

8. Táblázat információk

A következő paranccsal különféle információkat (értéktípust, kulcsot vagy nem) tekinthet meg a táblázat oszlopairól:

LEÍRÁS ;

9. Adatok hozzáadása a táblázathoz

INSERT INTO (, , , ...) ÉRTÉKEK ( , , , …);

Amikor egy táblázat minden oszlopához adatot ad hozzá, nem kell oszlopneveket megadnia.

INSERT INTO ÉRTÉKEK ( , , , …);

10. Táblázat adatok frissítése

FRISSÍTÉS KÉSZLET = , = , ... AHOL ;

11. Minden adat eltávolítása a táblából

TÖRLÉS FOL ;

12. Táblázat törlése

DROP TABLE ;

Parancsok a lekérdezések létrehozásához

13. KIVÁLASZTÁS

A SELECT egy adott tábla adatainak lekérésére szolgál:

KIVÁLASZTÁS , , … TÓL TŐL ;

A következő parancs képes megjeleníteni a táblázat összes adatát:

VÁLASSZON ;

14. SELECT DISTINCT

A táblázat oszlopai ismétlődő adatokat tartalmazhatnak. A SELECT DISTINCT használatával csak nem ismétlődő adatokat kérhet le.

SELECT DISTINCT , , … TÓL TŐL ;

15. HOL

Használhatja a WHERE kulcsszót a SELECT-ben a feltételek megadásához a lekérdezésben:

KIVÁLASZTÁS , , … TÓL TŐL AHOL ;

A kérelemben a következő feltételek adhatók meg:

  • szövegösszehasonlítás;
  • számértékek összehasonlítása;
  • logikai operátorok ÉS (és), VAGY (vagy) és NOT (negáció).

Példa

Próbálja ki a következő parancsokat. Ügyeljen a WHERE részben megadott feltételekre:

SELECT * FROM tanfolyam WHERE dept_name=’Comp. Sci.”; SELECT * FROM kurzus WHERE kredit>3; SELECT * FROM course WHERE dept_name="Comp. Sci." ÉS kredit>3;

16. GROUP BY

A GROUP BY operátort gyakran használják olyan összesítő függvényekkel, mint a COUNT, MAX, MIN, SUM és AVG a kimeneti értékek csoportosítására.

KIVÁLASZTÁS , , … TÓL TŐL CSOPORTOSÍT ;

Példa

Jelentsük meg az egyes karok képzéseinek számát:

SELECT COUNT(kurzusazonosító), részleg_neve FROM kurzus GROUP BY részleg_neve;

17. HAVE

A HAVING kulcsszót hozzáadtuk az SQL-hez, mert a WHERE nem használható összesítő függvényekkel.

KIVÁLASZTÁS , , ... TÓL TŐL CSOPORTOSÍT HAJNÁL

Példa

Mutassuk meg azoknak a karoknak a listáját, amelyek egynél több kurzussal rendelkeznek:

SELECT COUNT(kurzusazonosító), részlegnév FROM kurzus GROUP BY részleg_neve HAVING COUNT(kurzusazonosító)>1;

18. MEGRENDELÉS

Az ORDER BY a lekérdezési eredmények csökkenő vagy növekvő sorrendbe rendezésére szolgál. A ORDER BY növekvő sorrendbe rendeződik, hacsak nincs megadva ASC vagy DESC.

KIVÁLASZTÁS , , … TÓL TŐL RENDEZÉS , , …ASC|DESC;

Példa

Mutassuk meg a kurzusok listáját a kreditek növekvő és csökkenő sorrendjében:

SELECT * FROM kurzusból ORDER BY kreditek; SELECT * FROM tanfolyam ORDER BY kreditek DESC;

19. KÖZÖTT

A BETWEEN az adatértékek kiválasztására szolgál egy adott tartományból. Számszerű és szöveges értékek, valamint dátumok használhatók.

KIVÁLASZTÁS , , … TÓL TŐL AHOL KÖZÖTT ÉS ;

Példa

Mutassuk meg azoknak az oktatóknak a listáját, akiknek fizetése meghaladja az 50 000-et, de kevesebb, mint 100 000:

SELECT * FROM oktatótól WHERE fizetés 50000 ÉS 100000 KÖZÖTT;

20. LIKE

A LIKE operátor a WHERE mezőben egy hasonló érték keresési mintájának megadására szolgál.

Két ingyenes operátort használ a LIKE:

  • % (nincs, egy vagy több karakter);
  • _ (egy karakter).
KIVÁLASZTÁS , , … TÓL TŐL AHOL MINT ;

Példa

Mutassuk meg azoknak a kurzusoknak a listáját, amelyeknek a neve tartalmazza a „to”-t, valamint azon kurzusok listáját, amelyek neve „CS-”-vel kezdődik:

SELECT * FROM kurzus WHERE cím LIKE ‘%to%’; SELECT * FROM tanfolyam WHERE kurzusazonosító LIKE "CS-___";

21. IN

Az IN használatával több értéket is megadhat a WHERE záradékhoz:

KIVÁLASZTÁS , , … TÓL TŐL AHOL BAN BEN ( , , …);

Példa

Mutassuk meg a Comp szakok hallgatóinak listáját. Sci., Physics and Elec. angol:

SELECT * FROM diák WHERE tanszéknév IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. CSATLAKOZÁS

A JOIN két vagy több tábla összekapcsolására szolgál közös attribútumok használatával. Az alábbi képen az SQL-be ​​való csatlakozás különböző módjai láthatók. Jegyezze meg a különbséget a bal oldali külső csatlakozás és a jobb oldali külső csatlakozás között:

KIVÁLASZTÁS , , … TÓL TŐL CSATLAKOZIK TOVÁBB = ;

1. példa

Megjelenítjük az összes kurzus listáját és a karokkal kapcsolatos releváns információkat:

SELECT * FROM tanfolyam JOIN osztály ON tanfolyam.részleg_neve=részleg.részleg_neve;

2. példa

Megjelenítjük az összes szükséges kurzus listáját és a velük kapcsolatos részleteket:

SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTTER JOIN course ON prereq.course_id=course.course_id;

3. példa

Megjelenítjük az összes kurzus listáját, függetlenül attól, hogy kötelezőek-e vagy sem:

SELECT kurzus.kurzusazonosító, cím, részleg_neve, kreditek, prereq_id FROM prereq RIGHT OUTTER JOIN kurzus ON prereq.course_id=course.course_id;

23. Megtekintés

A View egy virtuális SQL-tábla, amely egy kifejezés végrehajtása eredményeként jön létre. Sorokat és oszlopokat tartalmaz, és nagyon hasonlít egy normál SQL-táblához. A View mindig az adatbázis legfrissebb információit mutatja.

Teremtés

NÉZET LÉTREHOZÁSA AS SELECT , , … TÓL TŐL AHOL ;

Eltávolítás

DROP NÉZET ;

Példa

Hozzunk létre egy nézetet, amely 3 kredites kurzusokból áll:

24. Aggregált függvények

Ezek a függvények a kérdéses adatokhoz kapcsolódó összesített eredmény elérésére szolgálnak. A következő gyakran használt összesítő függvények:

  • COUNT (oszlopnév) - a sorok számát adja vissza;
  • SUM (oszlopnév) - az ebben az oszlopban lévő értékek összegét adja vissza;
  • AVG (oszlopnév) - egy adott oszlop átlagos értékét adja vissza;
  • MIN (oszlopnév) - egy adott oszlop legkisebb értékét adja vissza;
  • MAX (oszlopnév) – Egy adott oszlop legnagyobb értékét adja vissza.

25. Beágyazott segédlekérdezések

A beágyazott allekérdezések olyan SQL-lekérdezések, amelyek egy másik lekérdezésbe ágyazott SELECT , FROM és WHERE záradékot tartalmaznak.

Példa

Nézzük meg azokat a kurzusokat, amelyeket 2009 őszén és 2010 tavaszán tartottak:

SELECT DISTINCT kurzusazonosító FROM szekció WHERE félév = 'Ősz' AND év= 2009 AND kurzusazonosító IN (SELECT kurzusazonosító FROM szekció WHERE félév = 'tavasz' ÉS év= 2010);