Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. % utworz tabele
  2. create table oceny(nr_indeksu integer, kod_przedmiotu varchar(255), ocena_lab decimal, ocena_egz decimal, primary key(nr_indeksu));
  3. create table zamieszkanie(nr_indeksu integer, nr_ds integer, primary key(nr_indeksu));
  4. create table dane(nr_indeksu integer, imie varchar(255), nazwisko varchar(255), primary key(nr_indeksu));
  5. create table przedmioty(prowadzacy varchar(255), przedmiot varchar(255), typ varchar(255), primary key(przedmiot,typ));
  6. create table zajecia(przedmiot varchar(255), typ varchar(255), sala integer, primary key(przedmiot,typ));
  7.  
  8. % wprowadz dane
  9. insert into zajecia values
  10. ('Hiszpanski', 'WYK', 100),
  11. ('Hiszpanski', 'LAB', 22),
  12. ('GEOLOGIA', 'WYK', 100),
  13. ('GEOLOGIA', 'LAB', 12)
  14. ;
  15.  
  16. insert into przedmioty values
  17. ('Nowacka', 'Hiszpanski', 'WYK'),
  18. ('Majka', 'Hiszpanski', 'LAB'),
  19. ('Baka', 'GEOLOGIA', 'WYK'),
  20. ('Majka', 'GEOLOGIA', 'LAB')
  21. ;
  22.  
  23. insert into dane values
  24. (123456, 'Ala', 'Nowak'),
  25. (123123, 'Krzysztof', 'Kowalski'),
  26. (456456, 'Jerzy', 'Pszoniak'),
  27. (456123, 'Jolanta', 'Ostrowska'),
  28. (111111, 'Maja', 'Pach'),
  29. (666666, 'Olaf', 'Bach')
  30. ;
  31.  
  32. insert into zamieszkanie values
  33. (123456, 12),
  34. (123123,12),
  35. (456456,6),
  36. (456123,12)
  37. ;
  38.  
  39. insert into oceny values
  40. (111111, 'Hisz', 3, 4),
  41. (666666, 'Geol', 3, 3),
  42. (123456, 'Geol', 4, 5),
  43. (123123, 'Geol', 5, 4.5),
  44. (456123, 'Hisz', 5, 6)
  45. ;
  46.  
  47. % 1) wyswietl wszystkie numery indeksow, jakie sa uzywane w tabelach oceny i zamieszkanie
  48. select nr_indeksu from oceny union select nr_indeksu from zamieszkanie;
  49.  
  50. % 2) wyswietl te numery indeksow, dla ktorych sa oceny, a ktorych wlasciciele mieszkaja w akademikach
  51. select nr_indeksu from oceny INTERSECT select nr_indeksu from zamieszkanie;
  52.  
  53. % 3) wyswietl te numery indeksow, dla ktorych sa oceny, a ktorych wlasiciele nie mieszkaja w akademikach
  54. % lub brak jest danych na ten temat
  55. select nr_indeksu from oceny EXCEPT select nr_indeksu from zamieszkanie;
  56.  
  57. % 4) wyswietl iloczyn krzyzowy relacji przedmioty i zajecia
  58. select * FROM przedmioty CROSS JOIN zajecia;
  59.  
  60. % 5) wyswietl zlaczenie naturalne relacji przedmioty i zajecia
  61. select * FROM przedmioty,zajecia where przedmioty.przedmiot=zajecia.przedmiot;
  62.  
  63. % 6) wyswietl imie i nazwisko osob, ktore nie mieszkaja w akademikach (lub brak danych) i maja srednia mniejsza niz 4.0
  64. select imie,nazwisko FROM dane,oceny,zamieszkanie
  65. where oceny.nr_indeksu=dane.nr_indeksu and zamieszkanie.nr_indeksu=dane.nr_indeksu and (ocena_egz+ocena_lab)/2 < 4
  66. ;
  67.  
  68. % 7) złaczenie naturalne tabel przedmioty i zajecia (dwa sposoby)
  69. % pierwszy sposob jest w zad 5
  70. % sposob drugi:
  71. select * FROM przedmioty inner join zajecia USING(przedmiot);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement