sqlpéldatár-autókölcsönző rendszer

27
AZ AUTÓKÖLCSÖNZŐ RENDSZER BEMUTATÁSA A cég, melynek neve LUXRENT, többségében luxus kategóriájú autókat kölcsönöz, igen magas áron. Mivel tevékenységével a gazdag kül- illetve belföldi réteget célozza meg, a cég teljeskörü, zökkenőmentes ügyintézést szeretne biztosítani ügyfelei számára. A cég életét az adminisztrációs iroda fogja össze, az autókat pedig 4 kölcsönző iroda adja ki és veszi vissza. Minden kölcsönzőnek saját autóparkja van, melyeket ő irányít, de az irodák alkalomadtán kisegíthetik egymást. Valamennyi iroda nagymértékben önálló és a számláit saját gépein tartja nyilván. Az ügyfelek természetesen különböző időkben és különböző irodáktól kölcsönözhetnek, így célszerűen az ügyfelek adatait (a régiekét és az újakét is) az adminisztrációs iroda központi gépén tárolják. Valamennyi. kölcsönző iroda kapcsolatban áll a szerver géppel, így az ügyfelek adatait bármikor lekérdezhetik. A LUXRENT számítógépes rendszere a következő funkciókat valósítja meg: Foglalás Az ügyfelek maguk vagy megbízottjuk útján, személyesen vagy telefonon rendelhetik meg az autókat. A rendszer a kívánt járművet lefoglalja. Az autók visszavétele A kölcsönzés számláját az autók visszavitelekor készíti el a rendszer, amikor a kilométeróra állását leolvassák. Átutalás Az ügyfelek kétféle módon egyenlíthetik ki a számláikat: készpénzfizetéssel, átutalással. A rendszer az átutalással fizető ügyfelek részére számlát készít. Karbantartás A rendszer valamennyi autóról nyilvántartja azt, hogy milyen időközönként kell kötelezően felülvizsgáln i a szervizben.

Upload: takacs-istvan

Post on 27-Jun-2015

164 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: sqlpéldatár-autókölcsönző rendszer

AZ AUTÓKÖLCSÖNZŐ RENDSZER BEMUTATÁSA

A cég, melynek neve LUXRENT, többségében luxus kategóriájú autókat kölcsönöz, igen magas áron. Mivel tevékenységével a gazdag kül- illetve belföldi réteget célozza meg, a cég teljeskörü, zökkenőmentes ügyintézést szeretne biztosítani ügyfelei számára.

A cég életét az adminisztrációs iroda fogja össze, az autókat pedig 4 kölcsönző iroda adja ki és veszi vissza. Minden kölcsönzőnek saját autóparkja van, melyeket ő irányít, de az irodák alkalomadtán kisegíthetik egymást. Valamennyi iroda nagymértékben önálló és a számláit saját gépein tartja nyilván. Az ügyfelek természetesen különböző időkben és különböző irodáktól kölcsönözhetnek, így célszerűen az ügyfelek adatait (a régiekét és az újakét is) az adminisztrációs iroda központi gépén tárolják. Valamennyi. kölcsönző iroda kapcsolatban áll a szerver géppel, így az ügyfelek adatait bármikor lekérdezhetik.

A LUXRENT számítógépes rendszere a következő funkciókat valósítja meg:

Foglalás

Az ügyfelek maguk vagy megbízottjuk útján, személyesen vagy telefonon rendelhetik meg az autókat. A rendszer a kívánt járművet lefoglalja.

Az autók visszavétele

A kölcsönzés számláját az autók visszavitelekor készíti el a rendszer, amikor a kilométeróra állását leolvassák.

Átutalás

Az ügyfelek kétféle módon egyenlíthetik ki a számláikat:

készpénzfizetéssel, átutalással.

A rendszer az átutalással fizető ügyfelek részére számlát készít.

Karbantartás

A rendszer valamennyi autóról nyilvántartja azt, hogy milyen időközönként kell kötelezően felülvizsgálni a szervizben.

Page 2: sqlpéldatár-autókölcsönző rendszer

Személyi adatok nyilvántartása

A rendszer a kölcsönző és adminisztratív irodák alkalmazottairól adatokat tárol, havonta a bérszámfejtést is elvégzi, kérésre különböző statisztikákat készít.

A cég adatbázisának példaként vett részlete a kölcsönözhető autókról, a kölcsönző ügyfelekről és megrendeléseikről valamint az alkalmazottakról és munkahelyeikről tartalmaz információt.

A nyilvántartási táblák

Autók

Az autókat autócsoportokba osztották teljesítményük illetve felszereltségük szerint. A csoporton belül az autók kölcsönzési ára megegyezik, melyet az AUTO_CSOPORT tábla tartalmaz, a csoport nevével és a kölcsönzés napi illetve kilométer díjával együtt. Az egyes autók típusának jellemzőit a TIPUSOK tábla írja le, meghatározva ezzel azt is, hogy az adott típusú autókat milyen gyakran kell szervizelni. Az egyes autók részletes leírását az AUTOK tábla tartalmazza.

AUTOK

RENDSZAM Az autó rendszáma

TIPUS_NEV Az autó típusa

AUTO_CSOP_NEV Az autócsoport neve

VASARLAS_DATUMA A vásárlás ideje

AR Az autó ára a vásárláskor

FUTOTT_KM A kilométeróra állása

UT_SZERVIZ Hány km-nél volt utoljára szervizben

Page 3: sqlpéldatár-autókölcsönző rendszer

ALLAPOT Az autó jellemzője:

'A' - az autó kiadható

'F' - az autó foglalt

'S' - az autó szervizben van

'X' - az autó karbantartásra vár

RESZLEG_KOD Melyik részleghez tartozik az autó

ALK_KOD Melyik eladó adta ki az autót

AUTO_CSOP

AUTO_CSOP_NEV Az autócsoport neve

KM_DIJ Kilométerenkénti kölcsönzési díj

NAPI_DIJ Napi kölcsönzési díj

TIPUSOK

TIPUS_NEV Típusnév

AUTO_CSOP_NEV Az autócsoport neve

LEIRAS Jellemzők rövid leírása

SZERVIZ_KM Hány kilométerenként kell szervizelni

Ügyfelek és rendelések

A cég valamennyi ügyfelét egy egyszerű szerkezetű tábla, az UGYFELEK írja le, mely az ügyfél azonosítóját, nevét, címét, a fizetési módot stb.

tartalmazza. A rendeléseket a RENDELES táblába rögzítik. A kilométeróra kezdőállását az autó elvitelekor rögzítik. A kölcsönzési idő

lejártakor, amikor az autót visszaviszik a telephelyre, leolvassák a kilométeróra állását és ez alapján készül el a számla.

Page 4: sqlpéldatár-autókölcsönző rendszer

UGYFELEK

UGYFEL_SZAM Az ügyfél azonosító száma,

UGYFEL_NEV Az ügyfél neve

CIM Utca, házszám

VAROS Város

ORSZAG Ország

IRANYITO_SZAM Irányítószám

MEGBIZOTT A kapcsolatot tartó személy neve

FIZETESI_MOD Az ügyfél fizetési módja:

'A' - átutalás

'K' - készpénz

RENDELES

RENDELES_SZAM A rendelés sorszáma

UGYFEL_SZAM A rendelő ügyfél száma

RENDELES_DATUM A rendelés dátuma

RENDELO_SZEMELY A megrendelő személy /pl: titkárnő /

KOLCSON_KEZDETE A kölcsönzési idő kezdete

NAPOK Kölcsönzési időtartam napokban

RENDSZAM A kölcsönzött autó rendszáma

TIPUS_NEV A kölcsönzött autó típusa

KM_KEZDET Óra állás a kölcsönzés kezdetén

Page 5: sqlpéldatár-autókölcsönző rendszer

KM_VEG Óra állás a kölcsönzés végén

KOLCSON_DIJ Kölcsönzési díj (a végén számolják ki)

FIZETES 'Y' fizetve

'N' nincs kifizetve

Alkalmazottak

A cég alkalmazottainak adatait, azonosító, név, beosztás, fizetés, részlegkód stb. az ALKALMAZOTT tábla tartalmazza. Ehhez kapcsolódik az

egyes kölcsönző helyeket illetve az adminisztrációs központot leíró RESZLEG tábla, amely az adott munkahely kódját, nevét, címét tárolja.

RESZLEG

RESZLEG_KOD Részleg kód

RESZLEG_NEV Részleg név

RESZLEG_CIM Részleg cím

ALKALMAZOTT

ALK_KOD Alkalmazott kód

ALK_NEV Név

BEOSZTAS Beosztás

BELEPES Az alkalmazási viszony kezdete

FIZETES Az alkalmazott bruttó keresete

PREMIUM Az éves prémium összege

RESZLEG_KOD Az alkalmazott részlegének kódja

Page 6: sqlpéldatár-autókölcsönző rendszer

5. Irassa ki az egyes autók típusát, a vásárlás idejét és a beszerzési

árat!

6. Irassa ki SELECT utasítással az AUTOK táblából az összes autó

rendszámát, típusát és árát! A kiírás az ár szerinti csökkenő

sorrendben történjen!

7. Irassa ki az AUTOK táblából az autók rendszámát és árát!

8. Irassa ki az 1350000 Ft-nál drágábban vásárolt autók típusát és

árát!

9. Irassa ki az 1350000 Ft-nál drágábban vásárolt autók típusát, árát

és autócsoport nevét a csoport szerint növekvő, az ár szerint

csökkenő sorrendben!

10. Irassa ki az összes olyan autó rendszámát és típusát, amelyek

nem az EXTRA autócsoporthoz tartoznak!

11. Irassa ki azon autók adatait az AUTOK táblából, amelyek 9000

km nél többet futottak és áruk 1000000 Ft alatt van!

12. Irassa ki az összes kifizetett rendelésre vonatkozó adatot!

13. Irassa ki az 1994. március 1. előtti megrendelésekben szereplő

adatokat!

14. Irassa ki az 1994. március 1. után esedékes, nem kifizetett

megrendelés adatokat!

15. Irassa ki az összes olyan autó rendszámát, típusát és a futott

5. SELECT tipus_nev,vasarlas_datuma,ar FROM autok;

6. SELECT rendszam,tipus_nev,ar FROM autok ORDER BY ar DESC;

7. SELECT rendszam,ar FROM autok;

8. SELECT DISTINCT tipus_nev,ar FROM autok WHERE ar>1350000;

9. SELECT tipus_nev,ar,auto_csop_nev FROM autok WHERE ar>1350000

ORDER BY auto_csop_nev,ar DESC;

10. SELECT rendszam,tipus_nev FROM autok WHERE auto_csop_nev

<>'EXTRA';

11. SELECT * FROM autok WHERE futott_km>9000 AND ar<1000000;

12. SELECT * FROM rendeles WHERE fizetes='Y';

13. SELECT * FROM rendeles WHERE rendeles_datum<to_date('01-03-

1994','DD-MM-YYYY');

14. SELECT * FROM rendeles WHERE kolcson_kezdete>to_date('01-03-

1994','DD-MM-YYYY') AND fizetes='N';

15. SELECT rendszam,tipus_nev,futott_km FROM autok WHERE

reszleg_kod='20';

Page 7: sqlpéldatár-autókölcsönző rendszer

kilométert, amelyek a 20-as részleghez tartoznak!

16. Irassa ki az összes olyan autó adatait, amelyet 1994. január 1.

előtt vásároltak!

17, Irassa ki az ALKALMAZOTT táblából a munkatársak nevét,

beosztását és fizetését, fizetés szerint csökkenő (növekvő)

sorrendben!

18. Irassa ki az ALKALMAZOTT tábla tartalmát beosztás szerint

növekvő, ezen belül fizetés szerint csökkenő sorrendben!

19. Irassa ki az ALKALMAZOTT táblából az összes különböző

beosztás nevét!

20. Irassa ki az'ELADÓ' és'SZERELŐ' foglalkozású dolgozókat

fizetés szerint csökkenő sorrendben!

21. Irassa ki az ALKALMAZOTT táblából azokat, akiknek a

fizetése nagyobb 50000-nél vagy a beosztásuk 'SZERELŐ' a

belépés dátuma szerinti sorrendben!

22. Irassa ki azokat, akiknek a fizetése 60000-nél kisebb vagy

100000 nél nagyobb!

23. Irassa ki az ALKALMAZOTT táblából azokat a dolgozókat,

akik a 20-as vagy 50-es kódú részlegben dolgoznak!

24. Irassa ki a 30-nál nagyobb kódú munkahelyen dolgozók adatait!

25. Irassa ki a vidéki (nem budapesti) részlegek adatait!

16. SELECT * FROM autok WHERE vasarlas_datuma<to_date('01-01-

1994','DD-MM-YYYY');

17. SELECT alk_nev,beosztas,fizetes FROM alkalmazott ORDER BY fizetes;

18. SELECT * FROM alkalmazott ORDER BY beosztas,fizetes DESC;

19. SELECT DISTINCT beosztas FROM alkalmazott;

20. SELECT * FROM alkalmazott WHERE beosztas='ELADÓ' OR

beosztas='SZERELŐ' ORDER BY fizetes DESC;

21. SELECT * FROM alkalmazott WHERE fizetes>50000 OR

beosztas='SZERELŐ' ORDER BY belepes;

22. SELECT * FROM alkalmazott WHERE fizetes<60000 OR fizetes>100000;

23. SELECT * FROM alkalmazott WHERE reszleg_kod='20' OR

reszleg_kod='50';

24. SELECT * FROM alkalmazott WHERE reszleg_kod>'30';

25. SELECT * FROM reszleg WHERE reszleg_cim<>'BUDAPEST';

26. SELECT ugyfel_nev,varos FROM ugyfelek ORDER BY varos;

Page 8: sqlpéldatár-autókölcsönző rendszer

26. Irassa ki városnév szerint rendezve az ügyfelek és városuk

nevét!

27. Irassa ki azon ügyfelek adatait, akik készpénzzel (átutalással)

fizetnek!

28. Irassa ki azon rendelések adatait, amelyeknél a kölcsönzési idő

1 hétnél hosszabb!

29. Irassa ki azon rendelésekre vonatkozó adatokat, amelyeket már

kifizettek!

30. Irassa ki az AUTO_CSOP tábla tartalmát kilométer díj szerint

csökkenő sorrendben!

31. Irassa ki az egyes autótípusoknál a tipus név mellé a kötelező

karbantartás (szervízbe vitel) kilométer intervallumát! A kiírás a

típus neve szerint legyen rendezve!

32. Irassa ki azon autók adatait, amelyek 100000 kilométernél

többet futottak!

33. Készítsen listát a kiadható autók adatairól!

34. Készítsen listát azokról az autókról, amelyek szervízben

vannak, vagy karbantartásra várnak és ezért nem adhatók ki

kölcsönzésre!

35. Készítsen név szerint rendezett listát az ügyfelekről tárolt

adatokról!

36. Irassa ki a LUXUS autócsoporthoz tartozó autók rendszámát és

27. SELECT ugyfel_nev,fizetesi_mod FROM ugyfelek WHERE

fizetesi_mod='K';

SELECT ugyfel_nev,fizetesi_mod FROM ugyfelek WHERE fizetesi_mod='A';

28. SELECT * FROM rendeles WHERE napok>7;

29. SELECT * FROM rendeles WHERE kolcson_dij>0;

30. SELECT * FROM auto_csop ORDER BY km_dij DESC;

31. SELECT tipus_nev, szerviz_km FROM tipusok ORDER BY tipus_nev;

32. SELECT * FROM autok WHERE futott_km >100000;

33. SELECT * FROM autok WHERE allapot='A';

34. SELECT * FROM autok WHERE allapot='S' OR allapot='X';

35. SELECT * FROM ugyfelek ORDER BY ugyfel_nev;

36. SELECT rendszam,tipus_nev FROM autok WHERE

auto_csop_nev='LUXUS';

Page 9: sqlpéldatár-autókölcsönző rendszer

típusát!

37. Irassa ki azokat az autó típusokat, melyeket 15000

kilométerenként kell szervízbe vinni!

38. Készítsen listát azokról a városokról, ahol az autókölcsönzőnek

részlege van!

39. Irassa ki a debreceni ügyfelek adatait!

40. Irassa ki a rendeléseknél kapcsolatot tartó személyek nevét

névsor szerint rendezve!

(NVL függvény, BETWEEN szám AND szám, IN (lista), LIKE

minta (% és _ jel), IS NULL, IS NOT NULL)

41. Irassa ki az alkalmazottak nevét, beosztását és jövedelmét

(fizetés + prémium) névsor szerinti sorrendben!

42. Irassa ki azokat a dolgozókat, akiknek fizetése 50000 és 100000

Ft közötti!

43. Készítsen listát a 120000 és 200000 közötti kilométert futott

autókról!

44. Irassa ki azon dolgozók adatait, akiknek a beosztása

'TELEPHELYVEZETŐ' vagy 'SZERELŐ'!

45. Irassa ki a 10, 20 vagy 60-as telepen dolgozók adatait!

46. Irassa ki azon dolgozók adatait akiknek a neve 'H' betűvel

kezdődik!

47. Irassa ki az ALKALMAZOTT tábla tartalmát azokra, akiknek a

37. SELECT * FROM tipusok WHERE szerviz_km='15000';

38. SELECT DISTINCT reszleg_cim FROM reszleg;

39. SELECT * FROM ugyfelek WHERE varos='DEBRECEN';

40. SELECT DISTINCT rendelo_szemely FROM rendeles ORDER BY

rendelo_szemely;

41. SELECT alk_nev,beosztas,fizetes+NVL(premium,0) FROM alkalmazott

ORDER BY alk_nev;

42. SELECT * FROM alkalmazott WHERE fizetes BETWEEN 50000 AND

100000;

43. SELECT * FROM autok WHERE futott_km BETWEEN 120000 AND

200000;

44. SELECT * FROM alkalmazott WHERE beosztas IN

('ELADÓ','TELEPHELYVEZETŐ' );

45. SELECT * FROM alkalmazott WHERE reszleg_kod IN ('10','20','60');

46. SELECT * FROM alkalmazott WHERE alk_nev LIKE 'H%';

47. SELECT * FROM alkalmazott WHERE alk_nev LIKE'%O%';

Page 10: sqlpéldatár-autókölcsönző rendszer

nevében 'O' betű szerepel!

48. Irassa ki azon alkalmazottak adatait, akik nevének második

betűje az 'O' betű!

49. Irassa ki azokat a részlegre vonatkozó adatokat, amelyek

nevében nem szerepel az 'AUTO'!

50. Irassa ki azon alkalmazottak adatait, akik a 10-es részlegben

dolgoznak és beosztásuk 'ELADÓ', vagy nem kaptak prémiumot!

51. Készítsen listát azon dolgozók adatairól, akik fizetése 60000 és

90000 Ft közötti és beosztásuk nem 'TELEPHELYVEZETŐ' vagy

ELADÓ!

52. Készítsen listát azokról a dolgozókról, akik nem kaptak

prémiumot!

53. Irassa ki azon dolgozók adatait, akiknek a fizetése kisebb, mint

a prémiumuk kétszerese!

54. Irassa ki azokat a rendelés adatokat, amelyekben a kölcsönzés

végén a kilométeróra állása legalább 1000-rel mutat többet, mint az

elején vagy a kölcsönzött napok száma nagyobb 10-nél!

55. Készítsen listát azon megrendelésekben tárolt adatokról,

amelyekben a következő rendszámú autók közül kölcsönöztek:

ABC-123, ABR-047, BAH-115, CDE-324!

56. Irassa ki azon megrendelések adatait, amelyekben a kölcsönzött

(nem kifizetett) autó típusnevében szerepel a RENAULT szó!

57. Készítsen listát azon autók adatairól, amelyek kilométer díja

100 és 300 Ft között van és napi kölcsönzési díja kevesebb, mint

48. SELECT * FROM alkalmazott WHERE alk_nev LIKE'_O%';

49. SELECT * FROM reszleg WHERE reszleg_nev NOT LIKE '%AUTÓ%';

50. SELECT * FROM alkalmazott WHERE (reszleg_kod=10 AND

beosztas='ELADÓ') OR premium IS NULL;

51. SELECT * FROM alkalmazott WHERE fizetes BETWEEN 60000 AND

90000 AND beosztas NOT IN ('TELEPHELYVEZETŐ','ELADÓ');

52. SELECT * FROM alkalmazott WHERE premium IS NULL;

53. SELECT * FROM alkalmazott WHERE fizetes<2*NVL(premium,0);

54. SELECT * FROM rendeles WHERE km_veg-km_kezdet>=1000 OR

napok>10;

55. SELECT * FROM rendeles WHERE rendszam IN ('ABC-123','ABR-

047','BAH-115','CDE-324');

56. SELECT * FROM rendeles WHERE tipus_nev LIKE '%RENAULT%' AND

kolcson_dij IS NULL;

57. SELECT * FROM auto_csop WHERE km_dij BETWEEN 100 AND 300

AND napi_dij<6000;

Page 11: sqlpéldatár-autókölcsönző rendszer

6000 Ft!

58. Listázza ki azokat az autótípus jellemzőket, amelyek az E-vel

kezdődő nevű autócsoportba tartoznak!

59. Irassa ki azon autótípus adatokat, ahol a kötelező szervízek

intervalluma 10000 és 15000 kilométer között van és az autó

típusneve nem a RENAULT szóval kezdődik!

60. Irassa ki az összes olyan megrendelés tételt, amely nincs

kifizetve és a kölcsönzési idő 1994. január 1. előtt kezdődik vagy

fizetve van és a kölcsönzés 1994. május 1. után esedékes!

(UPPER, LOWER, INITCAP, LENGTH, SUBSTR, RPAD,

LPAD, RTRIM, LTRIM)

61. Irassa ki az alkalmazottak nevét nagy kezdőbetűkkel,

beosztásukat csupa kis betűvel!

62. Irassa ki az AUTOK táblájának minden sorából a típusneveket

és a rendszámokat úgy, hogy a típus neveket kisbetűssé konvertálja!

63. Készítsen listát az összes készpénzzel fizető ügyfélről! Az

ügyfél nevét, számát és a fizetési módját a következő szöveg után

írja ki: 'ÜGYFÉL:'

64. Irassa ki az ügyfelek számát, nevét és megbízottját úgy, hogy a

megbízott neve nagybetűvel kezdődjön és a többi karaktere kisbetűs

legyen vagy 10 db '*' szerepeljen az üres mező helyén!

65. A 'minden|szo nagy,betuvel.kezdodik' karaktersorozatra

alkalmazzuk az INITCAP függvényt! (DUAL tábla)

66. Irassa ki az alkalmazottak beosztását kisbetűvel és azt, hogy az

58. SELECT * FROM tipusok WHERE auto_csop_nev LIKE'E%';

59. SELECT * FROM tipusok WHERE tipus_nev NOT LIKE 'RENAULT%'

AND szerviz_km BETWEEN 10000 AND 15000;

60. SELECT * FROM rendeles WHERE (fizetes='N' AND

kolcson_kezdete<to_date('01-01-1994','DD-MM-YYYY')) OR (fizetes='Y' AND

kolcson_kezdete>to_date('01-05-1994','DD-MM-YYYY'));

61. SELECT INITCAP(alk_nev),LOWER(beosztas) FROM alkalmazott;

62. SELECT LOWER(tipus_nev),rendszam FROM autok;

63. SELECT 'ÜGYFÉL: ',ugyfel_szam,ugyfel_nev,fizetesi_mod FROM ugyfelek

WHERE fizetesi_mod='K';

64. SELECT ugyfel_szam,ugyfel_nev,

NVL(INITCAP(megbizott),'***********') FROM ugyfelek;

65. SELECT INITCAP('minden|szo nagy,betuvel.kezdodik') FROM dual;

66. SELECT LOWER(beosztas),LENGTH(alk_nev) FROM alkalmazott;

Page 12: sqlpéldatár-autókölcsönző rendszer

alkalmazott neve hány karakterből áll!

67. Irassa ki a beosztásokat, és a beosztások 4-6. karakterét

kisbetűssé alakítva!

68. Irassa ki az autók típusnevét jobbról a '"' karakterekkel 20

karakter hosszúra kiegészítve!

69. Irassa ki az autók típusnevét balról a '-' karakterekkel 20

karakter hosszúra kiegészítve!

70. Irassa ki a 'KAKAS' karaktersorozatot úgy, hogy balról vágjuk

le az 'A' és 'K' karaktereket!

71. Irassa ki az alkalmazottak beosztását jobbról a '"' karakterekkel

25 karakter hosszúra kiegészítve!

72. Irassa ki az alkalmazottak beosztását balról a'-' karakterekkel 25

karakter hosszúra kiegészítve!

(ABS, ROUND, TRUNC, SQRT, POWER, CEIL, FLOOR, MOD,

SIGN)

73. Irassa ki az alkalmazottak nevét, fizetését és fizetésének

címletezését! Hány db 5000, 1000, 500 és 100 Ft-os szükséges a

kifizetéshez?

74. Í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!

75. 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

67. SELECT beosztas,LOWER(SUBSTR(beosztas,4,3)) FROM alkalmazott;

68. SELECT RPAD(tipus_nev,20,'*') FROM tipusok;

69. SELECT LPAD(tipus_nev,20,'-') FROM tipusok;

70. SELECT LTRIM('KAKAS','AK') FROM dual;

71. SELECT RPAD(beosztas,25,'*') FROM alkalmazott;

72. SELECT LPAD(beosztas,25,'-') FROM alkalmazott;

73. SELECT alk_nev,fizetes,

TRUNC(fizetes/5000,0) otezer,

TRUNC(MOD(fizetes,5000)/1000,0) ezer,

TRUNC(MOD(MOD(fizetes,5000),1000)/500,0) otszaz,

TRUNC(MOD(MOD(MOD(fizetes,5000),1000),500)/100,0) szaz

FROM alkalmazott;

74. SELECT ROUND(3*napi_dij+275*km_dij) FROM auto_csop WHERE

auto_csop_nev='NORMAL';

75. SELECT tipus_nev,'KM ÓRA ÁLLÁS:',ROUND(futott_km,-4) FROM autok

WHERE auto_csop_nev='NORMAL';

Page 13: sqlpéldatár-autókölcsönző rendszer

kerekítve történjen!

76. Figyelje meg a numerikus függvények működését a következő

konstansok SELECT utasításban való alkalmazásával! (DUAL

tábla)

(a) ABS(1000), ABS(-100) és ABS(-27.11)

(b) SORT(25), SQRT(-36)

(c) POWER(2,5)

(d) ROUND(-123.456,2), ROUND(123.456,0), .

ROUND(123.456,-2), ROUND(-123.4567,2)

(e) TRUNC(123.45,1), TRUNC(123.45,0) TRUNC(123.45,-1),

TRUNC(123.45,-2)

(f) SIGN(10), SIGN(0), SIGN(-5)

(g) CEIL(6.1), CEIL(-6.1)

(h) FLOOR(6.1), FLOOR(-6.1)

(i) MOD(10,3)

(ADD_MONTHS, MONTHS_BETWEEN, NEXT_DAY,

LAST_DAY, TO_CHAR, TO_DATE)

77. Írassuk ki az AUTOK táblából a NORMAL autócsoport minden

autójának rendszámát, típusnevét és vásárlási időpontját 'the 6 day

of Jun, 1994'- hez hasonló formában!

78. Irassa ki azokat a rendelés adatokat, ahol a rendelés feladása és

a kölcsönzés kezdete között 1 hétnél kevesebb idő van!

79. Készítsen listát az összes olyan rendelés tételről, ahol a

kölcsönzési idő 10 napnál hosszabb!

80. Irassa ki az elmúlt 7 nap rendelés adatait! (SYSDATE)

81. Ha feltesszük, hogy az amortizáció az eredeti ár 3%-a havonta,

akkor írassuk ki, hogy az 1994 előtt vásárolt autóknak mennyi a

76. SELECT ABS(1000),ABS(-100),ABS(-27.11) FROM dual;

SELECT SQRT(25),SQRT(-36) FROM dual;

SELECT POWER(2,5) FROM dual;

SELECT ROUND(-123.456,2),ROUND(123.456,0),ROUND(123.456,-

2),ROUND(-123.4567,2) FROM dual;

SELECT TRUNC(123.45,1),TRUNC(123.45,0),TRUNC(123.45,-

1),TRUNC(123.45,-2) FROM dual;

SELECT SIGN(10),SIGN(0),SIGN(-5) FROM dual;

SELECT CEIL(6.1),CEIL(-6.1) FROM dual;

SELECT FLOOR(6.1),FLOOR(-6.1) FROM dual;

SELECT MOD(10,3) FROM dual;

77. SELECT rendszam,tipus_nev,TO_CHAR(vasarlas_datuma,'the DD day of

Mon, YYYY') FROM autok WHERE auto_csop_nev='NORMAL';

78. SELECT * FROM rendeles WHERE kolcson_kezdete-rendeles_datum<7;

79. SELECT * FROM rendeles WHERE napok>10;

80. SELECT * FROM rendeles WHERE sysdate-rendeles_datum<7;

81. SELECT rendszam,

TRUNC(MONTHS_BETWEEN(sysdate,vasarlas_datuma),0) ho,

(ar/100)*3 amort_ert,

ar vasarlasi_ar,

ar-((ar/100)*3*TRUNC(MONTHS_BETWEEN(sysdate,vasarlas_datuma),0))

jelenlegi_ert

FROM autok WHERE vasarlas_datuma<to_date('01-01-1994','DD-MM-

YYYY');

Page 14: sqlpéldatár-autókölcsönző rendszer

jelenlegi értéke!

82. Irassa ki a rendelések táblájából az ügyfelek számát, a

rendelésük dátumát, valamint a kölcsönzés kezdetének időpontját a

magyar szokásoknak megfelelően! (év. hó. nap.)

83. Írja ki a mai dátumot követő 90. nap dátumát! (SYSDATE)

84. Írja kí az alkalmazottak táblájából a belépés dátumát és annak 5

hónappal megnövelt értékét!

85. Írja ki minden alkalmazottra a rendszerdátum (SYSDATE) és a

belépés dátuma közötti hónapok számát!

86. Írja ki a rendszerdátumhoz legközelebbi 'Friday' dátumát,

valamint a hónap utolsó napjának dátumát!

87. Irassa ki a '1994. 06. 07.' karaktersorozat dátummá konvertált

alakját!

88. Írja ki a belépés dátumát'YYYY.Month.DAY' formában!

89. Írja ki a saját születési dátumát betűkkel!

2.4.4. Egyéb függvények

(GREATEST, LEAST, DECODE)

90. Irassa ki minden dolgozónál a fizetést, a prémiumot és a kettő

közül a kisebb (nagyobb) értéket!

91. Irassa ki az alkalmazottak beosztását, illetve annak minősítését

a következőképpen: igazgató-FŐNÖK, telephelyvezető-

82. SELECT ugyfel_szam,TO_CHAR(rendeles_datum,'YYYY.MM.DD')

rendeles, TO_CHAR(kolcson_kezdete,'YYYY.MM.DD') kolcsonzes FROM

rendeles;

83. SELECT sysdate+90 FROM dual;

84. SELECT belepes,ADD_MONTHS(belepes,5) FROM alkalmazott;

85. SELECT alk_nev,MONTHS_BETWEEN(sysdate,belepes) FROM

alkalmazott;

86. SELECT NEXT_DAY(sysdate,'Péntek'), LAST_DAY(sysdate) FROM dual;

87. SELECT TO_DATE('1994.06.07.','YYYY.MM.DD.') FROM dual;

88. SELECT TO_CHAR(belepes,'YYYY.Month.DAY') FROM alkalmazott;

89. SELECT TO_CHAR(TO_DATE('1956/09/02','YYYY/MM/DD'), 'Year

Month Day') FROM dual;

90. SELECT fizetes,premium,GREATEST(fizetes,NVL(premium,0)) FROM

alkalmazott;

91. SELECT beosztas,DECODE(beosztas,'IGAZGATÓ','FŐNÖK',

'TELEPHELYVEZETŐ','KISFŐNÖK','BEOSZTOTT') minősites FROM

alkalmazott;

Page 15: sqlpéldatár-autókölcsönző rendszer

KISFŐNÖK egyéb beosztásúak-BEOSZTOTT!

92. Irassa ki a telephelyek adatai mellé, hogy FŐVÁROSI illetve

azt, hogy VIDÉKI, ha a cím mezőben BUDAPEST illetve attól

különböző város szerepel!

(MIN, MAX, SUM, AVG, COUNT)

93. Irassa ki az alkalmazottak táblájából a minimális, a maximális,

az összes és az átlagfizetést, valamint a létszámot!

94. Irassa ki a részlegkódot, a minimális, a maximálís, az összes és

átlagfizetést, valamint a létszámot részlegenkénti csoportosításban!

95. Irassa ki a beosztást, a minimális, a maxímális, az összes és

átlagfizetést, valamint a létszámot beosztásonkénti

csoportosításban!

96. Irassa ki a részlegkódot, átlagfizetést azokra a részlegekre, ahol

az átlagfizetés 8000 Ft-nál nagyobb!

97. Irassa ki azon a részlegek kódját, ahol pontosan ketten

dolgoznak! 98. Írjon SELECT parancsot, amely megadja a

legmagasabb (legalacsonyabb) beszerzési árat!

99. Írjon olyan SELECT parancsot, amely az AUTOK táblából

kiírja a különböző autócsoportok nevét és a csoportban lévő autók

számát!

100. Írjon SELECT parancsot, amely a készpénzzel fizető ügyfelek

létszámát kiírja! Használja a HAVING utasításrészt azon ügyfelek

92. SELECT

reszleg_cim,DECODE(reszleg_cim,'BUDAPEST','FŐVÁROSI','VIDÉKI')

FROM reszleg;

93. SELECT

MIN(fizetes),MAX(fizetes),SUM(fizetes),AVG(fizetes),COUNT(fizetes) FROM

alkalmazott;

94. SELECT

reszleg_kod,MIN(fizetes),MAX(fizetes),SUM(fizetes),AVG(fizetes),COUNT(fiz

etes) FROM alkalmazott GROUP BY reszleg_kod;

95. SELECT

beosztas,MIN(fizetes),MAX(fizetes),SUM(fizetes),AVG(fizetes),COUNT(fizetes

) FROM alkalmazott GROUP BY beosztas;

96. SELECT reszleg_kod,AVG(fizetes) FROM alkalmazott GROUP BY

reszleg_kod HAVING AVG(fizetes)>8000;

97. SELECT reszleg_kod FROM alkalmazott GROUP BY reszleg_kod

HAVING COUNT(*)=2;

98. SELECT MAX(ar) FROM autok;

99. SELECT auto_csop_nev,COUNT(*) FROM autok GROUP BY

auto_csop_nev;

100. SELECT COUNT(*) FROM ugyfelek GROUP BY fizetesi_mod HAVING

fizetesi_mod<>'A';

Page 16: sqlpéldatár-autókölcsönző rendszer

kiírására, akik nem átutalással fizettek!

101. Irassa ki az AUTOK táblából a különböző típusokat, azt hogy

melyikből hány darab van! Típusonként jelenjen meg az átlagos

beszerzési ár! Az eredmény névsor szerint rendezve jelenjen meg!

102. Irassa ki az AUTOK táblából az átlagos beszerzési árat!

103. Irassa ki a legtöbbet és a legkevesebbet futott autó adatait!

104. Irassa ki, hogy az AUTOK táblában hány autó adatai

szerepelnek!

105. Irassa ki típusnevenként csoportosítva az átlagos kilométeróra

állást

106. Írja ki az ALKALMAZOTT tábla alapján a maxímálís és

minimális fizetések eltérését az átlagtál!

107. Irassa ki típusnevenként csoportosítva a kiadható autók számát

és átlagos beszerzési árát!

108. Irassa ki, mennyi volt az átlagos kölcsönzési idő az 1993.

március 30. előtti (utáni) kölcsönzéseknél!

109. Irassa ki a már kifizetett rendelések számát!

110. Irassa ki azokat a megrendeléseket, ahol a kölcsönzés ideje

alatt megtett kilométer a maximális illetve minimális!

111. Irassa ki a kölcsönzési idő alatt futott átlag km értéket!

101. SELECT tipus_nev,COUNT(*),AVG(ar) FROM autok GROUP BY

tipus_nev ORDER BY tipus_nev;

102. SELECT AVG(ar) FROM autok;

103. SELECT * FROM autok WHERE futott_km = (SELECT MAX(futott_km)

FROM autok);

SELECT * FROM autok WHERE futott_km = (SELECT MIN(futott_km)

FROM autok);

104. SELECT COUNT(*) FROM autok;

105. SELECT tipus_nev,AVG(futott_km) FROM autok GROUP BY tipus_nev;

106. SELECT AVG(fizetes)-MAX(fizetes),AVG(fizetes)-MIN(fizetes) FROM

alkalmazott;

107. SELECT tipus_nev,AVG(ar),allapot,COUNT(allapot) FROM autok

GROUP BY tipus_nev,allapot HAVING allapot='A';

108. SELECT AVG(napok) FROM rendeles WHERE

kolcson_kezdete>to_date('30-03-1993','DD-MM-YYYY');

109. SELECT COUNT(kolcson_dij) FROM rendeles;

110. SELECT * FROM rendeles WHERE km_veg-km_kezdet=(SELECT

MAX(km_veg-km_kezdet) FROM rendeles) OR km_veg-km_kezdet=(SELECT

MIN(km_veg-km_kezdet) FROM rendeles);

111. SELECT napok,AVG(km_veg-km_kezdet) FROM rendeles WHERE

km_veg IS NOT NULL GROUP BY napok;

Page 17: sqlpéldatár-autókölcsönző rendszer

112. Irassa ki a kikölcsönzött autók típus nevét és a kölcsönzések

számát gyakoriság szerint csökkenő sorrendbe!

113. Melyik városban van a LUXRENT cég legtöbb ügyfele?

114. Készítsen listát, amely tartalmazza a dolgozó nevét,

beosztását, részleg kódját, a részleg nevét és címét névsor szerinti

sorrendben!

115. Irassa ki az'ELADÓ' beosztású dolgozók nevét, részleg kódját

és a részleg címét!

116. Irassa ki a Győrött dolgozók adatait!

117. Irassa ki részleg nevenként csoportosítva a legmagasabb és

legalacsonyabb fizetést!

118. Irassa ki részleg címenként csoportosítva az átlagfizetést és a

létszámot!

119. Irassa ki azoknak a dolgozóknak a nevét, beosztását és

fizetését, akiknek a fizetése több, mint 'BALOGH' fizetése!

120. Irassa ki azon részlegek kódját, nevét és címét, amelyekben

nem dolgozik senki!

121. Irassa ki azon autók rendszámát és típusát, melyek már több,

mint kétszer voltak kötelezően szervízben!

122. Irassa ki a 3000 és 10000 Ft közötti napidíjért kölcsönözhető

autók rendszámát, típusát és napidíját!

112. SELECT tipus_nev,COUNT(*) FROM rendeles GROUP BY tipus_nev

ORDER BY 2 DESC;

113. SELECT varos,count(*) FROM ugyfelek GROUP BY varos ORDER BY 2

DESC;

114. SELECT alk_nev,beosztas,a.reszleg_kod,reszleg_nev,reszleg_cim FROM

alkalmazott a,reszleg r WHERE a.reszleg_kod=r.reszleg_kod ORDER BY

alk_nev;

115. SELECT alk_nev,a.reszleg_kod,reszleg_cim FROM alkalmazott a,reszleg r

WHERE a.reszleg_kod=r.reszleg_kod AND beosztas='ELADÓ';

116. SELECT * FROM alkalmazott a, reszleg r WHERE

a.reszleg_kod=r.reszleg_kod AND reszleg_cim='GYŐR';

117. SELECT reszleg_nev,MIN(fizetes),MAX(fizetes) FROM alkalmazott a,

reszleg r WHERE a.reszleg_kod=r.reszleg_kod GROUP BY reszleg_nev;

118. SELECT reszleg_cim,AVG (fizetes),COUNT(alk_nev) FROM alkalmazott

a,reszleg r WHERE a.reszleg_kod=r.reszleg_kod GROUP BY reszleg_cim;

119. SELECT alk_nev,beosztas,fizetes FROM alkalmazott WHERE fizetes >

(SELECT fizetes FROM alkalmazott WHERE alk_nev='BALOGH');

120. SELECT * FROM reszleg WHERE reszleg_kod NOT IN (SELECT

reszleg_kod FROM alkalmazott);

121. SELECT rendszam,autok.tipus_nev FROM autok,tipusok WHERE

futott_km/szerviz_km>2 AND autok.tipus_nev=tipusok.tipus_nev;

Page 18: sqlpéldatár-autókölcsönző rendszer

123. Irassa ki azokat az ügyfeleket, akiknek jelenleg rendelésük

van! A listában legyen kiírva az ügyfél száma, neve és címe a

rendelés, kölcsönzés dátumával együtt!

124. Irassa ki azokat az ügyfeleket, akik a LUXUS autócsoportból

rendeltek autót! Írja ki az ügyfélszámot, a típust, a rendszámot, a

napi és kilométerenkénti kölcsönzési díjat valamint a megrendelés

dátumát!

125. Irassa ki a rendszámot, típust, kölcsönzési díjat, a rendelés

dátumát, a kölcsönzés kezdetét, az ügyfélszámot, nevet, címet az

összes megrendelésre, amely 1994. május 1. óta történt!

126. Keresse ki azokat az ügyfeleket, akiknek jelenleg nincsen

rendelésük! Irassa ki az ügyfél számát, nevét, címét és a kapcsolatot

tartó személy nevét!

127. Irassa ki azon autók típusát, rendszámát, napi kölcsönzési

díját, amelyeknél a kölcsönzési díj értéke kevesebb, mint a

RENAULT 19 típusé!

122. SELECT rendszam,tipus_nev,napi_dij FROM autok,auto_csop WHERE

napi_dij BETWEEN 3000 AND 10000 AND

autok.auto_csop_nev=auto_csop.auto_csop_nev;

123. SELECT

u.ugyfel_szam,ugyfel_nev,varos,cim,rendeles_datum,kolcson_kezdete FROM

rendeles r,ugyfelek u WHERE r.ugyfel_szam=u.ugyfel_szam AND km_veg IS

NULL;

124. SELECT

ugyfel_szam,r.tipus_nev,rendszam,napi_dij,km_dij,rendeles_datum FROM

rendeles r,auto_csop cs,tipusok t WHERE r.tipus_nev=t.tipus_nev AND

t.auto_csop_nev=cs.auto_csop_nev AND t.auto_csop_nev='LUXUS';

125. SELECT r.rendszam,r.tipus_nev,

kolcson_dij,rendeles_datum,kolcson_kezdete,

r.ugyfel_szam,ugyfel_nev,varos,cim

FROM rendeles r,ugyfelek u,tipusok t

WHERE r.ugyfel_szam=u.ugyfel_szam

AND r.tipus_nev=t.tipus_nev

AND kolcson_kezdete>to_date('01-05-1994','DD-MM-YYYY');

126. SELECT u.ugyfel_szam,ugyfel_nev,varos,cim,megbizott FROM ugyfelek

u,rendeles r WHERE u.ugyfel_szam=r.ugyfel_szam(+) AND r.ugyfel_szam IS

NULL;

127. SELECT a.rendszam,a.tipus_nev,napi_dij FROM autok a,auto_csop cs

WHERE a.auto_csop_nev=cs.auto_csop_nev AND napi_dij< (SELECT napi_dij

FROM auto_csop cs,tipusok t WHERE cs.auto_csop_nev=t.auto_csop_nev AND

Page 19: sqlpéldatár-autókölcsönző rendszer

128. Készítsen listát, amely a rendelés számokat, a rendelő személy

nevét, a rendelt autó típusát, leírását és a rendelés dátumát

tartalmazza!

129. Irassa ki a jelenleg kölcsönzött autók rendszámát, típus nevét,

a kölcsönző ügyfél számát és nevét, valamint a rendelés dátumát!

130. Irassa ki az összes autó rendszámát és típusát, akár az AUTOK

táblában, akár a RENDELES táblában szerepel!

131. Irassa ki azon autók rendszámát és típusát az AUTOK

táblából, amelyek nem szerepelnek a RENDELES táblában!

132. Irassa ki azon dolgozók nevét és beosztását, akiknek a

beosztása azonos 'HERCEG' beosztásával!

133. Készítsen listát azon dolgozók beosztásáról és fizetéséről,

akiknek beosztása és fizetése azonos'BOGNÁR' beosztásával és

fizetésével!

134. Irassa ki azon dolgozók nevét és fizetését, akik kevesebbet

keresnek, mint az azonos beosztású kollégáik átlagfizetése!

135. Irassa ki azon autók rendszámát, típus nevét és kilométeróra

állását, melyek többet futottak, mint az ABR-115!

136. Készítsen listát azokról az ügyfelekről, akik a NORMAL

autócsoport autói közül rendeltek! A lista tartalmazza az ügyfél

számát, a rendelt autó típusának nevét és a rendelés dátumát!

t.tipus_nev='RENAULT 19');

128. SELECT rendeles_szam,rendelo_szemely,t.tipus_nev,leiras,rendeles_datum

FROM rendeles r,tipusok t WHERE r.tipus_nev=t.tipus_nev;

129. SELECT rendszam,tipus_nev,r.ugyfel_szam, ugyfel_nev,rendeles_datum

FROM rendeles r,ugyfelek u WHERE r.ugyfel_szam=u.ugyfel_szam AND

km_veg IS NULL;

130. SELECT rendszam,tipus_nev FROM autok UNION SELECT

rendszam,tipus_nev FROM rendeles;

131. SELECT rendszam,tipus_nev FROM autok MINUS SELECT

rendszam,tipus_nev FROM rendeles;

132. SELECT alk_nev,beosztas FROM alkalmazott WHERE beosztas=(SELECT

beosztas FROM alkalmazott WHERE alk_nev='HERCEG');

133. SELECT alk_nev,beosztas,fizetes FROM alkalmazott WHERE

(beosztas,fizetes)=(SELECT beosztas,fizetes FROM alkalmazott WHERE

alk_nev='BOGNÁR');

134. SELECT alk_nev,fizetes FROM alkalmazott a WHERE fizetes < (SELECT

AVG (fizetes) FROM alkalmazott b WHERE a.beosztas=b.beosztas);

135. SELECT rendszam,tipus_nev,futott_km FROM autok WHERE futott_km >

(SELECT futott_km FROM autok WHERE rendszam='ABR-115');

136. SELECT ugyfel_szam,tipus_nev,rendeles_datum FROM rendeles WHERE

rendszam=ANY (SELECT rendszam FROM autok WHERE

auto_csop_nev='NORMAL');

Page 20: sqlpéldatár-autókölcsönző rendszer

137. Irassa ki azon ügyfelek nevét, címét, a várost, az országot, akik

RENAULT 19 típusú autót kölcsönöztek!

138. Írassuk ki az ügyfélszámot, nevet, várost az ügyfelek

táblájából azokra, akiknél a rendelést a 'HOTEL CÍVIS' adta fel!

139. Írassuk ki a debreceni és budapesti megrendelők autóinak

típusát, rendszámát, kölcsönzési idejének kezdetét!

140. A rendelési táblából írjunk ki 'IGEN'-t, ha az ügyfél táblában

'PAPP ÁGNES' létezik!

141. Készítsen listát azokról a megrendelésekről, amelyekben a

kölcsönzött autó szervízelési intervalluma hosszabb, mint az átlagos

szervízelési intervallum!

142. Irassa ki azon ügyfelek nevét és ügyfél számát, akiknek

fizetési módja megegyezik a 'MOLNÁR PÉTER' nevű ügyfél

fizetési módjával!

143. Irassa ki azon dolgozók nevét és kódját, akiknek beosztása

szerepel a 'KÖZPONT' munkahelyen dolgozók beosztásai között!

144. Készítsen listát azokról az alkalmazottakról, akiknek beosztása

megegyezik a'KIRÁLY' vagy a'KOVÁCS' nevű dolgozók

beosztásával!

145. Irassa ki azoknak az ügyfeleknek a nevét és lakhelyét, akik az

átlagos kölcsönzési díjnál magasabb díjat fizettek!

137. SELECT ugyfel_nev,cim,varos,orszag FROM ugyfelek WHERE

ugyfel_szam IN (SELECT ugyfel_szam FROM rendeles WHERE

tipus_nev='RENAULT 19');

138. SELECT ugyfel_szam,ugyfel_nev,varos FROM ugyfelek WHERE

ugyfel_szam IN (SELECT ugyfel_szam FROM rendeles WHERE

rendelo_szemely='HOTEL CÍVIS');

139. SELECT tipus_nev,rendszam,kolcson_kezdete FROM rendeles WHERE

ugyfel_szam IN (SELECT ugyfel_szam FROM ugyfelek WHERE varos IN

('DEBRECEN','BUDAPEST'));

140. SELECT DISTINCT 'IGEN' FROM rendeles WHERE EXISTS (SELECT *

FROM ugyfelek WHERE ugyfel_nev='PAPP ÁGNES');

141. SELECT * FROM rendeles WHERE tipus_nev IN (SELECT tipus_nev

FROM tipusok WHERE szerviz_km > (SELECT avg(szerviz_km) FROM

tipusok));

142. SELECT ugyfel_nev,ugyfel_szam FROM ugyfelek WHERE fizetesi_mod=

(SELECT fizetesi_mod FROM ugyfelek WHERE ugyfel_nev='MOLNÁR

PÉTER');

143. SELECT alk_nev,alk_kod FROM alkalmazott WHERE beosztas IN

(SELECT beosztas FROM alkalmazott a,reszleg r WHERE

a.reszleg_kod=r.reszleg_kod AND reszleg_nev='KÖZPONT');

144. SELECT * FROM alkalmazott WHERE beosztas IN (SELECT beosztas

FROM alkalmazott WHERE alk_nev IN ('KIRÁLY','KOVÁCS'));

145. SELECT ugyfel_nev,varos,cim FROM ugyfelek,rendeles WHERE

kolcson_dij>(SELECT AVG(kolcson_dij) FROM rendeles) AND

Page 21: sqlpéldatár-autókölcsönző rendszer

146. Irassa ki azon ügyfelek nevét és ügyfél számát, akik olyan

autót béreltek, amelyekjelenleg karbantartásra várnak!

(CREATE, ALTER, DROP, RENAME)

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

KOD VARCHAR2(4) NOT NULL

NEV VARCHAR2(30) NOT NULL

FIZETES NUMBER

SZUL DAT DATE

148. Bővítse a DOLGOZOK táblát a CIM oszloppal, melynek

típusa VARCHAR2(30)! A NEV hosszát módosítsa 40-re!

149. Hozza létre az UJ_RESZL1 nevű táblát, melynek szerkezete

azonos a RESZLEG nevű tábla szerkezetével!

150. 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!

151. Nevezze át az UJ_RESZL2 táblát RESZLEG2 névre!

152. 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!

153. Hozza létre azt a VIDEK nevű nézettáblát, amely csak a nem

Budapesti részlegek adatait tartalmazza!

rendeles.ugyfel_szam=ugyfelek.ugyfel_szam;

146. SELECT u.ugyfel_nev,u.ugyfel_szam FROM ugyfelek u,autok a,rendeles r

WHERE u.ugyfel_szam=r.ugyfel_szam AND r.rendszam=a.rendszam AND

r.rendszam IN (SELECT DISTINCT rendszam FROM autok WHERE

allapot='X');

147. CREATE TABLE dolgozok (kod VARCHAR2(4) NOT NULL,nev

VARCHAR2(30) NOT NULL, fizetes NUMBER,szul_dat DATE);

148. ALTER TABLE dolgozok ADD cim VARCHAR2(30);

ALTER TABLE dolgozok MODIFY nev VARCHAR2(40);

149. CREATE TABLE uj_reszl1 AS SELECT * FROM reszleg WHERE 1=2;

150. CREATE TABLE uj_reszl2 AS SELECT * FROM reszleg;

151. RENAME uj_reszl2 TO reszleg2;

153. CREATE VIEW videk AS SELECT * FROM reszleg WHERE

reszleg_cim<>'BUDAPEST';

152. CREATE VIEW nezet AS SELECT

alk_kod,alk_nev,beosztas,a.reszleg_kod,reszleg_nev,reszleg_cim FROM

alkalmazott a,reszleg r WHERE a.reszleg_kod=r.reszleg_kod AND

beosztas='ELADÓ';

154. CREATE VIEW atlag AS SELECT reszleg_kod,AVG(fizetes) x FROM

alkalmazott GROUP BY reszleg_kod; SELECT alk_nev,fizetes,a.reszleg_kod,x

FROM alkalmazott a,atlag b WHERE a.reszleg_kod=b.reszleg_kod;

Page 22: sqlpéldatár-autókölcsönző rendszer

154. 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!

155. Az előző feladatban létrehozott ATLAG nevű nézettábla

felhasználásával írassa 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!

156. 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!

157. 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!

158. 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!

155. SELECT alk_nev,fizetes,reszleg_nev,reszleg_cim,x FROM alkalmazott

a,reszleg r,atlag m WHERE a.reszleg_kod=r.reszleg_kod AND

a.reszleg_kod=m.reszleg_kod;

156. CREATE VIEW uj_rendeles AS SELECT

ugyfel_szam,auto_csop_nev,autok.tipus_nev,rendeles_datum,rendelo_szemely,k

olcson_kezdete,napok,fizetes FROM rendeles,autok WHERE

autok.rendszam=rendeles.rendszam;

SELECT * FROM uj_rendeles;

157. DROP VIEW uj_rendeles;

CREATE VIEW uj_rendeles AS SELECT

ugyfel_szam,auto_csop_nev,autok.tipus_nev,rendeles_datum,rendelo_szemely,k

olcson_kezdete,napok,fizetes,km_veg-km_kezdet futott_km FROM

rendeles,autok WHERE autok.rendszam=rendeles.rendszam;

158. CREATE VIEW uj_ugyfel AS

SELECT u.ugyfel_szam,ugyfel_nev,megbizott,

r.tipus_nev,r.rendszam,rendeles_datum,

km_veg-km_kezdet km_futott,km_dij,napi_dij

FROM ugyfelek u,rendeles r,tipusok t,auto_csop cs

WHERE r.ugyfel_szam=u.ugyfel_szam

AND r.tipus_nev=t.tipus_nev

AND t.auto_csop_nev=cs.auto_csop_nev;

Page 23: sqlpéldatár-autókölcsönző rendszer

159. 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!

160. 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!

161. Az AUTOK tábla alapján hozza létre az ELADO_AUTOK

nevű táblát, melynek oszlopai a rendszám, a típusnév, a vásárlás

dátuma és a futott kilométerek száma legyen (új oszlopnevekkel)!

162. A KARBANTART nevű táblában növeljük meg a

kilométeróra állását mutató oszlop hosszát 8-ra!

163. Bővítse a KARBANTART táblát a következő szervíz nevű

oszloppal! Hossza legyen 8, típusa numerikus!

164. .~lozzon létre indexet az AUTOK táblára a rendszám alapján!

165. Hozzon létre indexet a RENDELES táblához az ügyfélszám és

az autó típus név szerint!

166. Törölje az UJ_RESZL1 nevű táblát!

159. CREATE VIEW kolcson_szam AS SELECT rendszam,COUNT(*) x

FROM rendeles GROUP BY rendszam;

SELECT a.rendszam,tipus_nev,NVL(x,0) FROM autok a,kolcson_szam k

WHERE a.rendszam=k.rendszam(+);

160. CREATE TABLE karbantart AS SELECT

rendszam,ut_szerviz,futott_km,szerviz_km FROM autok a,tipusok t WHERE

a.tipus_nev=t.tipus_nev;

161. CREATE TABLE ELADO_autok (rendsz,tip,vetel_datum,km_ora) AS

SELECT rendszam,tipus_nev,vasarlas_datuma,futott_km FROM autok WHERE

1=2;

162. ALTER TABLE karbantart MODIFY futott_km NUMBER(8);

163. ALTER TABLE karbantart ADD kovetkezo_szerviz NUMBER(8);

164. CREATE INDEX auto_index ON autok(rendszam);

165. CREATE INDEX rendindex ON rendeles(ugyfel_szam,tipus_nev);

166. DROP TABLE uj_reszl1;

Page 24: sqlpéldatár-autókölcsönző rendszer

(INSERT, UPDATE, DELETE)

167. Vigye fel a RESZLEG2 táblába a 80-as kódú részleg adatait!

Részleg név: AUTOKOLCSONZO, cím: SZEGED.

168. Vigye fel a RESZLEG2 táblába a RESZLEG táblából a

kölcsönző irodák adatait!

169. Vigye fel a VIDEK nézettáblába a 99-es kódú részleget FORD

--- AUTO névvel, DEBRECEN címmel, majd nézze meg, hogy

bekerült-e a sor a RESZLEG táblába és a nézettáblába!

170. Módosítsa a RESZLEG2 táblában a 'KÖZPONT' részleg nevét

'IRODÁK'-ra!

171. Növelje meg a 10-es kódú részlegben dolgozók fizetését 15%-

kal!

172. Növelje meg az'ELADÓ' beosztású dolgozók prémiumát

10000 Ft tal!

173. Törölje ki a RESZLEG2 táblából a debreceni részlegeket!

174, Vigye fel az AUTOK táblába a legújabban beszerzett autó

adatait:

Rendszám: CAR-342

Típusnév: RENAULT ESPACE

Autócsoport: LUXUS

Vásárlás dátuma: 1994. június 23.

Ár: 1.400.000 Ft

Futott km: 100

Utolsó szervíz: 0 km-nél

167. INSERT INTO reszleg2 VALUES ('80','AUTÓKÖLCSÖNZŐ','SZEGED');

168. INSERT INTO reszleg2 SELECT * FROM reszleg WHERE reszleg_nev

NOT LIKE 'KÖZPONT';

169. INSERT INTO videk VALUES ('99','FORD-AUTO','DEBRECEN');

SELECT * FROM videk;

SELECT * FROM reszleg;

170. UPDATE reszleg2 SET reszleg_nev='IRODÁK' WHERE

reszleg_nev='KÖZPONT';

171. UPDATE alkalmazott SET fizetes=1.15*fizetes WHERE reszleg_kod='10';

172. UPDATE alkalmazott SET premium=NVL(premium,0)+10000 WHERE

beosztas='ELADÓ';

173. DELETE FROM reszleg2 WHERE reszleg_cim='DEBRECEN';

174. INSERT INTO autok VALUES('CAR-342','RENAULT

ESPACE','LUXUS',to_date('23-06-1994','DD-MM-

YYYY'),1400000,100,0,'A',20,1234);

Page 25: sqlpéldatár-autókölcsönző rendszer

Állapot: kiadható (A)

Részleg: 20

175. Vigye fel az ELADO_AUTOK táblájába azokat az autókat,

amelyek 150000-nél többet futottak!

176. Módosítsa az AUTO_CSOP táblában a kölcsönzés km-enkénti

díját 10%-kal megnövelt értékre!

177. Módosítsa a NORMAL autócsoport autóira a szervízelések

közötti intervallumot 12000 km-rel

178. Törölje az AUTOK táblából azokat az autókat, melyeket az

ELADO_AUTOK táblába felvitt! (175. feladat)

179. Törölje az AUTOK táblából az ABC-022 rendszámú autót!

180. Írjon INSERT utasítást, amely az EXTRA autócsoport

valamennyi autójának adatait beírja a most létrehozott, de még üres

EX AUTOK táblába!

181. Írjon UPDATE utasítást, amely az EX_AUTOK tábla

valamennyi 'OPEL ASTRA' típusú autó részleg kódját'99'-re

módosítja!

182. Törölje az EX AUTOK tábla tartalmát a'99'-es kódú autók

kivételével!

183. Vigye át az AUTOK táblából az ELADO_AUTOK táblába

azon járművek adatait, amelyek az autócsoportjuk átlagánál 50%-

kal több kilométert futottak!

175. INSERT INTO ELADO_autok SELECT

rendszam,tipus_nev,vasarlas_datuma,futott_km FROM autok WHERE

futott_km>150000;

SELECT * FROM ELADO_autok;

176. UPDATE auto_csop SET km_dij=1.1*km_dij;

177. UPDATE tipusok SET szerviz_km=12000 WHERE

auto_csop_nev='NORMAL';

178. DELETE FROM autok WHERE futott_km>150000;

179. DELETE FROM autok WHERE rendszam='ABC-022';

180. CREATE TABLE ex_autok AS SELECT * FROM autok WHERE 1=2;

INSERT INTO ex_autok SELECT * FROM autok WHERE

auto_csop_nev='EXTRA';

181. UPDATE ex_autok SET reszleg_kod='99' WHERE tipus_nev='OPEL

ASTRA';

182. DELETE FROM ex_autok WHERE reszleg_kod<>'99';

183. INSERT INTO ELADO_autok SELECT

a.rendszam,a.tipus_nev,vasarlas_datuma,futott_km FROM autok a WHERE

futott_km >(SELECT 1.5*avg(futott_km) FROM autok b WHERE

a.auto_csop_nev=b.auto_csop_nev GROUP BY auto_csop_nev);

Page 26: sqlpéldatár-autókölcsönző rendszer

184. Új ügyfelet kell felvennie az UGYFELEK táblába!

(Hozzon létre egy szekvenciát 351-es kezdőértékkel!)

Ügyfélszáma: a táblában következő érték

Neve: Karát KFT.

Címe: 4025 Debrecen, Nyugati utca 7.

Megbízott: Nagy Péterné

A cég átutalással fizet.

185. Írja be a RENDELES táblába az előző feladatban felvitt ügyfél

1994. június 24-én feladott SKODA CL típusú autóra Kiss Jánosné

ügyintéző által feladott rendelését!

A kölcsönzés időtartama 1994. július 1-től kezdődően 5 nap.

A tábla utolsó rendelésének sorszáma 12345. (Szekvencia!)

(COMMIT, ROLLBACK, GRANT, REVOKE)

186. Listázza ki az ALKALMAZOTT tábla tartalmát!

Adja ki a COMMIT parancsot) Törölje az'ELADÓ' beosztású

dolgozókat!

Mindenki fizetését emeljük meg 20%-kal!

Listázza ki az ALKALMAZOTT tábla tartalmát!

Adja ki a ROLLBACK parancsot!

Listázza ki az ALKALMAZOTT tábla tartalmát!

Figyelje meg, hogy a tábla tartalma hogyan változott az egyes

parancsok kiadása után!

187. Adjon a TOTH nevű felhasználónak lekérdezési jogot a

RENDELES táblához! (TOTH nevű felhasználónak léteznie kell!)

188. Adjon a TOTH nevű felhasználónak jogot a lekérdezéshez és a

módosításhoz a RENDELES táblában!

184. CREATE SEQUENCE ugyfel_szam START WITH 351;

INSERT INTO ugyfelek VALUES (ugyfel_szam.nextval,'KARÁT

KFT','NYUGATI U. 7.','DEBRECEN',NULL,'4025','NAGY PÉTERNÉ','A');

185. CREATE SEQUENCE rendeles_sorszam START WITH 12346;

INSERT INTO rendeles VALUES

(rendeles_sorszam.nextval,ugyfel_szam.currval,to_date('24-06-1994','dd-mm-

yyyy'),'KISS JÁNOSNÉ',to_date('01-07-1994','dd-mm-yyyy'),5, NULL,'SKODA

CL',NULL,NULL,NULL,NULL);

186. SELECT * FROM alkalmazott;

COMMIT;

DELETE FROM alkalmazott WHERE beosztas='ELADÓ';

UPDATE alkalmazott SET fizetes=1.2*fizetes;

SELECT * FROM alkalmazott;

ROLLBACK;

SELECT * FROM alkalmazott;

187. GRANT SELECT ON rendeles TO toth;

Page 27: sqlpéldatár-autókölcsönző rendszer

189. Adjon jogot TOTH-nak bármely, a RENDELES táblával

kapcsolatos művelet elvégzésére!

190. Tegye publikussá a RENDELES táblát!

191. Tegye lehetővé, hogy TOTH továbbadhassa a RENDELES

táblára kapott SELECT jogot!

192. Vonja vissza TOTH-tól a RENDELES táblához kapott törlési

és módosítási jogot!

193. Változtassa meg a jelszavát!

188. GRANT SELECT, UPDATE ON rendeles TO toth;

189. GRANT ALL ON rendeles TO toth;

190. GRANT SELECT ON rendeles TO public;

191. GRANT SELECT ON rendeles TO toth WITH GRANT OPTION;

192. REVOKE DELETE,UPDATE ON rendeles FROM toth;