Hausübung SQL Erste Doppelstunde
Hausübung SQL Zweite Doppelstunde
Erste Doppelstunde
select * from tab
SQLWKS> select * from tab
2>
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
ARTIKEL TABLE
BESTELLUNG TABLE
BESTELLUNG_NEU2 TABLE
BESTELLUNG_NEU3 TABLE
EXPORTARTIKEL TABLE
HOERSAAL TABLE
KUNDE TABLE
LEHRVERANSTALTUNG TABLE
MEINE_KUNDEN TABLE
PRAKTIKUM TABLE
STUDENT TABLE
VORTRAGENDER TABLE
WIRD_BESUCHT_VON TABLE
13 Zeilen ausgewählt
Fr.2.
describe hoersaal
SQLWKS> describe hoersaal
Spaltenname Null? Typ
------------------------------ -------- ----
HSNR NOT NULL NUMBER(3)
ANZ_PERSONEN NOT NULL NUMBER(3)
Fr.3.
select * from vortragender
SQLWKS> select * from vortragender
2>
SVNR NACHNAME VORNAME STRASSE PLZ ORT
---------- ------------------------- ------------------------- ------------------------- ---------- -------------------------
1202020374 Lindner Manfred Meiergasse 3 1040 Wien
1156110378 Chalmers Alan Fleischmarkt 2 5020 Salzburg
1198220562 Eco Umberto Donaulände 4 4040 Linz
2234281256 Kurz Robert Graben 2 1010 Wien
4457030762 Focault Michel Bachweg 2 8850 Murau
5 Zeilen ausgewählt
Fr.4.
create table Vortragender_hat_TelNr
(SVNR char(20) not null, TelNr char(20) not null)
SQLWKS> create table Vortragender_hat_TelNr
2> (SVNR char(20) not null, TelNr char(20) not null)
3>
Anweisung verarbeitet
insert into Vortragender_hat_TelNr
values ('2222 10101945', '0664/11122333');
insert into Vortragender_hat_TelNr
values ('4545 02021965', '0699/1114567');
insert into Vortragender_hat_TelNr
values ('7895 12121977', '0655/4377398');
SQLWKS> insert into Vortragender_hat_TelNr
2> values ('2222 10101945', '0664/11122333');
1 Zeile verarbeitet.
SQLWKS> insert into Vortragender_hat_TelNr
2> values ('4545 02021965', '0699/1114567');
1 Zeile verarbeitet.
SQLWKS> insert into Vortragender_hat_TelNr
2> values ('7895 12121977', '0655/4377398');
1 Zeile verarbeitet.
Fr. 5.
rename Vortragender_hat_TelNr to Vtrg_TelNr
SQLWKS> rename Vortragender_hat_TelNr to Vtrg_TelNr
2>
Anweisung verarbeitet
update Vtrg_TelNr
set SVNR='1111 11111111' where SVNR='2222 10101945'
SQLWKS> update Vtrg_TelNr
2> set SVNR='1111 11111111' where SVNR='2222 10101945'
3>
1 Zeile verarbeitet.
Fr. 6.
select Mtrnr,Nachname from student where Vorname like 'S%'
SQLWKS> select Mtrnr,Nachname from student where Vorname like 'S%'
2>
MTRNR NACHNAME
---------- -------------------------
19292 Huber
9600329 Müller
2 Zeilen ausgewählt
Fr. 7.
select LVANr,Bezeichnung,Typ from LEHRVERANSTALTUNG where Bezeichnung like '%wissenschaft%' or Bezeichnung like 'Wissenschaft%'
SQLWKS> select LVANr,Bezeichnung,Typ from LEHRVERANSTALTUNG where Bezeichnung like '%wissenschaft%' or Bezeichnung like 'Wissenschaft%'
2>
LVANR BEZEICHNUNG TY
---------- -------------------------------------------------- --
400340 Einführung in das wissenschaftliche Arbeiten VO
400220 Wissenschaftstheorie UE
2 Zeilen ausgewählt
Fr.8.
select Nachname,Ort from Student where ort != 'Wien';
SQLWKS> select Nachname,Ort from Student where ort != 'Wien';
NACHNAME ORT
------------------------- -------------------------
Huber St. Pölten
1 Zeile ausgewählt.
Fr. 9.
select LVANr,Bezeichnung from Lehrveranstaltung where LVANr = 300131 or LVANR = 400340 or LVANr = 400220
SQLWKS> select LVANr,Bezeichnung from Lehrveranstaltung where LVANr = 300131 or LVANR = 400340 or LVANr = 400220
2>
LVANR BEZEICHNUNG
---------- --------------------------------------------------
400340 Einführung in das wissenschaftliche Arbeiten
400220 Wissenschaftstheorie
300131 Business Process Management
3 Zeilen ausgewählt
select Bezeichnung from Lehrveranstaltung order by Bezeichnung desc;
SQLWKS> select Bezeichnung from Lehrveranstaltung order by Bezeichnung desc;
BEZEICHNUNG
--------------------------------------------------
Wissenschaftstheorie
Wirtschaftsinformatik
Marktforschung
Einführung in das wissenschaftliche Arbeiten
E-Business
Business Process Management
6 Zeilen ausgewählt
Fr. 10.
select LVANr from Lehrveranstaltung where LVANr not in (select LVANr from wird_besucht_von)
SQLWKS> select LVANr
2> from Lehrveranstaltung
3> where LVANr not in (select LVANr from wird_besucht_von)
4>
LVANR
----------
0 Zeilen ausgewählt
Zweite Doppelstunde
SELECT count (*) from Lehrveranstaltung where SVNR = 1202020374
Oder:
SELECT count (LVANr) from Lehrveranstaltung where SVNR in 1202020374
SQLWKS> SELECT count (*) from Lehrveranstaltung where SVNR = 1202020374
2>
COUNT(*)
----------
3
1 Zeile ausgewählt.
Frage 2.
select sum (Anz_Personen) from Hoersaal where Anz_Personen >0
oder:
select sum (Anz_Personen) from Hoersaal
SQLWKS> select sum (Anz_Personen) from Hoersaal where Anz_Personen >0
2>
SUM(ANZ_PE
----------
512
1 Zeile ausgewählt.
Zwischenfrage: Hörsaal mit max Kapazität
Select HSNr from Hoersaal where Anz_Personen in (select max (Anz_Personen) from Hoersaal)
SQLWKS> Select HSNr from Hoersaal where Anz_Personen in (select max (Anz_Personen) from Hoersaal)
2>
HSNR
----------
1
2
2 Zeilen ausgewählt
Frage 3.
select Mtrnr,Nachname from Student
where GebDat=(select min(GebDat) from Student s, Lehrveranstaltung l,
wird_besucht_von w
where s.Mtrnr = w.Mtrnr and l.LVANr = w.LVANr
and Bezeichnung = 'Business Process Management')
ODER.
select Mtrnr,Nachname from Student where GebDat=(select min(GebDat)
from Student , Lehrveranstaltung , wird_besucht_von
where Student.Mtrnr = wird_besucht_von.Mtrnr and Lehrveranstaltung.LVANr = wird_besucht_von.LVANr
and Bezeichnung = 'Business Process Management')
SQLWKS> select Mtrnr,Nachname from Student
2> where GebDat=(select min(GebDat) from Student s, Lehrveranstaltung l,
3> wird_besucht_von w
4> where s.Mtrnr = w.Mtrnr and l.LVANr = w.LVANr
5> and Bezeichnung = 'Business Process Management')
6>
MTRNR NACHNAME
---------- -------------------------
9600329 Müller
1 Zeile ausgewählt.
Frage 4.
select s.Mtrnr, s.Nachname, l.LVANr, l.Bezeichnung
from Student s, Vortragender v, Lehrveranstaltung l, wird_besucht_von wwhere l.LVANr = w.LVANr and v.SVNR = l.SVNR and v.Nachname = 'Lindner'
SQLWKS> select s.Mtrnr, s.Nachname, l.LVANr, l.Bezeichnung
2> from Student s, Vortragender v, Lehrveranstaltung l, wird_besucht_von w
3> where l.LVANr = w.LVANr and v.SVNR = l.SVNR and v.Nachname = 'Lindner'
4>
MTRNR NACHNAME LVANR BEZEICHNUNG
---------- ------------------------- ---------- --------------------------------------------------
9908789 Meier 300100 Wirtschaftsinformatik
19292 Huber 300100 Wirtschaftsinformatik
9600329 Müller 300100 Wirtschaftsinformatik
9200192 Meyer 300100 Wirtschaftsinformatik
200393 Huber 300100 Wirtschaftsinformatik
9908789 Meier 300129 E-Business
19292 Huber 300129 E-Business
9600329 Müller 300129 E-Business
9200192 Meyer 300129 E-Business
200393 Huber 300129 E-Business
9908789 Meier 300131 Business Process Management
19292 Huber 300131 Business Process Management
9600329 Müller 300131 Business Process Management
9200192 Meyer 300131 Business Process Management
200393 Huber 300131 Business Process Management
9908789 Meier 300131 Business Process Management
19292 Huber 300131 Business Process Management
9600329 Müller 300131 Business Process Management
9200192 Meyer 300131 Business Process Management
200393 Huber 300131 Business Process Management
20 Zeilen ausgewählt
Frage 5.
select 50-count(*) Freie_Plaetze
from wird_besucht_von where LVANr = '300131'
SQLWKS> select 50-count(*) Freie_Plaetze
2> from wird_besucht_von where LVANr = '300131'
3>
FREIE_PLAE
----------
48
1 Zeile ausgewählt.
Frage 6.
select HSNr, count (*) Anzahl_LVA from Lehrveranstaltung group by HSNr
SQLWKS> select HSNr, count (*) Anzahl_LVA from Lehrveranstaltung group by HSNr
2>
HSNR ANZAHL_LVA
---------- ----------
1 2
2 2
3 1
4 1
4 Zeilen ausgewählt
Variante: Alle die nur eine LV haben
select HSNr, count (*) Anzahl_LVA from Lehrveranstaltung group by HSNr having count(*)=1
SQLWKS> select HSNr, count (*) Anzahl_LVA from Lehrveranstaltung group by HSNr having count(*)=1
2>
HSNR ANZAHL_LVA
---------- ----------
3 1
4 1
2 Zeilen ausgewählt
Frage 7.
select l.Bezeichnung, count(Mtrnr) Teilnehmerzahl
from Lehrveranstaltung l, wird_besucht_von w
where l.LVANr = w.LVANr
group by l.LVANr, l.Bezeichnung
SQLWKS> select l.Bezeichnung, count(Mtrnr) Teilnehmerzahl
2> from Lehrveranstaltung l, wird_besucht_von w
3> where l.LVANr = w.LVANr
4> group by l.LVANr, l.Bezeichnung
5>
BEZEICHNUNG TEILNEHMER
-------------------------------------------------- ----------
Wirtschaftsinformatik 1
E-Business 1
Marktforschung 2
Business Process Management 2
Wissenschaftstheorie 2
Einführung in das wissenschaftliche Arbeiten 1
6 Zeilen ausgewählt
Frage 8.
select w.LVANr,Bezeichnung from Lehrveranstaltung l, wird_besucht_von w
where l.LVANr = w.LVANr group by w.LVANr,Bezeichnung
having count (w.Mtrnr) >=2
SQLWKS> select w.LVANr,Bezeichnung from Lehrveranstaltung l, wird_besucht_von w
2> where l.LVANr = w.LVANr group by w.LVANr,Bezeichnung
3> having count (w.Mtrnr) >=2
4>
LVANR BEZEICHNUNG
---------- --------------------------------------------------
300130 Marktforschung
300131 Business Process Management
400220 Wissenschaftstheorie
3 Zeilen ausgewählt
Frage 9.
create view LVA_Uebersicht
as select l.LVANr, l.Typ, h.HSNr, h.Anz_Personen, v.Nachname
from Lehrveranstaltung l, Hoersaal h, Vortragender v,
where l.HSNr = h.HSNr and v.SVNR = l.SVNR