Gyakorlati alapok III.

SQL (adatbázis)

 

SQL - adatdefiníciós utasítások

 

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:

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

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:

Ebben a fejezetben a már ismert CREATE, ALTER, DROP függvények használatát gyakoroljuk összetettebb lekérdezések formájában.

 

További függvények:

VIEW

A kifejezés voltaképpen egy önállóan létrehozott és elkülönített eredménytáblát jelent, amelybe tetszőleges lekérdezési eredményeket vezethetünk be. A phpMyAdmin-felületen az adatbázison belül az eredeti tábláktól elkülönítetten férhetünk hozzá a nézettáblákhoz (Nézetek):

 

www.informatika-programozas.hu - Java + SQL (adatbázis)

 

Például legyen feladat, hogy az AUTO_CSOP tábla összes adatát egy külön nézettáblába vezessük:

 

CREATE VIEW AUTOCSOP_NEZET AS SELECT auto_csop_nev, napi_dij, km_dij FROM auto_csop

 

Végeredmény egy külön autocsop_nezet nevű nézettábla:

 

www.informatika-programozas.hu - Java + SQL (adatbázis)

 

RENAME

A függvény segítségével névátnevezéseket hajthatunk végre. Például nevezzük át a uj_reszl2 táblát reszleg2 táblára:

 

RENAME TABLE uj_reszl2 TO reszleg2

 

Végeredmény:

a tábla átnevezése

 

INDEX

Általánosságban ez a mechanizmus felgyorsítja az adatok keresését és adatbázisból való kinyerését. A mechanizmus a felhasználók számára láthatatlanul dolgozik. Például lássuk el indexeléssel az AUTO_CSOP tábla auto_csop_nev nevű oszlopát:

 

CREATE INDEX index_nev ON auto_csop (auto_csop_nev)

 

Végeredmény az auto_csop_nev nevű oszlop indexelése, amelyet a Szerkezeti nézetben a név mellett egy kis kulcs szimbolizál:

 

www.informatika-programozas.hu - Java + SQL (adatbázis)

 

Feladatok

 

1 - Hozza létre az alábbi szerkezetű, DOLGOZOK nevű táblát:

2 - Bővítse a DOLGOZOK táblát a CIM oszloppal, melynek típusa VARCHAR(30)! A NEV hosszát módosítsa 40-re!

3 - Hozza létre az UJ_RESZL1 nevű táblát, melynek szerkezete azonos a RESZLEG nevű tábla szerkezetével!

4 - Hozza létre az UJ_RESZL2 nevű táblát, melynek szerkezete és tartalma azonos a RESZLEG nevű tábla szerkezetével és tartalmával!

5 - Nevezze át az UJ_RESZL2 táblát RESZLEG2 névre!

6 - Hozza létre azt a NEZET nevű nézettáblát, amely az ALKALMAZOTT és a RESZLEG táblából csak az ELADÓ beosztású dolgozók kódját, nevét, beosztását, részlegének kódját, nevét és címét tartalmazza!

7 - Hozza létre azt a VIDEK nevű nézettáblát, amely csak a nem budapesti részlegek adatait tartalmazza!

8 - Hozza létre az ATLAG nevű nézettáblát, amely a részlegek kódját és az ott dolgozók átlagfizetését tartalmazza! Készítsen listát a létrehozott nézettábla segítségével, amelyben a dolgozók neve, fizetése, részlegének kódja és a részleg átlagfizetése szerepel!

9 - Az előző feladatban létrehozott ATLAG nevű nézettábla felhasználásával irassa ki a dolgozók nevét, fizetését, részlegének nevét és címét, valamint a részlegben dolgozók átlagfizetését!

10 - Készítse el a RENDELES és AUTOK táblák alapján az UJ_RENDELES nézettáblát, melynek oszlopai az ügyfélszám, az autócsoport, a kölcsönzött autó típusa, a rendelés dátuma, a megrendelő személy neve, a kölcsönzési idő kezdete és időtartama, valamint a fizetés módja legyenek! Listázza ki a tábla tartalmát!

11 - Módosítsa az előző feladatban létrehozott nézettábla szerkezetét úgy, hogy egy oszlop a kölcsönzési idő alatt futott km-ek számát is mutassa!

12 - Hozza létre az UGYFELEK, TIPUSOK, AUTO_CSOP és RENDELES táblák alapján azt az UJ_UGYFEL nevű nézettáblát, amely a következő oszlopokat tartalmazza: az ügyfél száma, neve, a kapcsolatot tartó személy neve, a rendelt autó típusa, rendszáma, rendelési ideje, a kölcsönzés ideje alatt futott km, a kölcsönzési díj km-enként és naponként!

13 - Hozza létre a KOLCSON_SZAM nevű nézettáblát a RENDELES tábla alapján, amely rendszámonként tartalmazza a kölcsönzések számát! Irassa ki a nézettábla tartalmának felhasználásával az AUTOK táblában szereplő autók rendszámát, típusát és a kölcsönzések számát! Az egyszer sem kölcsönzött autóknál a kölcsönzések száma 0 legyen!

14 - Hozza létre azt a táblát, amely a rendszámot, az utolsó szervíz idején mutatott és a jelenlegi km-óra állást, valamint a kötelező szervíz intervallumot tartalmazza! A tábla neve KARBANTART legyen!

15 - A KARBANTART nevű táblában növeljük meg a kilométeróra állását mutató oszlop hosszát 8-ra!

16 - Bővítse a KARBANTART táblát a következő szervíz nevű oszloppal! Hossza legyen 8, típusa numerikus!

17 - Hozzon létre indexet az AUTOK táblára a rendszám alapján!

18 - Hozzon létre indexet a RENDELES táblához az ügyfélszám és az autó típus név szerint!

19 - Törölje az UJ_RESZL1 nevű táblát!