Gyakorlati alapok III.
SQL (adatbázis)
SQL - numerikus függvények
Folytatjuk az előző fejezetekben bemutatott SQL-függvények felhasználását egyre bonyolultabb lekérdezések és/vagy több tábla összevonása formájában. Néhány új SQL-függvény is fel fog merülni, ezek az előfordulásuk előtti bekezdésben kerülnek ismertetésre. Továbbra is kiindulópontunk az auto adatbázis, amely egy teljes, átfogó adatszerkezet egy autókereskedés és szervíz komplex, adatbázisos modellezésére.
Az auto adatbázis a következő további komponenesekből áll, ezen komponenseket táblák és a bennük definiált attribútumok (oszlopok) reprezentálják:
-
auto_csop tábla
-
auto_csop_nev
-
km_dij
-
napi_dij
-
-
tipusok tábla
-
tipus_nev
-
auto_csop_nev
-
leiras
-
szerviz_km
-
-
autok tábla
-
rendszam
-
tipus_nev
-
auto_csop_nev
-
vasarlas_datuma
-
ar
-
futott_km
-
ut_szerviz
-
allapot
-
reszleg_kod
-
alk_kod
-
-
rendeles tábla
-
ugyfel_szam
-
rendeles_datum
-
rendelo_szemely
-
kolcson_kezdete
-
napok
-
rendszam
-
tipus_nev
-
km_kezdet
-
km_veg
-
kolcson_dij
-
fizetes
-
-
ugyfelek tábla
-
ugyfel_szam
-
ugyfel_nev
-
cim
-
varos
-
orszag
-
iranyito_szam
-
megbizott
-
fizetesi_mod
-
-
reszleg tábla
-
reszleg_kod
-
reszleg_nev
-
reszleg_cim
-
-
alkalmazott tábla
-
alk_kod
-
alk_nev
-
beosztas
-
belepes
-
fizetes
-
premium
-
reszleg_kod
-
Erősen ajánlom, hogy az alábbi, néha rendkívül bonyolult SQL-lekérdezések előtt nagyon alaposan tanulmányozzuk át az auto adatbázis összes tábláját és rekordjait. Az eredményes SQL-lekérdezésekhez meg kell értenünk az autókereskedés összes modellezett munkakörülményét!
Függvény-előzmények:
-
Alapfüggvények és egyéb nyelvi elemek - CREATE, DROP, DELETE, INSERT, UPDATE, SELECT, COUNT, AVG, SUM, MAX, MIN, BETWEEN, IN, NOT IN, LIKE, NOT LIKE, ORDER BY (ASC, DESC), IS NULL, IS NOT NULL, operátorok, helyettesítő karakterek, egyéb szintaktikai elemek
-
karakteres függvények LOWER, UPPER, LENGTH, SUBSTR, RPAD, LPAD, RTRIM, LTRIM
További függvények:
Kiszámítja a paraméterként megadott szám abszolút (pozitív) értékét. Például:
SELECT ABS(-123.4)
Végeredmény:
123.4
Kerekíti a paraméterként megadott számot. Például egész számra:
SELECT ROUND(123.456)
Végeredmény:
123
Második paraméterként megadható a kerekítés mértéke is. Például kerekítsük a fenti szám tizedeseit 1 jegyre:
SELECT ROUND(123.456, 1)
Végeredmény:
123.5
Csonkolja a paraméterként megadott számot. A csonkolás mértéke megadható a 2. paraméterrel. Például csonkoljuk a számot 1 tizedesjegynyire:
SELECT TRUNCATE(123.4567, 1)
Végeredmény:
123.4
Kiszámolja a paraméterként megadott szám négyzetgyökét. Például √9 = 3:
SELECT SQRT(9)
Végeredmény:
3
Kiszámolja a paraméterként megadott szám hatványait. Az alap az 1., a kitevő a 2. paraméter. Például 92 = 81:
SELECT POW(9, 2)
Végeredmény:
81
Kiszámolja a paraméterként megadott szám hatványait. Az alap az 1., a kitevő a 2. paraméter. Például 92 = 81:
SELECT POWER(9, 2)
Végeredmény:
81
Visszaadja a megadott számhoz felülről legközelebb eső egész számot. Például:
SELECT CEIL(123.45)
Végeredmény:
124
Visszaadja a megadott számhoz felülről legközelebb eső egész számot. Például:
SELECT CEILING(123.45)
Végeredmény:
124
Visszaadja a megadott számhoz alulról legközelebb eső egész számot. Például:
SELECT FLOOR(123.45)
Végeredmény:
123
Visszaadja az osztás maradékát. Például 22 / 5 = 4, maradt a 2:
SELECT MOD(22, 5)
Végeredmény:
2
Visszaadja a szám előjelét (pozitív /+/ vagy negatív /-/).
-
Ha a szám nagyobb 0-nál, az eredmény 1,
-
ha a szám egyenlő 0-val, az eredmény 0,
-
Ha a szám kisebb 0-nál, az eredmény -1.
Például:
SELECT SIGN(-22)
Végeredmény:
-1
Feladatok
1 - Összegezze azon dolgozók fizetését, akik kaptak prémiumot!
2 - Írjon SELECT parancsot, amely kerekítve kiírja, hogy mennyibe kerül 3 napra 257 km-re egy NORMAL autócsoportba tartozó autó kölcsönzése!
3 - Irassa ki a NORMAL autócsoport összes autójának típusát, kilométeróra állását! A futott kilométerek kiírását a 'KILOMÉTER ÓRA ÁLLÁSA:' szöveg előzze meg és a kiírás 10 ezer kilométerre kerekítve történjen!
4 -
Számolja ki a következő számok abszolút értékeit: 1000, -100, -27.11!
5 - Számolja ki a következő szám négyzetgyökét: 25!
6 -
Számolja ki a 2 ötödik hatványát!
7 -
Kerekítse a következő számot 2 tizedesjegy pontosságra: -123.4567!
8 -
Csonkolja egész számra a következő számot: 123.45!
9 -
Állapítsa meg a következő számok előjelét: 10, 0, -5!
10 -
Kerekítse felfelé egész számra a következő számokat: 6.1, -6.1!
11 -
Kerekítse lefelé egész számra a következő számokat: 6.1, -6.1!
12 -
Állapítsa meg a következő osztás maradékát: 10 / 3!