Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.06 KB | None | 0 0
  1. select * from regisztralo;
  2. select * from eloadas;
  3. select * from jelentkezes;
  4.  
  5. 1. A regisztráló táblában az elsődleges kulcs az az legyen
  6. az előadás táblában szintén, a jelentkezés táblában a
  7. két mező együtt!
  8. alter table regisztralo add constraint pk primary key(az);
  9. alter table eloadas add constraint pk_ea primary key(az);
  10. alter table jelentkezes add constraint pk_jel primary key(regisztraloaz, eloadasaz);
  11.  
  12. 1,2. Készítsen egy táblát, amelyben a MOODLE előadások adatai szerepelnek!(A szó szerepel a címében!)
  13. create table Moodles as select * from eloadas where cim like '%MOODLE%';
  14.  
  15. 1,3. Oldja meg, hogy a jelentkezés táblába ne lehessen olyan regisztrálót és előadás azonosítót felvinni, amelyek
  16. nem szerepelnek a regisztráló illetve az előadás táblában!
  17. alter table jelentkezes add constraint refi foreign key(regisztraloaz) references regisztralo(az);
  18. alter table jelentkezes add constraint refi2 foreign key(eloadasaz) references eloadas(az);
  19.  
  20. 1,4. Ha törlődik egy rekord az előadás táblában, törlődjön a jelentkezés táblában is!
  21. alter table jelentkezes add constraint refi2 foreign key(eloadasaz) references eloadas(az) on delete cascade;
  22.  
  23. 1,5. A regisztráló táblában a vegetáriánus táblába a default érték -1 legyen, a regdátum pedig a mai dátum.
  24. alter table regisztralo modify vegetarianus varchar2(2) default -1;
  25. alter table regisztralo modify regdatum varchar2(15) default sysdate;
  26.  
  27.  
  28. 2. Kik azok a regisztrálók, akiknél az érkezési idő
  29. nincs kitöltve? (is null)
  30. select nev from regisztralo where erkido is null;
  31.  
  32. 3. Kik azok a regisztrálók, akiknél az érkezési idő
  33. nincs kitöltve, de jelentkeztek valamelyik előadásra?
  34. select nev from regisztralo inner join jelentkezes on jelentkezes.REGISZTRALOAZ=regisztralo.az where erkido is null ;
  35.  
  36. 4. Kik azok a regisztrálók, akiknél az érkezési idő
  37. nincs kitöltve, de nem jelentkeztek valamelyik előadásra?
  38. select nev from regisztralo left join jelentkezes on jelentkezes.REGISZTRALOAZ=regisztralo.az where erkido is null and jelentkezes.REGISZTRALOAZ is null;
  39. select nev from regisztralo left join jelentkezes on jelentkezes.REGISZTRALOAZ=regisztralo.az where erkido is null and az not in(select regisztraloaz from jelentkezes);
  40.  
  41. 5. Adja meg, hogy hányan regisztráltak az egyes órákban?
  42. (8:xx, 9:xx, 10:xx, 11:xx, 12:xx stb.);
  43.  
  44. select substr(erkido,1,2) as Óra, count(*) as Darab from regisztralo group by substr(erkido,1,2);
  45. select substr(regdatum,1,2) as Hónap, count(*) as Darab from regisztralo group by substr(regdatum,1,2) order by substr(regdatum,1,2);
  46.  
  47. 6. Ki regisztrált legkorábban?
  48. select nev from regisztralo where regdatum=(select max(regdatum) from regisztralo);
  49. select nev from (select nev from regisztralo order by regdatum desc) where rownum=1;
  50.  
  51. 7. Az egyes előadásokra ki nem érkeztek meg a jelentkezők közül?
  52. (3. feladat)
  53.  
  54. 8. Az előadás neve és a nem érkező neve legyen megjelenítve!
  55.  
  56. 9. Adja meg, hogy az egyes előadásra (címe) hányan jelentkeztek!;
  57. select cim, count(*) as "A jelentkezők száma" from eloadas inner join jelentkezes on jelentkezes.ELOADASAZ=eloadas.AZ group by eloadas.CIM;
  58.  
  59. 10. Adj meg annak az előadásnak a címét, amelyre a legtöbben jelentkeztek!;
  60. select cim, as "A jelentkezők száma" from eloadas inner join jelentkezes on jelentkezes.ELOADASAZ=eloadas.AZ group by cim having count(*)=(select max(count(*)) from eloadas inner join jelentkezes on jelentkezes.ELOADASAZ=eloadas.AZ group by cim order by count(*) desc);
  61.  
  62. 11. Két megoldás van, sőt három, a harmadikat mutatom:
  63.  
  64. SELECT cim FROM
  65. (SELECT cim, count(*) FROM jelentkezes inner join eloadas
  66. order by count(*) desc group by cim ) WHERE ROWNUM =1;
  67.  
  68. A belső select cimenként ad egy értéket, a külső abből kiadja mind1iknek a címét de csak az első sort.
  69. Mivel csökkenőben van a belső select eredmény, így csak a legnagyobb jelenik meg.
  70.  
  71. 12. Adja meg, hogy az egyes előadásokra kik jelentkeztek!
  72. (cim és név jelenjen meg.)
  73.  
  74. 13. Melyik teremben hányan voltak a jelentkezések száma alapján? Ha valaki nem érkezett meg, akkor nem volt ott!
  75.  
  76.  
  77. 14. Adja meg, hogy melyik hónapban hányan regisztráltak!
  78.  
  79. 15. Adja meg annak a hónapnak a nevét, amelyikben a legtöbben
  80. regisztráltak!
  81.  
  82. 16. Adja meg azoknak a nevét és az előadás címét, amelyre jelentkeztek azok közül, akik márciusban regisztráltak 8-10 óra között! (A 8:00 és a 10:00 is "játszik")
  83.  
  84. 17. Adja meg, hogy hány "vega" nem érkezett meg!
  85.  
  86. 18. Adja meg azokat az előadásokat, amelyekre nem jelentkeztek!
  87.  
  88. 19. Van-e olyan regisztráló, aki nem jelentkezett semelyik előadásra?
  89.  
  90.  
  91. 20. Készítsen lekérdezést, amely az érkezési idő alapján kilistázza azok nevét, akik nem voltak jelen az ebéd kezdetekor!
  92.  
  93. 21 Készítsen lekérdezést, amely ábécérendben listázza azoknak nevét és azonosítóját, akik részt vettek a Drupallal foglalkozó előadások valamelyikén! Minden személy csak egyszer
  94. jelenjen meg!
  95.  
  96. 22. Készítsen lekérdezést, amely az előzetes jelentkezési létszám alapján megadja, hogy melyik a legnépszerűbb előadás! Adja meg az előadás címét
  97.  
  98. 23. Ferenczi Janka és Berger Georgina még az egyetemről ismerik egymást. Akkor hasonló volt az érdeklődési körük. Annak kiderítésére, hogy ez változott-e, készítsen lekérdezést,
  99. amely megjeleníti azon előadások idejét, címét és helyét, amelyre mindketten jelentkeztek! (
  100.  
  101. 24. Hozzon létre a regisztralo táblában egy logikai típusú, eload nevű mezőt! Majd Készítsen lekérdezést, amely az eload mező értékét igazra állítja, ha az illető azonosítója az előadók között is szerepel!
  102.  
  103. 25. Készítsen lekérdezést, amely felsorolja azon jelentkezők nevét, akik ugyan megérkeztek, de lekésték az általuk választott előadások egyikét! Minden személy neve csak egyszer
  104. jelenjen meg! Feltételezheti, hogy aki időben érkezett, az meg is hallgatta az általa választott előadásokat.
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112. SELECT * FROM (SELECT * FROM … ORDER BY …) WHERE ROWNUM <= N;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement