SQL - JĘZYK ZAPYTAŃ
LABORATORIUM
dr inż. Piotr Muryjas
Katedra Informatyki
Politechnika Lubelska
Część 1. Wybieranie proste i warunkowe. Wybieranie danych z wielu tabel.
Podzapytania.
EGZAMINATORZY
Id_egzaminator  VARCHAR2  (4)
Nazwisko  VARCHAR2  (25)
Imie  VARCHAR2  (15)
Kod_poczta VARCHAR2 (5)
Miasto VARCHAR2 (15)
Ulica VARCHAR2 (30)
Numer VARCHAR2 (8)
Tel VARCHAR2 (12)
Fax VARCHAR2 (12)
E_mail VARCHAR2 (30)
EGZAMINY
Nr_egz  NUMBER  (7)
Id_student  <FK1> VARCHAR2 (7)
Id_przedmiot  <FK2> NUMBER (3)
Id_egzaminator  <FK3> VARCHAR2 (4)
Data_egz  DATE
Id_osrodek  <FK4> NUMBER (5)
Zdal  VARCHAR2(1)
Id_student VARCHAR2 (7)
STUDENCI
Nazwisko VARCHAR2 (25)
Imie VARCHAR2 (15)
Data_ur  DATE
Miejsce VARCHAR2 (15)
PESEL VARCHAR2 (11)
Kod_poczta VARCHAR2 (5)
Miasto VARCHAR2 (15)
Ulica VARCHAR2 (30)
Numer VARCHAR2 (8)
Tel VARCHAR2 (12)
Fax VARCHAR2 (12)
E_mail VARCHAR2 (30)
Nr_ECDL VARCHAR2 (9)
Data_ECDL  DATE
OSRODKI
Id_osrodek NUMBER (5)
Nazwa_o VARCHAR2 (30)
Kod_poczta VARCHAR2 (5)
Miasto VARCHAR2 (15)
Ulica VARCHAR2 (30)
Numer VARCHAR2 (8)
PRZEDMIOTY
Id_przedmiot NUMBER (3)
Nazwa_p  VARCHAR2  (40)
Opis VARCHAR2 (200)
przeprowadza
zdaje
jest tematem
jest miejscem
1. Wyświetlić podstawowe informacje o studentach (Nazwisko, Imie, Id_student) posortowane malejąco wg
nazwiska.
2. Wyświetlić informacje (Nazwisko, Imie, Id_egzaminator) o egzaminatorach z Lublina.  
3. Podać nazwisko, imię i identyfikator studentów egzaminowanych w ośrodku o identyfikatorze 3.  
4. Podać informacje, kiedy student posiadający identyfikator 0000049 zdawał egzaminy z poszczególnych 
przedmiotów. Uporządkować informacje według czasu zdawania egzaminów. Zmienić format 
wyświetlania daty tak, by wyświetlana była także informacja o nazwie miesiąca, w którym zdawano 
egzamin a kolejne elementy daty były oddzielone znakiem /. 
5. Z jakich przedmiotów przeprowadził egzaminy egzaminator o identyfikatorze 0001? Podać identyfikator
i nazwę przedmiotu.
6. Podać pełne nazwy ośrodków, w których student o identyfikatorze 0000049 zdawał egzaminy
z przedmiotów o identyfikatorze 1 oraz 3.
7. Jakie osoby były egzaminowane przez egzaminatora o identyfikatorze 0001? Podać ich imię i nazwisko
oraz identyfikator.
8. Podać informację, w jakie dni tygodnia student o identyfikatorze 0000060 zdawał egzaminy
z poszczególnych przedmiotów.
9. Wyświetlić informację, kto, jaki przedmiot i kiedy zdawał egzaminy w okresie od 20 kwietnia 2000 r. do
20 maja 2000 r.
10. Jakie przedmioty zdawali studenci o identyfikatorach 0000061 i 0500323? Podać identyfikator i nazwę
przedmiotu.
©Piotr Muryjas, Katedra Informatyki, Politechnika Lubelska
2
11. Wyświetlić tych studentów (Nazwisko, Imie, Id_student), którzy jeszcze nie zdawali egzaminu
z przedmiotu o identyfikatorze 7.
12. Wyświetlić informacje o tych ośrodkach (Id_osrodek, Nazwa_o), w których nie przeprowadzono jeszcze
żadnego egzaminu.
13. Którzy egzaminatorzy mają nazwiska zaczynające się na literę M. Podać ich nazwisko, imię oraz
identyfikator?
14. Kto i jakie przedmioty zdawał w ośrodkach o nazwach CKMP i LBS? 
15. Podać nazwisko i imię egzaminatorów, którzy egzaminowali studenta o identyfikatorze 0500323.  
16. Jakie przedmioty zdawano w miesiącu lipcu w ośrodku o identyfikatorze 3? 
17. Kto i jaki przedmiot zdawał razem (w tym samym dniu) ze studentem o identyfikatorze 0500323? 
18. Kto i jakie przedmioty zdawał później od ostatniego egzaminu studenta o identyfikatorze 0500324? 
19. Jakie przedmioty były zdawane po ostatnim egzaminie z przedmiotu o identyfikatorze 4? 
20. Którzy studenci zdawali egzaminy w ośrodkach znajdujących się poza ich miejscem zamieszkania?  
Część 2. Grupowanie danych.
1. Ile egzaminów zdawał każdy ze studentów?  
2. Ile egzaminów przeprowadzono w każdym z ośrodków? 
3. Ile egzaminów przeprowadzono w ośrodkach o nazwie CKMP oraz LBS? 
4. Ile egzaminów przeprowadził egzaminator o identyfikatorze 0006?  
5. Ile egzaminów przeprowadził w ośrodku CKMP egzaminator o identyfikatorze 0001? 
6. Podać datę pierwszego i ostatniego egzaminu przeprowadzonego przez egzaminatora o identyfikatorze 
0004.
7. Którzy egzaminatorzy przeprowadzili więcej niż 10 egzaminów? 
8. W których ośrodkach przeprowadzono więcej niż 7 egzaminów? 
9. W którym miesiącu i którego roku przeprowadzono najwięcej egzaminów? 
10. Jaki przedmiot był zdawany przez więcej niż 5 studentów? 
11. Ile egzaminów zdawał student o identyfikatorze 0000049 w ośrodku o identyfikatorze 1? 
12. Podać datę pierwszego i ostatniego egzaminu przeprowadzonego w każdym z ośrodków.  
13. Który egzaminator przeprowadził najwięcej egzaminów w poszczególnych ośrodkach? 
14. Który student zdawał pierwszy egzamin w każdym z ośrodków? 
15. Z którego przedmiotu zdawano najwięcej egzaminów w poszczególnych ośrodkach? 
16. Ile egzaminów zdawał student o identyfikatorze 0500324? 
17. Ile egzaminów przeprowadzono w poszczególnych ośrodkach? 
18. Ile egzaminów przeprowadzili poszczególni egzaminatorzy? 
19. Ile osób zdawało egzaminy z poszczególnych przedmiotów? 
20. Ile osób zdawało egzaminy w poszczególnych ośrodkach? 
21. Ile osób egzaminował każdy z egzaminatorów? 
22. Który student przystąpił do egzaminu i nie zdał najwięcej egzaminów? 
©Piotr Muryjas, Katedra Informatyki, Politechnika Lubelska
3
23. Który student zdał najmniej egzaminów? Uwzględnić tylko tych studentów, którzy przystąpili już do
egzaminów.
24. W których ośrodkach przeprowadzono z przedmiotu o identyfikatorze 1 więcej niż 2 egzaminy?  
25. Podać identyfikator egzaminatora, który pierwszy przeprowadził egzamin. 
26. Podać identyfikator studenta, który jako pierwszy zdał egzamin. 
27. Podać nazwisko i imię egzaminatora, który przeprowadził najwięcej egzaminów.  
28. Który egzaminator egzaminował najwięcej osób? 
29. W którym ośrodku przystąpiło do egzaminu najwięcej osób? 
30. Z którego przedmiotu ostatni egzamin był zdawany później od ostatniego egzaminu z przedmiotu 
o identyfikatorze 1?
31. Ilu studentów nie zdało egzaminu z poszczególnych przedmiotów? Uwzględnić tylko te rzedmioty,
z których przeprowadzono już egzaminy.
32. W którym miesiącu i którego roku przeprowadzono najwięcej egzaminów w ośrodku o nazwie Atena?
Podać nazwę miesiąca i rok czterocyfrowy.
33. W którym ośrodku przeprowadzono najwięcej egzaminów? 
34. Którzy studenci zdawali najwięcej egzaminów w poszczególnych ośrodkach? Podać nazwę ośrodka oraz 
imię i nazwisko studenta.
35. Podać informację, którzy egzaminatorzy przeprowadzili najwięcej egzaminów z poszczególnych
przedmiotów.
36. Z którego przedmiotu zdawano najwięcej egzaminów?
Część 3. Tworzenie struktur danych.
Wykonanie poniższych zadań wymaga wykorzystania poniższego diagramu związków encji.
WYKLADOWCY
Id_wykladowca  VARCHAR2  (4)
Nazwisko  VARCHAR2  (25)
Imie  VARCHAR2  (15)
Miasto VARCHAR2 (15)
ZALICZENIA
Nr_zal  NUMBER  (7)
Id_sluchacz <FK1> VARCHAR2 (7)
Id_temat  <FK2> NUMBER (3)
Id_wykladowca  <FK3> VARCHAR2 (4)
Data_egz  DATE
Id_uczelnia  <FK4> NUMBER (5)
Zdal  VARCHAR2(1)
Id_sluchacz VARCHAR2 (7)
SLUCHACZE
Nazwisko VARCHAR2 (25)
Imie VARCHAR2 (15)
PESEL VARCHAR2 (11)
Miasto VARCHAR2 (15)
UCZELNIE
Id_uczelnia NUMBER (5)
Nazwa_u VARCHAR2 (30)
Miasto VARCHAR2 (15)
TEMATY
Id_temat NUMBER (3)
Tytul  VARCHAR2  (40)
Opis VARCHAR2 (200)
przeprowadza
zdaje
jest tematem
jest miejscem
©Piotr Muryjas, Katedra Informatyki, Politechnika Lubelska
4
1. Utworzyć tabelę Wykladowcy według schematu podanego na rysunku. Zdefiniować klucz podstawowy
oraz warunki integralności dla pól Imie i Nazwisko, uniemożliwiające przyjmowanie wartości 
nieokreślonej. Nazwać wszystkie warunki integralności w tej tabeli.  
2. Utworzyć tabelę Sluchacze według schematu podanego na rysunku. Zdefiniować i nazwać warunki
integralności dotyczące:
•
klucza podstawowego,
•
unikalności wartości w polach PESEL,
•
określoności wartości w polach Imie i Nazwisko.
3. Utworzyć tabelę Uczelnie według schematu podanego na rysunku. Zdefiniować klucz podstawowy oraz
warunek określoności dla pola Nazwa_u. Nazwać wszystkie warunki integralności w tej tabeli.
4. Utworzyć tabelę Tematy według schematu podanego na rysunku. Zdefiniować klucz podstawowy oraz
warunek określoności dla pola Tytul. Nazwać wszystkie warunki integralności w tej tabeli.
5. Utworzyć tabelę Zaliczenia według schematu podanego na rysunku. Zdefiniować i nazwać warunki
integralności dotyczące:
•
klucza podstawowego,
•
określoności wartości we wszystkich polach tabeli z wyjątkiem pola zdal,
•
możliwości wprowadzenia do pola zdal tylko wartości Y lub N.
6. Dla tabeli Zaliczenia zdefiniować klucze obce według schematu podanego na rysunku. Nazwać tak
zdefiniowane warunki integralności danych.
7. Do tabeli Wykladowcy dodać nowe pole o nazwie Kwota typu rzeczywistego, które reprezentuje
informację o cenie egzaminu u danego egzaminatora. Zdefiniować nazwany warunek integralności, który 
zapewni, iż wartość wprowadzana do tego pola będzie zawsze większa od 10.  
8. W tabeli Wykladowcy nadać polu Kwota wartość domyślną równą 25.  
9. W tabeli Wykladowcy wyłączyć kontrolę warunku integralności pola Kwota.  
10. Utworzyć nową tabelę Lublin_stud, w której znajdą się informacje o słuchaczach (Nazwisko, Imie,
Id_student), mieszkających w Lublinie. Informacje wybrać z tabeli Studenci.
11. Dla tabeli Lublin_stud zdefiniować klucz podstawowy oparty na polu Id_student.  
12. Zdefiniować związek między tabelami Lublin_stud oraz Zaliczenia oparty na polach Id_student (w tabeli 
Lublin_stud) i Id_sluchacz (w tabeli Zaliczenia).
13. Dla tabeli Lublin_stud usunąć klucz podstawowy. 
14. Na podstawie danych zawartych w tabeli Egzaminy podać ile egzaminów przeprowadzili poszczególni 
egzaminatorzy? Podać identyfikator, imię, nazwisko egzaminatora oraz liczbę przeprowadzonych 
egzaminów. Informacje zapisać w nowej tabeli o nazwie L_Egzaminator.  
15. Utworzyć tabelę o nazwie Max_Ucz zawierającą dane o egzaminatorach, którzy przeprowadzili
najwięcej egzaminów w poszczególnych ośrodkach oraz dane o liczbie egzaminów. Wykorzystać dane 
zawarte w tabelach Egzaminy, Egzaminatorzy oraz Osrodki.  
16. Utworzyć tabelę LBS_egz, która będzie zawierać informacje o egzaminach przeprowadzonych
w ośrodku o nazwie LBS. Wykorzystać dane z tabel Egzaminy,  Studenci,  Egzaminatorzy oraz 
Przedmioty.  
17. Usunąć następujące tabele:
•
Wykladowcy, Sluchacze, Tematy, Uczelnie, Zaliczenia
•
Lublin_stud
•
L_Egzaminator
•
Max_Ucz
•
LBS_egz.
©Piotr Muryjas, Katedra Informatyki, Politechnika Lubelska
5
Część 4. Perspektywy.
1. Zdefiniować perspektywę o nazwie p_studenci opartą na tabeli studenci, przez którą widoczne będą
jedynie następujące informacje o studentach: Id_student, Nazwisko, Imie, Data_ur, Nr_ECDL, Miasto.
2. Korzystając z perspektywy p_studenci wyświetlić informacje o studentach z Lublina. 
3. Zdefiniować perspektywę o nazwie p_CKMP, przez którą widoczne będą informacje (na podstawie 
tabeli Egzaminy) tylko o egzaminach przeprowadzonych w ośrodku o nazwie CKMP.
4. Korzystając z perspektywy p_CKMP, określić liczbę egzaminów przeprowadzonych przez
poszczególnych egzaminatorów w ośrodku CKMP.
5. Zdefiniować perspektywę, która umożliwi wyświetlenie informacji na temat:
Z których przedmiotów przeprowadzono najwięcej egzaminów w poszczególnych ośrodkach? Podać 
identyfikator i nazwę ośrodka oraz identyfikator i nazwę przedmiotu.  
6. Zdefiniować perspektywę, która umożliwi wyświetlenie informacji na temat:
Którzy studenci zdawali najwięcej egzaminów u poszczególnych egzaminatorów? Podać identyfikator, 
imię i nazwisko egzaminatora oraz identyfikator, imię i nazwisko studentów.  
7. Zdefiniować perpektywę, która umożliwi wyświetlenie szczegółowych informacji o liczbie egzaminów
zdawanych przez poszczególnych studentów. Proszę uwzględnić także tych studentów, którzy nie 
zdawali jeszcze żadnego egzaminu.  
8. Zdefiniować perpektywę, która umożliwi wyświetlenie szczegółowych informacji o liczbie egzaminów
przeprowadzonych w poszczególnych ośrodkach. Podać identyfikator i nazwę ośrodka. Proszę 
uwzględnić także te ośrodki, w których nie przeprowadzono jeszcze żadnego egzaminu.  
9. Zdefiniować perspektywę, która umożliwi wyświetlenie informacji o tych ośrodkach, w których
przeprowadzono najmniej i najwięcej egzaminów. Podać identyfikator i nazwę ośrodka oraz liczbę 
przeprowadzonych egzaminów.  
10. Usunąć perspektywy p_studenci i p_CKMP oraz wszystkie pozostałe utworzone w trakcie realizacji
powyższych zadań.
©Piotr Muryjas, Katedra Informatyki, Politechnika Lubelska
6