Bazy Danych 2 ā Laboratorium |
---|
Laboratorium nr.1 |
-- 2.1a)
SELECT przedmiot.id_przed, przedmiot.nazwa FROM przedmiot WHERE przedmiot.nazwa IS NOT NULL;
Wynik
ID_PRZED NAZWA
-------- -------------------------
1 FIZYKA
2 FIZYKA-L
3 FIZYKA-C
4 POLSKI
5 POLSKI
6 FIZYKA
7 BIOLOGIA
8 BIOL-L
9 CHEMIA
10 INFORMATYKA
-- 2.1d)
SELECT wykladowca.nr_wykl,wykladowca.nazwisko,przedmiot.id_przed,przedmiot.nazwa FROM wykladowca,przedmiot,pro_zaj
WHERE pro_zaj.id_przed=przedmiot.id_przed AND wykladowca.nr_wykl=pro_zaj.nr_wykl;
Wynik
NR_WYKL NAZWISKO ID_PRZED NAZWA
------- --------------- -------- -------------------------
1 Awyk 1 FIZYKA
1 Awyk 2 FIZYKA-L
1 Awyk 3 FIZYKA-C
2 Bwyk 4 POLSKI
2 Bwyk 5 POLSKI
2 Bwyk 6 FIZYKA
3 Cwyk 2 FIZYKA-L
3 Cwyk 5 POLSKI
3 Cwyk 8 BIOL-L
4 Dwyk 7 BIOLOGIA
4 Dwyk 8 BIOL-L
4 Dwyk 9 CHEMIA
5 Ewyk 1 FIZYKA
5 Ewyk 4 POLSKI
5 Ewyk 7 BIOLOGIA
-- 2.1g)
SELECT id_przed,nazwa,nr_wykl,nazwisko FROM przedmiot
LEFT OUTER JOIN pro_zaj USING(id_przed)
LEFT OUTER JOIN wykladowca USING(nr_wykl);
ID_PRZED NAZWA NR_WYKL NAZWISKO
-------- ------------------------- ------- ---------------
3 FIZYKA-C 1 Awyk
2 FIZYKA-L 1 Awyk
1 FIZYKA 1 Awyk
6 FIZYKA 2 Bwyk
5 POLSKI 2 Bwyk
4 POLSKI 2 Bwyk
8 BIOL-L 3 Cwyk
5 POLSKI 3 Cwyk
2 FIZYKA-L 3 Cwyk
9 CHEMIA 4 Dwyk
8 BIOL-L 4 Dwyk
7 BIOLOGIA 4 Dwyk
7 BIOLOGIA 5 Ewyk
4 POLSKI 5 Ewyk
1 FIZYKA 5 Ewyk
10 INFORMATYKA
-- 2.1j)
SELECT id_przed, nazwa FROM przedmiot
LEFT OUTER JOIN gr_zaj USING(id_przed)
LEFT OUTER JOIN student USING(nr_gr)
GROUP BY nazwa,id_przed HAVING COUNT(nr_albumu)=0;
Wynik
ID_PRZED NAZWA
-------- -------------------------
10 INFORMATYKA
-- 2.1m)
SELECT id_przed, przedmiot.Nazwa FROM przedmiot
JOIN gr_zaj USING(id_przed)
JOIN grupa USING(nr_gr)
GROUP BY id_przed, przedmiot.nazwa HAVING COUNT(nr_gr)=2;
Wynik
ID_PRZED NAZWA
-------- -------------------------
2 FIZYKA-L
5 POLSKI
8 BIOL-L
1 FIZYKA
-- 2.1p)
SELECT DISTINCT student.nr_albumu,student.nazwisko,student.imie FROM gr_zaj,student
WHERE gr_zaj.nr_gr=student.nr_gr AND gr_zaj.sala='405';
Wyniki
NR_ALBUMU NAZWISKO IMIE
--------- --------------- ---------------
7 Gsinski Gstor
5 Esinski Estor
10 Jsinski Jstor
14 Akto Astor
15 Bkto Bstor
1 Asinski Astor
13 Cnski Cstor
3 Csinski Cstor
8 Hsinski Hstor
12 Bnski Bstor
2 Bsinski Bstor
4 Dsinski Dstor
11 Anski Astor
6 Fsinski Fstor
9 Isinski Istor
-- 2.2c)
SELECT student.nr_albumu, nazwisko, COUNT(*) ilosc_przedmiotow
FROM student, gr_zaj, przedmiot
WHERE student.nr_gr=gr_zaj.nr_gr AND gr_zaj.id_przed=przedmiot.id_przed
GROUP BY student.nr_albumu, nazwisko;
SELECT nr_albumu,nazwisko,COUNT(przedmiot.nazwa) AS ilosc_przedmiotow
FROM student JOIN gr_zaj ON student.nr_gr=gr_zaj.nr_gr JOIN przedmiot ON gr_zaj.id_przed=przedmiot.id_przed GROUP BY nr_albumu, nazwisko;
Wyniki
NR_ALBUMU NAZWISKO ILOSC_PRZEDMIOTOW
--------- --------------- -----------------
2 Bsinski 5
10 Jsinski 5
14 Akto 3
1 Asinski 5
11 Anski 5
7 Gsinski 5
12 Bnski 5
13 Cnski 5
8 Hsinski 5
9 Isinski 5
3 Csinski 5
15 Bkto 3
4 Dsinski 5
5 Esinski 5
6 Fsinski 5
15 rows selected
NR_ALBUMU NAZWISKO ILOSC_PRZEDMIOTOW
--------- --------------- -----------------
2 Bsinski 5
10 Jsinski 5
14 Akto 3
1 Asinski 5
11 Anski 5
7 Gsinski 5
12 Bnski 5
13 Cnski 5
8 Hsinski 5
9 Isinski 5
3 Csinski 5
15 Bkto 3
4 Dsinski 5
5 Esinski 5
6 Fsinski 5
15 rows selected
-- 2.2f)
SELECT grupa.nr_gr, grupa.nazwa, grupa.liczba_st, COUNT(student.nr_gr) AS ILOSC
FROM grupa, student
WHERE grupa.nr_gr=student.nr_gr GROUP BY grupa.nr_gr, grupa.nazwa, grupa.liczba_st HAVING grupa.liczba_st=COUNT(*);
Wyniki
NR_GR NAZWA LICZBA_ST ILOSC
----- --------------- --------- -----
1 Grupa 1 10 10
2 Grupa 2 3 3
-- 2.2l)
SELECT wykladowca.nr_wykl, wykladowca.nazwisko, przedmiot.id_przed, przedmiot.nazwa, COUNT(zaliczenie.ocena) AS "ilosc"
FROM wykladowca, przedmiot, zaliczenie, gr_zaj
WHERE zaliczenie.id_przed=przedmiot.id_przed AND wykladowca.nr_wykl=gr_zaj.nr_wykl AND gr_zaj.id_przed=przedmiot.id_przed
GROUP BY wykladowca.nr_wykl, wykladowca.nazwisko, przedmiot.id_przed, przedmiot.nazwa ORDER BY wykladowca.nazwisko;
Wyniki
NR_WYKL NAZWISKO ID_PRZED NAZWA ilosc
------- --------------- -------- ------------------------- -----
1 Awyk 3 FIZYKA-C 4
1 Awyk 2 FIZYKA-L 12
1 Awyk 1 FIZYKA 9
2 Bwyk 4 POLSKI 9
2 Bwyk 5 POLSKI 5
2 Bwyk 6 FIZYKA 5
3 Cwyk 8 BIOL-L 5
3 Cwyk 2 FIZYKA-L 12
3 Cwyk 5 POLSKI 5
4 Dwyk 9 CHEMIA 6
4 Dwyk 7 BIOLOGIA 8
4 Dwyk 8 BIOL-L 5
5 Ewyk 1 FIZYKA 9
13 rows selected
-- 2.2o)
SELECT przedmiot.id_przed, przedmiot.nazwa, zaliczenie.termin, COUNT(zaliczenie.ocena) AS "ilosc"
FROM przedmiot, zaliczenie
WHERE przedmiot.id_przed=zaliczenie.id_przed AND zaliczenie.ocena > 2 GROUP BY przedmiot.id_przed, przedmiot.nazwa, zaliczenie.termin;
Wyniki
ID_PRZED NAZWA TERMIN ilosc
-------- ------------------------- --------------- -----
4 POLSKI 1 3
2 FIZYKA-L 3 3
3 FIZYKA-C 1 3
8 BIOL-L 3 2
9 CHEMIA 3 1
2 FIZYKA-L 1 3
1 FIZYKA 3 2
5 POLSKI 3 2
4 POLSKI 2 1
1 FIZYKA 1 3
6 FIZYKA 1 3
8 BIOL-L 1 3
7 BIOLOGIA 3 1
7 BIOLOGIA 1 3
9 CHEMIA 1 3
5 POLSKI 1 3
10 INFORMATYKA 1 3
17 rows selected