background image

 

 

 

 

 

 

 

 

 

 

 

 

SQL - JĘZYK ZAPYTAŃ  

LABORATORIUM 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dr inż. Piotr Muryjas 

Katedra Informatyki 

Politechnika Lubelska 

 

 

background image

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 

background image

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 

background image

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 

background image

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 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 EgzaminyEgzaminatorzy 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 

background image

 

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