Advertisement
ALTEK

BD2

Mar 19th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.57 KB | None | 0 0
  1. --------SELECTY----------------------
  2. --------2.2--------
  3. --A--
  4. SELECT id_przed, nazwa FROM przedmiot;
  5. --B--
  6. SELECT nr_albumu, nazwisko FROM student WHERE nr_gr = 2;
  7. --C--
  8. SELECT student.nr_albumu, student.nazwisko, student.nr_gr, grupa.nazwa FROM student, grupa WHERE student.nr_gr = grupa.nr_gr ORDER BY grupa.nazwa;
  9. --D--
  10. SELECT wykladowca.nr_wykl, wykladowca.nazwisko, przedmiot.id_przed, przedmiot.Nazwa FROM wykladowca, przedmiot, pro_zaj WHERE wykladowca.nr_wykl = pro_zaj.nr_wykl AND przedmiot.id_przed=pro_zaj.id_przed;
  11. --E--
  12. SELECT wykladowca.nr_wykl, wykladowca.nazwisko, przedmiot.id_przed, przedmiot.nazwa FROM wykladowca, przedmiot, pro_zaj WHERE wykladowca.nr_wykl = pro_zaj.nr_wykl AND przedmiot.id_przed = pro_zaj.id_przed;
  13. --F--
  14. SELECT grupa.nr_gr, grupa.nazwa, przedmiot.id_przed, przedmiot.nazwa FROM grupa, przedmiot, gr_zaj WHERE grupa.nr_gr = gr_zaj.nr_gr AND przedmiot.id_przed = gr_zaj.id_przed;
  15. --G--
  16. SELECT przedmiot.id_przed, przedmiot.nazwa FROM przedmiot, wykladowca, pro_zaj WHERE przedmiot.id_przed = pro_zaj.id_przed AND wykladowca.nr_wykl = pro_zaj.nr_wykl AND (wykladowca.nr_wykl = 3 OR wykladowca.nr_wykl = 4);
  17. --H--
  18. SELECT przedmiot.id_przed, przedmiot.nazwa, wykladowca.nr_wykl, wykladowca.nazwisko FROM przedmiot, wykladowca, pro_zaj WHERE przedmiot.id_przed = pro_zaj.id_przed AND wykladowca.nr_wykl = pro_zaj.nr_wykl;
  19. --I--
  20. SELECT przedmiot.id_przed, przedmiot.nazwa FROM przedmiot, pro_zaj WHERE przedmiot.id_przed = pro_zaj.id_przed AND przedmiot.id_przed = 10;
  21. --J--Podać na jakie zajęcia prowadzone przez wykadowców nie chodzi żadna grupa
  22.  
  23. --K-- Podać na jakie przedmioty nie chodzi żaden student
  24.  
  25. --L--Podać jaki nauczyciel nie uczy żadnego przedmiotu
  26. SELECT wykladowca.nr_wykl, wykladowca.nazwisko FROM wykladowca WHERE NOT EXISTS (SELECT wykladowca_2.nr_wykl, wykladowca_2.nazwisko FROM wykladowca wykladowca_2, pro_zaj prozaj_2 WHERE wykladowca_2.nr_wykl = prozaj_2.nr_wykl AND wykladowca_2.nr_wykl = wykladowca.nr_wykl);
  27. --M--
  28. SELECT przedmiot.id_przed, grupa.nazwa FROM przedmiot, grupa, gr_zaj WHERE przedmiot.id_przed = gr_zaj.id_przed AND grupa.nr_gr = gr_zaj.nr_gr;
  29. --N--
  30. SELECT przedmiot.id_przed, przedmiot.nazwa FROM przedmiot, gr_zaj WHERE przedmiot.id_przed = gr_zaj.id_przed AND gr_zaj.Sala = '405';
  31. --O--
  32. SELECT DISTINCT student.nr_albumu, student.nazwisko, student.imie FROM student, gr_zaj WHERE student.nr_gr = gr_zaj.nr_gr AND gr_zaj.Sala = '405' ORDER BY student.NR_ALBUMU;
  33. --P-- Podać listę studentów którzy nie maja zajec w sali 405;
  34. SELECT DISTINCT student.nr_albumu, student.nazwisko, student.imie FROM student, gr_zaj WHERE student.nr_gr = gr_zaj.nr_gr AND gr_zaj.Sala != '405' ORDER BY student.NR_ALBUMU;
  35. --Q-- Podac liste studentów którzy chodza na przedmiot o nazwie FIZYKA
  36. SELECT DISTINCT student.nr_albumu, student.nazwisko, student.imie FROM student, gr_zaj, przedmiot WHERE student.nr_gr = gr_zaj.nr_gr AND gr_zaj.id_przed = przedmiot.id_przed AND przedmiot.Nazwa = 'FIZYKA' ORDER BY student.NR_ALBUMU;
  37. --R-- Podac na jakie zajecia chodza studenci o imieniu Astor
  38. SELECT przedmiot.id_przed, przedmiot.nazwa FROM przedmiot, gr_zaj, student WHERE student.nr_gr = gr_zaj.nr_gr AND gr_zaj.id_przed = przedmiot.id_przed AND student.imie LIKE 'Astor';
  39. --S-- Podac nazwiska studentoww których uczy mgr. Bwyk
  40. SELECT DISTINCT student.nr_albumu, student.nazwisko, student.imie FROM student, wykladowca, gr_zaj WHERE student.nr_gr = gr_zaj.nr_gr AND wykladowca.nr_wykl = gr_zaj.nr_wykl AND wykladowca.stopien LIKE 'mgr' AND wykladowca.nazwisko LIKE 'Bwyk' ORDER BY student.NR_ALBUMU;
  41.  
  42. --------2.3--------
  43. --A--Podac ile kazdy wykladowca prowadzi przedmiotow
  44. SELECT wykladowca.nr_wykl, wykladowca.nazwisko, COUNT(pro_zaj.id_przed) AS ILOSC FROM wykladowca, pro_zaj WHERE wykladowca.nr_wykl = pro_zaj.nr_wykl GROUP BY wykladowca.nr_wykl, wykladowca.nazwisko ORDER BY wykladowca.nr_wykl;
  45. --B-- Podac nazwy grup dla ktorych grupa.liczna_st<> zliczona ilosc wierszy
  46. SELECT grupa.nr_gr, grupa.nazwa, grupa.liczba_st, COUNT(student.nr_gr) AS ZLICZONA_ILOSC_WIERSZY FROM grupa, student WHERE grupa.nr_gr = student.nr_gr GROUP BY grupa.nr_gr, grupa.nazwa, grupa.liczba_st HAVING COUNT(student.nr_gr) != grupa.liczba_st;
  47. --C-- Podac z iloma grupami kazdy wykladowca ma zajecia
  48. SELECT wykladowca.nr_wykl, wykladowca.nazwisko, COUNT(gr_zaj.nr_gr) AS ILOSC_GRUP FROM wykladowca, gr_zaj WHERE wykladowca.nr_wykl = gr_zaj.nr_wykl GROUP BY wykladowca.nr_wykl, wykladowca.nazwisko;
  49. --D-- Podac ile kazdy student ma przedmiotow
  50. SELECT student.nr_albumu, student.nazwisko, COUNT(gr_zaj.id_przed) FROM student, gr_zaj WHERE student.nr_gr = gr_zaj.nr_gr GROUP BY student.nr_albumu, student.nazwisko;
  51. --E-- Podac ilu studentow uczeszcza na kazdy przedmiot
  52. SELECT przedmiot.id_przed, przedmiot.nazwa, COUNT(student.nr_albumu) AS LICZBA_STUDENTOW FROM przedmiot, student, gr_zaj WHERE przedmiot.id_przed = gr_zaj.id_przed AND student.nr_gr = gr_zaj.nr_gr GROUP BY przedmiot.id_przed, przedmiot.nazwa;
  53. --F-- Podac liczbe studentow w grupach
  54. SELECT grupa.nr_gr, grupa.nazwa, grupa.liczba_st, COUNT(student.nr_gr) AS ZLICZONA_ILOSC_WIERSZY FROM grupa, student WHERE grupa.nr_gr = student.nr_gr GROUP BY grupa.nr_gr, grupa.nazwa, grupa.liczba_st;
  55. --G-- Podac nazwy grup dla ktorych grupa.liczba_st = zliczona ilosc wierszy
  56. SELECT grupa.nr_gr, grupa.nazwa, grupa.liczba_st, COUNT(student.nr_gr) AS ZLICZONA_ILOSC_WIERSZY FROM grupa, student WHERE grupa.nr_gr = student.nr_gr GROUP BY grupa.nr_gr, grupa.nazwa, grupa.liczba_st HAVING COUNT(student.nr_gr) = grupa.liczba_st;
  57. --H-- Podac srednia ocene kazdego studenta z kazdego przedmiotu
  58. SELECT student.nr_albumu, student.nazwisko, przedmiot.id_przed, przedmiot.nazwa, AVG(zaliczenie.ocena) AS SREDNIA FROM student, przedmiot, zaliczenie WHERE przedmiot.id_przed = zaliczenie.id_przed AND zaliczenie.nr_albumu = student.nr_albumu GROUP BY student.nr_albumu, student.nazwisko, przedmiot.id_przed, przedmiot.nazwa ORDER BY student.nazwisko;
  59. --I-- Podac nazwe przedmiotu, z ktorego najwiecej studentow nie zaliczylo w pierwszym terminie
  60. --SELECT przedmiot.id_przed, przedmiot.nazwa FROM przedmiot WHERE MAX(SELECT przedmiot_2.id_przed, COUNT(student_2.nr_albumu) as liczba FROM student student_2, przedmiot przedmiot_2, zaliczenie zaliczenie_2 WHERE przedmiot_2.id_przed = zaliczenie_2.id_przed AND zaliczenie_2.nr_albumu = student_2.nr_albumu AND zaliczenie_2.termin = 1 AND zaliczenie_2.ocena = 2 group by przedmiot_2.id_przed);
  61. --J-- Podac ostatnia ocene kazdego studenta z kazdego przedmiotu (wedlug terminu)
  62. SELECT student.nr_albumu, student.nazwisko, przedmiot.id_przed, przedmiot.nazwa, zaliczenie.ocena, MAX(zaliczenie.termin) FROM student, przedmiot, zaliczenie WHERE student.nr_albumu = zaliczenie.nr_albumu AND zaliczenie.id_przed = przedmiot.id_przed group by student.nr_albumu, student.nazwisko, przedmiot.id_przed, przedmiot.nazwa, zaliczenie.ocena;
  63. --K-- Podac w ktorej sali odbywa sie najwiecej zajec
  64. --SELECT gr_zaj.sala, count(gr_zaj.nr_gr) AS ILOSC_ZAJEC FROM gr_zaj GROUP BY gr_zaj.sala;
  65.  
  66. -- 2.4 a)
  67.  
  68. CREATE OR REPLACE VIEW imiona AS
  69. SELECT DISTINCT s.imie FROM student s;
  70.  
  71. SELECT * FROM imiona;
  72.  
  73.  
  74. --2.4 b) Utwórz tabele imiona_w. Wpisz do niej imiona wszystkich wykładowców.
  75. CREATE TABLE imiona_w AS SELECT DISTINCT IMIE FROM WYKLADOWCA;
  76. SELECT * FROM imiona_w;
  77.  
  78. -- 2.4 c)
  79.  
  80. INSERT INTO zaliczenie
  81. SELECT DISTINCT 1, s.nr_albumu, 3, sysdate, 3
  82. FROM student s
  83. WHERE NOT EXISTS (
  84. SELECT z2.nr_albumu
  85. FROM zaliczenie z2
  86. WHERE z2.id_przed = 1
  87. AND s.nr_albumu = z2.nr_albumu
  88. );
  89.  
  90. -- 2.4 e) (wersja 1)
  91.  
  92. CREATE OR REPLACE VIEW zal_stu_2 AS
  93. SELECT z.nr_albumu, s.nazwisko, p.id_przed, p.nazwa, p.typ, z.ocena as ocena
  94. FROM zaliczenie z, student s, przedmiot p
  95. WHERE z.nr_albumu = s.nr_albumu
  96. AND z.id_przed = p.id_przed
  97. AND z.ocena = (
  98. SELECT z2.ocena
  99. FROM zaliczenie z2
  100. WHERE z2.id_przed = z.id_przed
  101. AND z2.nr_albumu = z.nr_albumu
  102. AND ROWNUM <=1
  103. );
  104.  
  105.  
  106. SELECT * FROM zal_stu_2;
  107.  
  108.  
  109. 2.4 e) ( wersja 2)
  110.  
  111. CREATE OR REPLACE VIEW zal_stu_2 AS
  112. SELECT x.nr_albumu, x.nazwisko, x.id_przed, x.nazwa, x.ocena FROM (SELECT zaliczenie.nr_albumu, student.nazwisko, przedmiot.id_przed, przedmiot.nazwa, zaliczenie.ocena
  113. FROM ZALICZENIE,STUDENT,PRZEDMIOT WHERE student.nr_albumu(+) = zaliczenie.nr_albumu AND przedmiot.id_przed(+) = zaliczenie.id_przed
  114. AND zaliczenie.termin = (SELECT MAX(z.termin) FROM ZALICZENIE z WHERE z.id_przed = zaliczenie.id_przed AND z.nr_albumu = zaliczenie.nr_albumu))x;
  115.  
  116. SELECT * FROM zal_stu_2;
  117. --DROP VIEW zal_stu_2;
  118.  
  119. --END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement