81
Lassen Sie sich alle Spieler anzeigen....
SELECT
1
Vorbereitung
select * from spieler
2
82
Lassen sie sich alle Produkte anzeigen!
SELECT
0
Abfragen
select * from produktlager
2
84
Welche Spieler schossen am ersten Spieltag ein Tor?
SELECT
1
Abfragen
select distinct pname from schiesst where spieltag=1
2
85
Welche Sturmer bekommen ein Gehalt vom mehr als 1000 EUR?
SELECT
1
Abfragen
select vertrag.pname from vertrag, stuermer where vertrag.pname = stuermer.pname and gehalt > 1000
2
86
Wann spielten Mannschaften aus den selben Orten gegeneinander?
SELECT
1
Abfragen
select s1.spieltag from mannschaft m1, spiel s1, mannschaft m2 where m1.mname=s1.heim and m2.mname=s1.gast and m1.heimatort=m2.heimatort
2
87
Welche Schiris sind auch Spieler?
SELECT
1
Abfragen
select pname from schiri where pname in (select pname from spieler)
2
88
Welche Spieler schossen mehr als ein Tor?
SELECT
1
Abfragen
select distinct s1.pname from schiesst s1, schiesst s2 where s1.pname=s2.pname and (s1.spieltag<>s2.spieltag or s1.heim<>s2.heim or s1.gast<>s2.gast or s1.spielminute <> s2.spielminute)
2
89
Welche Spieler schossen am selben Tag mehr als ein Tor?
SELECT
1
Abfragen
select distinct s1.pname from schiesst s1, schiesst s2 where s1.pname=s2.pname and s1.spieltag=s2.spieltag and (s1.heim<>s2.heim or s1.gast<>s2.gast or s1.spielminute <> s2.spielminute)
2
90
Welche Spieler schossen kein Tor?
SELECT
1
Abfragen
select pname from spieler where pname not in (select pname from schiesst)
2
91
Welcher Torwart schoss ein Eigentor?
SELECT
1
Abfragen
select p.pname from torwart p, tor, schiesst where p.pname=schiesst.pname and schiesst.spieltag=tor.spieltag and schiesst.heim=tor.heim and schiesst.gast=tor.gast and schiesst.spielminute=tor.spielminute and tor.eigentor=1
2
92
Welche Mannschaft erzielte noch kein Eigentor?
SELECT
1
Abfragen
select mname from mannschaft where mname not in (select m.mname from mannschaft m, vertrag v, schiesst s, tor t where m.mname=v.mname and v.pname=s.pname and s.spieltag=t.spieltag and s.heim=t.heim and s.gast=t.gast and s.spielminute=t.spielminute and t.eigentor=1)
2
93
Welche Mannschaft sprengt ihren Etat?
SELECT
1
Abfragen
select m1.mname from (select m.mname,sum(v.gehalt) as gehalt from mannschaft m,vertrag v where m.mname=v.mname group by m.mname) m1, mannschaft m2 where m1.mname=m2.mname and m2.etat < m1.gehalt
2
94
Wer schoss in der ersten Halbzeit die meisten Tore?
SELECT
1
Abfragen
select pname from schiesst where spielminute <= 45 group by pname having count(*) >= all(select count(*) from schiesst where spielminute <= 45 group by pname)
2
95
Wer bekommt das hochste Gehalt?
SELECT
1
Abfragen
select pname from vertrag where gehalt >= all(select gehalt from vertrag)
2
96
Wer bekommt das zweit-hochste Gehalt?
SELECT
1
Abfragen
with r as (select pname,gehalt from vertrag where gehalt <> (select max(gehalt) from vertrag)) select pname from r where gehalt >= all(selectgehalt from r)
2
97
Welche Mannschaft schoss die meisten Tore?
SELECT
1
Abfragen
select m.mname from mannschaft m, vertrag v, schiesst s where m.mname=v.mname and v.pname=s.pname group by m.mname having count(*) >= all(select count(*) from mannschaft m, vertrag v, schiesst s where m.mname=v.mname and v.pname=s.pname group by m.mname)
2
98
Welche Mannschaft schoss in der ersten Halbzeit die wenigsten Tore? (Keine Mannschaften mit 0 Toren!)
SELECT
1
Abfragen
select m.mname from mannschaft m, vertrag v, schiesst s where s.spielminute <= 45 and m.mname=v.mname and v.pname=s.pname group by m.mname having count(*) <= all(select count(*) from mannschaft m, vertrag v, schiesst s wheres.spielminute <= 45 and m.mname=v.mname and v.pname=s.pname group by m.mname)
2
99
Bitte lassen sie sich probeweise alle Hotels anzeigen.
SELECT
1
Vorbereitung
select * from hotel
3
101
Welche Hotels verfugen uber Einzel- oder Doppelzimmer?
SELECT
1
Abfragen
select distinct hname from zimmertyp where ztyp='EZ' or ztyp='DZ'
3
102
Welche Hotels verfugen uber Einzel- und Doppelzimmer?
SELECT
1
Abfragen
select distinct hname from zimmertyp where ztyp='EZ' and hname in (select hname from zimmertyp where ztyp='DZ')
3
103
Welche Hotels verfugen nur uber Einzelzimmer?
SELECT
1
Abfragen
select hname from zimmertyp where ztyp='EZ' and hname not in(select hname from zimmertyp where ztyp<>'EZ')
3
104
Welche Ausstattung bietet Hotel Neptun zu welchem Preis an?
SELECT
1
Abfragen
select aname, preis from bietet where hname = 'Neptun'
3
105
Was kosten Einzelzimmer in 5-Sterne-Hotels?
SELECT
1
Abfragen
select preis from zimmertyp, hotel where hotel.hname = zimmertyp.hnameand ztyp='EZ' and kategorie=5
3
106
Was kosten Doppelzimmer mit Minibar in 5-Sterne-Hotels?
SELECT
1
Abfragen
select preis from hotel, zimmertyp, besitzt where hotel.hname = zimmertyp.hname and zimmertyp.ztyp=besitzt.ztyp and zimmertyp.hname=besitzt.hname andbesitzt.aname='Minibar' and kategorie=5 and zimmertyp.ztyp='DZ'
3
107
In welchen Hotels hat Franz Mueller reserviert?
SELECT
1
Abfragen
select distinct hname from reserviert where pname='Mueller'and pvorname='Franz'
3
108
In welchen 2-Sterne-Hotels hat Franz Mueller Zimmer mit Doppelbett reserviert?
SELECT
1
Abfragen
select hotel.hname from reserviert, hotel where reserviert.hname = hotel.hname and kategorie=2 and ztyp='DZ' and pvorname='Franz'and pname='Mueller'
3
109
In welchen Rostocker Hotels hat Franz Mueller Zimmer fur 1 Nacht gebucht?
SELECT
1
Abfragen
select hotel.hname from rechnung, hotel where rechnung.hname = hotel.hname and ort='Rostock' and bis-von=1 and pname='Mueller' andpvorname='Franz'
3
110
Welche Gaste Haben noch offene Rechnungen?
SELECT
1
Abfragen
select distinct pname, pvorname from rechnung where bezahlt='N'
3
111
In welchen Hotels wurden alle gestellten Rechnungen bezahlt?
SELECT
1
Abfragen
select distinct hname from rechnung where bezahlt='Y' and hname not in (select hname from rechnung where bezahlt='N')
3
112
Welche Personen sind keine Gaste?
SELECT
1
Abfragen
select p.pname, p.pvorname from person p where not exists (select * from gast g where g.pname=p.pname and g.pvorname=p.pvorname)
3
113
Welches Hotel bietet das billigste Zimmer an?
SELECT
1
Abfragen
select hname from zimmertyp where preis = (select min(preis) from zimmertyp)
3
114
Welches Hotel bietet die meisten Einzelzimmer an?
SELECT
1
Abfragen
select hname from zimmertyp where ztyp='EZ' and anzahl = (select max(Anzahl) from zimmertyp where ztyp='EZ')
3
115
Welches Hotel bietet die durchschnittlich billigsten Zimmer an?
SELECT
1
Abfragen
select hname from zimmertyp group by hname having avg(preis) <= all(select avg(preis) from zimmertyp group by hname)
3
116
Wer hat die hochste Hotelrechnung?
SELECT
1
Abfragen
select pname, pvorname from rechnung where summe = (select max(summe)from rechnung)
3
117
Wer hat mehr als eine Hotelrechnung bezahlt?
SELECT
1
Abfragen
select pname, pvorname from rechnung where bezahlt='Y' groupby pname, pvorname having count(*) > 1
3
0
Lassen Sie sich bitte zum Test des Systems alle Kunden anzeigen, indem sie in das unten stehende Textfeld: 'select * from kunden' eingeben und dann per Mausklick bestatigen.
SELECT
1
Vorbereitung
select * from kunden
1
33
gesucht: alle Kunden (Kundennummer) mit Postleitzahl und Ort, die in Wismar oder Hamburg wohnen.
SELECT
1
Abfragen
select k.kundennummer, ad.postleitzahl, ad.ort from kunden k, adressen ad, kunde_hat_adresse kha where k.kundennummer=kha.kundennummer and ad.adress_id=kha.adress_id and (ad.ort='wismar' or ad.ort='hamburg')
1
34
gesucht: alle Kunden mit Kundennummer & Auftragsnummer die irgend etwas in 2003 oder vor 2000 bestellt haben.
SELECT
1
Abfragen
select kundennummer, auftragsnummer from (select k.kundennummer, a.auftragsnummer, a.auftragsdatum from kunden k, auftrag a where k.kundennummer=a.kundennummer) where (auftragsdatum>='01.01.2003' and auftragsdatum<='31.12.2003') or auftragsdatum<'01.01.2000'
1
35
gesucht: alle Produkte (produktnummer, bezeichnung, stueckzahl, preis),die bisher noch nie bestellt wurden.
SELECT
1
Abfragen
select pl.produktnummer, pl.bezeichnung, pl.stueckzahl, pl.preis fromproduktlager pl left outer join auftrag_hat_positionen ahp on pl.produktnummer=ahp.produktnummer where ahp.produktnummer is null
1
36
gesucht: alle Produkte (produktnummer, bezeichnung, preis), die der Kunde mit der Kdnr 4 bestellt hat.
SELECT
1
Abfragen
select pl.produktnummer, pl.bezeichnung, pl.preis from kunden k join (auftrag a join (auftrag_hat_positionen pos join produktlager pl on pos.produktnummer=pl.produktnummer) on a.auftragsnummer=pos.auftragsnummer) on k.kundennummer=a.kundennummer where k.kundennummer='4'
1
37
gesucht: die Bezeichnung aller Produkte, deren Preis uber dem mittleren Preis liegt.
SELECT
1
Abfragen
select bezeichnung from produktlager where preis > (select avg(preis) from produktlager)
1
38
gesucht: alle Kunden (Kundennummer), die mehr als 2 Auftrage haben.
SELECT
1
Abfragen
select k.kundennummer from kunden k join auftrag a on k.kundennummer=a.kundennummer group by k.kundennummer having count(*)>2
1
39
gesucht: Namen der Kunden, die das teuerste Produkt bestellt haben.
SELECT
1
Abfragen
select k.name from kunden k join (auftrag a join (auftrag_hat_positionen ahp join produktlager pl on ahp.produktnummer=pl.produktnummer) on a.auftragsnummer=ahp.auftragsnummer) on k.kundennummer=a.kundennummer where pl.preis=(select max(preis) from produktlager)
1
40
gesucht: alle Kunden (kundennummer, name, vorname), die das am haufigsten bestellte Produkt (gemessen an der Anzahl der Datensatze in der Tabelle POSITIONEN) bestellt haben
SELECT
1
Abfragen
select k.kundennummer, k.name, k.vorname from kunden k join (select distinct a.kundennummer from auftrag a join (select distinct ahp.auftragsnummer from auftrag_hat_positionen ahp join (select produktnummer from (select produktnummer, count(*) as c from auftrag_hat_positionen group by produktnummer) tmp where tmp.c=(select max(c) from (select produktnummer, count(*) as c from auftrag_hat_positionen group by produktnummer) tmp)) tmp on ahp.produktnummer = tmp.produktnummer) tmp on a.auftragsnummer = tmp.auftragsnummer) tmp on k.kundennummer = tmp.kundennummer
1
42
gesucht: alle Kunden (Kundennummer) und deren Auftrage (Auftragsnummer)aufsteigend sortiert nach Kundennummer!
SELECT
1
Abfragen
select k.kundennummer, a.auftragsnummer from kunden k join auftrag a on k.kundennummer=a.kundennummer order by k.kundennummer
1
43
gesucht: alle Kunden (Kundennummer) und deren Auftrage (Auftragsnummer)aufsteigend sortiert nach Kundennummer und innerhalb der Kundennummer absteigendsortiert nach Auftragsnummer!
SELECT
1
Abfragen
select k.kundennummer, tmp.auftragsnummer from kunden k join (select a.auftragsnummer, a.kundennummer from auftrag a order by a.auftragsnummer desc) tmp on k.kundennummer=tmp.kundennummer order by k.kundennummer
1
44
gesucht: alle Auftrage (gruppiert nach Kunden), deren Auftragsstatus 'in arbeit' ist! (Kundennummer, Auftragsnummer)
SELECT
1
Abfragen
select kundennummer, auftragsnummer from auftrag where auftragsstatus= 'in arbeit' group by kundennummer, auftragsnummer
1
46
gesucht: alle bestellten Produkte als Produktnummer ohne Duplikate!
SELECT
1
Abfragen
select distinct produktnummer from auftrag_hat_positionen
1
47
gesucht: alle Kunden (alle Kundendaten), die noch keine Auftrage gestellt haben! (Anfrage als unkorrelierte Anfrage)
SELECT
1
Abfragen
select * from kunden k where k.kundennummer not in (select kundennummer from auftrag)
1
48
gesucht: alle Kunden (alle Kundendaten), die noch keine Auftrage gestellt haben! (Anfrage als korrelierte Anfrage)
SELECT
1
Abfragen
select * from kunden k where not exists (select a.kundennummer from auftrag a where a.kundennummer=k.kundennummer)
1
49
gesucht: alle bestellten Produkte und deren Besteller (Produktnummer, Kundennummer)!
SELECT
1
Abfragen
select ahp.produktnummer, a.kundennummer from auftrag_hat_positionen ahp join auftrag a on a.auftragsnummer=ahp.auftragsnummer
1
50
gesucht: das Zahlungsverhalten (mogliche Werte --> -1, 0, 1) der Kunden (Kundennummer, Zahlungsverhalten)und Umwandlung der Ausgabe fur Werte >=0als positiv (+) und negativ (-) fur Werte mit -1! (Nutzung des case-Konstruktesim Select-Teil der Anfrage)
SELECT
1
Abfragen
select kundennummer, case when zahlungsverhalten = '-1' then'-' else '+' end from kunden_profil
1
51
gesucht: Kunden und deren Auftrage (Kundennummer, Auftragsnummer) mittels right outer join!
SELECT
1
Abfragen
select k.kundennummer, a.auftragsnummer from kunden k, auftrag a where k.kundennummer=a.kundennummer(+)
1
52
gesucht: Kunden und deren Auftrage (Kundennummer, Auftragsnummer) mittels full join.
SELECT
1
Abfragen
select k.kundennummer, a.auftragsnummer from kunden k full join auftrag a on k.kundennummer=a.kundennummer
1
53
gesucht: Kunden (alle Daten) deren Name ahnlich Meier, Meyer, Mayer ist!
SELECT
1
Abfragen
select * from kunden where name like 'm__er'
1
54
gesucht: alle Kunden (Kundennummer, Name, Vorname), die das am haufigsten bestellte Produkt , gemessen an der bestellten Stuckzahl in der Tabelle POSITIONEN.
SELECT
1
Abfragen
select k.kundennummer, k.name, k.vorname from kunden k join (select distinct a.kundennummer from auftrag a join (select distinct ahp.auftragsnummer from auftrag_hat_positionen ahp join (select produktnummer from (select produktnummer, sum(stueckzahl) as s from auftrag_hat_positionen group by produktnummer) tmp where tmp.s=(select max(s) from (select produktnummer, sum(stueckzahl) as s from auftrag_hat_positionen group by produktnummer) tmp)) tmp on ahp.produktnummer = tmp.produktnummer) tmp on a.auftragsnummer = tmp.auftragsnummer) tmp on k.kundennummer = tmp.kundennummer
1
55
gesucht: der Wohnort der Kunden, die die meisten Auftrage geordert haben.
SELECT
1
Abfragen
select ad.ort from adressen ad join (select adress_id from kunde_hat_adresse kha join (select tmp.kundennummer from (select kundennummer, count(*) as c from auftrag group by kundennummer) tmp where tmp.c = (select min(c) from (select kundennummer, count(*) as c from auftrag group by kundennummer) tmp)) tmp on tmp.kundennummer = kha.kundennummer) tmp on tmp.adress_id=ad.adress_id
1
56
Uberprufen Sie in einem SQL-statement, ob es unter den Kunden (Kundennummer), die das teuerste Produkt bestellt haben, den (die) Kunden mit dem gro?tenAuftragsvolumen gibt. (Hinweis: benutzen Sie die Operation INTERSECT)
SELECT
1
Abfragen
select k.kundennummer from kunden k join (auftrag a join (auftrag_hat_positionen ahp join produktlager pl on ahp.produktnummer=pl.produktnummer) on a.auftragsnummer=ahp.auftragsnummer)on k.kundennummer=a.kundennummer where pl.preis=(select max(preis) from produktlager) intersect select k.kundennummer from kunden k join kunden_profil kp on k.kundennummer=kp.kundennummer where kp.auftragsvolumen=(select max(auftragsvolumen) from kunden_profil)
1
57
Bestimmen Sie in einem SQL-statement alle Produkte (Produktnummer, Bezeichnung, Preis, Kundennummer), die von Kunden mit den meisten Auftragen oder vonKunden mit dem gro?ten Auftragsvolumen, auf jeden Fall aber von Kunden mit den wenigsten Auftragen bestellt wurden! (Hinweis: verwenden Sie UNION und INTERSECT,entsprechend geklammert)
SELECT
1
Abfragen
select pl.produktnummer, pl.bezeichnung, pl.preis, k.kundennummer from kunden k join (auftrag a join (auftrag_hat_positionen pos join produktlager pl on pos.produktnummer=pl.produktnummer) on a.auftragsnummer=pos.auftragsnummer) on k.kundennummer=a.kundennummer where k.kundennummer in (select tmp.kundennummer from (select kundennummer, count(*) c from auftrag group by kundennummer) tmp where tmp.c=(select min(c) from (select kundennummer, count(*) as c from auftrag group by kundennummer) tmp) intersect select k.kundennummer from kunden k join kunden_profil kp on k.kundennummer=kp.kundennummer where kp.auftragsvolumen=(select max(auftragsvolumen) from kunden_profil) union select tmp.kundennummer from (select kundennummer, count(*) as c from auftrag group by kundennummer) tmp where tmp.c=(select max(c) from (select kundennummer, count(*) as c from auftrag group by kundennummer) tmp))
1
58
Definieren Sie eine Sicht uber alle Kunden (Kundennummer, Name, Ort) undderen Auftrage (Auftragsnummer, Auftragsstatus, Auftragsdatum) und benennen Siediese Sicht als Auftragsdetails! (mehrfache Adressen ergeben mehrere Eintrage mit gleichen Inhalten???)
CREATE
0
Abfragen
create view auftragsdetails as (select au.auftragsnummer, au.auftragsstatus, au.auftragsdatum, k.kundennummer, k.name, a.ort from (adressen a join (kunde_hat_adresse kha join (kunden k join auftrag au on k.kundennummer = au.kundennummer) on kha.kundennummer = k.kundennummer) on a.adress_ID = kha.adress_ID))
1
59
Fragen Sie die Sicht Auftragsdetails an und lassen Sie sich alle Informationen geben, fur die der Auftragsstatus 'in Arbeit' ist!
SELECT
0
Abfragen
select * from auftragsdetails where auftragsstatus = 'in arbeit'
1
60
Definieren Sie eine Sicht uber alle Auftrage und deren Produkte (Auftragsnummer, Produktnummer, Produktbezeichnung, Preis) als Produktdetails!
CREATE
0
Abfragen
create view produktdetails as (select distinct au.auftragsnummer, pl.produktnummer, pl.bezeichnung, pl.preis from produktlager pl join (auftrag au join auftrag_hat_positionen ahp on ahp.auftragsnummer = au.auftragsnummer) on ahp.produktnummer = pl.produktnummer)
1
61
Kombinieren Sie alle Informationen der beiden Sichten und lassen Sie sich diese anzeigen! (natural join)
SELECT
0
Abfragen
select * from produktdetails natural join auftragsdetails
1
64
Legen sie eine beliebige Tabelle an. Wahlen sie bitte einen Tabellennamen, der sich beispielsweise aus Ihrem Namen herleitet. Bei Namen, wie "test","tabelle" etc. konnte es zu Fehlermeldungen kommen, da? das Objekt bereits existiert! Bitte versuchen sie es in dem Fall mit einem anderen Tabellennamen.
CREATE
1
Vorbereitung
keine Musterlosung
1
65
Fullen sie die von Ihnen angelegte Tabelle mit mindestens einem Datensatz.
INSERT
1
Vorbereitung
keine Musterlosung
1
66
Fragen Sie bitte die Inhalte der von Ihnen angelegten Tabelle ab!
SELECT
1
Vorbereitung
select * from
1
83
Wer schoss in der 90. Spielminute ein Tor?
SELECT
1
Abfragen
select pname from schiesst where spielminute = 90
2
81
1
1
2
82
2
2
2
83
3
3
2
84
4
4
2
85
5
5
2
86
6
6
2
87
7
7
2
88
8
8
2
89
9
9
2
90
10
10
2
91
11
11
2
92
12
12
2
93
13
13
2
94
14
14
2
95
15
15
2
96
16
16
2
97
17
17
2
98
18
18
2
99
1
1
3
101
2
2
3
102
3
3
3
103
4
4
3
104
5
5
3
105
6
6
3
106
7
7
3
107
8
8
3
108
9
9
3
109
10
10
3
110
11
11
3
111
12
12
3
112
13
13
3
113
14
14
3
114
15
15
3
115
16
16
3
116
17
17
3
117
18
18
3
33
16
16
1
34
17
17
1
0
1
1
1
35
19
19
1
36
18
18
1
37
20
20
1
38
21
21
1
39
22
22
1
40
23
23
1
42
5
5
1
43
6
6
1
44
7
7
1
46
8
8
1
47
9
9
1
48
10
10
1
49
11
11
1
50
12
12
1
51
13
13
1
52
14
14
1
53
15
15
1
54
24
24
1
55
25
25
1
56
26
26
1
57
27
27
1
58
28
28
1
59
29
29
1
60
30
30
1
61
31
31
1
64
2
2
1
65
3
3
1
66
4
4
1