sqlpéldatár-autókölcsönző rendszer
TRANSCRIPT
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.
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
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.
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
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
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';
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;
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';
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%';
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;
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;
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';
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');
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;
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';
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;
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;
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
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');
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
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;
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;
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;
(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);
Á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);
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;
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;