Übung 1: SQL - KITipd/institut/dbe2004-05/Uebung1-SQL.pdf · Übung 1: SQL Vorlesung...
Transcript of Übung 1: SQL - KITipd/institut/dbe2004-05/Uebung1-SQL.pdf · Übung 1: SQL Vorlesung...
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übung 1: SQLÜbung 1: SQL
Übungen finden bei Bedarf Übungen finden bei Bedarf anstelle der Vorlesungen stattanstelle der Vorlesungen statt
Fragen? Fragen? [email protected]@ira.uka.de
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Fragen aus der VorlesungFragen aus der Vorlesung
Wie sieht eine äquivalente Anfrage zuWie sieht eine äquivalente Anfrage zuselect Titel from Bücher where ISBN select Titel from Bücher where ISBN in (select ISBN from Empfiehlt)in (select ISBN from Empfiehlt)ohne Schachtelung aus?ohne Schachtelung aus?
select b.titel from Bücher b inner join select b.titel from Bücher b inner join Empfielt e on b.ISBN = e.ISBNEmpfielt e on b.ISBN = e.ISBN
oder:oder:select b.titel from Bücher b, Empfielt e select b.titel from Bücher b, Empfielt e where b.ISBN = e.ISBNwhere b.ISBN = e.ISBN
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Fragen aus der VorlesungFragen aus der Vorlesung
Was liefern Aggregatfunktionen, wenn die Was liefern Aggregatfunktionen, wenn die Relation leer ist oder kein Tupel dieRelation leer ist oder kein Tupel die wherewhere--Klausel erfüllt?Klausel erfüllt?
0
null
null
Funktion Ergebniscount()
min()
max()
sum() null
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Fragen aus der VorlesungFragen aus der Vorlesung
Ist die Abfrage Ist die Abfrage select * from Person where select * from Person where note = max(note)note = max(note) zulässig?zulässig?
Nein, korrekt wäre:Nein, korrekt wäre:
select * from Person where note in select * from Person where note in (select max(note) from Person)(select max(note) from Person)
oder:oder:
select * from Person where note = select * from Person where note = (select max(note) from Person)(select max(note) from Person)
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
Namen der Kontinente, Namen der darin Namen der Kontinente, Namen der darin gelegenen Lgelegenen Läänder, sortiert nach Namen der nder, sortiert nach Namen der Kontinente und darin nach Namen der LKontinente und darin nach Namen der Läändernder
select co.name, ct.name from continent select co.name, ct.name from continent co, country ct, encompasses e where co, country ct, encompasses e where co.name = e.continent and ct.cid = e.cid co.name = e.continent and ct.cid = e.cid order by co.name, ct.nameorder by co.name, ct.name
Erstellen Sie ein Abfrage, die folgende Informationen liefert:Erstellen Sie ein Abfrage, die folgende Informationen liefert:
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
Namen der Kontinente, Anzahl der darin Namen der Kontinente, Anzahl der darin gelegenen Lgelegenen Läänder, sortiert nach Namen der nder, sortiert nach Namen der KontinenteKontinente
select co.name, count(ct.name) from select co.name, count(ct.name) from continent co, country ct, encompasses e continent co, country ct, encompasses e where co.name = e.continent and ct.cid = where co.name = e.continent and ct.cid = e.cid group by co.name order by co.namee.cid group by co.name order by co.name
Erstellen Sie ein Abfrage, die folgende Informationen liefert:Erstellen Sie ein Abfrage, die folgende Informationen liefert:
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
Namen der LNamen der Läänder, Anzahl ihrer Nachbarlnder, Anzahl ihrer Nachbarläänder, nder, sortiert nach Namen der Lsortiert nach Namen der Läändernder
select co.name, count(b.country1) from select co.name, count(b.country1) from country co, borders b where b.country1 = country co, borders b where b.country1 = co.cid or b.country2 = co.cid group by co.cid or b.country2 = co.cid group by co.name order by co.nameco.name order by co.name
Erstellen Sie ein Abfrage, die folgende Informationen liefert:Erstellen Sie ein Abfrage, die folgende Informationen liefert:
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
Namen der LNamen der Läänder, Namen ihrer Hauptstnder, Namen ihrer Hauptstäädte, dte, Einwohnerzahl des Landes, Einwohnerzahl der Einwohnerzahl des Landes, Einwohnerzahl der Hauptstadt, Anteil der BevHauptstadt, Anteil der Bevöölkerung der Hauptstadt an lkerung der Hauptstadt an der Gesamtbevder Gesamtbevöölkerung in %, sortiert nach Namen der lkerung in %, sortiert nach Namen der LLäändernder
select co.name, select co.name, cici.name, co.population, .name, co.population, cici.population, ceil((.population, ceil((cici.population / .population / co.population) * 100) as co.population) * 100) as CapPopPercCapPopPerc from country from country co, city co, city cici where where cici.name = co.capital and .name = co.capital and co.cid = co.cid = cici.cid order by co.name.cid order by co.name
Erstellen Sie ein Abfrage, die folgende Informationen liefert:Erstellen Sie ein Abfrage, die folgende Informationen liefert:
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
Namen der LNamen der Läänder, Anzahl der Stnder, Anzahl der Stäädte im Land, dte im Land, Einwohnerzahl des Landes, Einwohnerzahl der StEinwohnerzahl des Landes, Einwohnerzahl der Stäädte dte zusammen, Anteil der Bevzusammen, Anteil der Bevöölkerung der Stlkerung der Stäädte an der dte an der GesamtbevGesamtbevöölkerung des Landes in %, sortiert nach lkerung des Landes in %, sortiert nach Namen der LNamen der Läändernder
select co.name, count(select co.name, count(cici.name), co.population, .name), co.population, sum(sum(cici.population), ceil((sum(.population), ceil((sum(cici.population) / .population) / co.population) * 100) from country co, city co.population) * 100) from country co, city ciciwhere co.cid = where co.cid = cici.cid group by co.name, .cid group by co.name, co.population order by co.name co.population order by co.name
Erstellen Sie ein Abfrage, die folgende Informationen liefert:Erstellen Sie ein Abfrage, die folgende Informationen liefert:
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
Namen der LNamen der Läänder, Anzahl der Stnder, Anzahl der Stäädte im Land, Einwohnerzahl des dte im Land, Einwohnerzahl des Landes, Einwohnerzahl der StLandes, Einwohnerzahl der Stäädte, Anteil der Bevdte, Anteil der Bevöölkerung der lkerung der StStäädte an der Gesamtbevdte an der Gesamtbevöölkerung des Landes in %, aber nur flkerung des Landes in %, aber nur füür r verstverstäädterte Ldterte Läänder (Anteil der Stadtnder (Anteil der Stadt-- an der an der GesamtbevGesamtbevöölkerung >= 50%), sortiert nach Namen der Llkerung >= 50%), sortiert nach Namen der Läändernder
select co.name, count(select co.name, count(cici.name), co.population, .name), co.population, sum(sum(cici.population), ceil((sum(.population), ceil((sum(cici.population) / .population) / co.population) * 100) from country co, city co.population) * 100) from country co, city cici where where co.cid = co.cid = cici.cid group by co.name, co.population having .cid group by co.name, co.population having (ceil((sum((ceil((sum(cici.population) / co.population) * 100) >= .population) / co.population) * 100) >= 50 and count(50 and count(cici.name) > 1) order by co.name .name) > 1) order by co.name
Erstellen Sie ein Abfrage, die folgende Informationen liefert:Erstellen Sie ein Abfrage, die folgende Informationen liefert:
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
Namen der LNamen der Läänder, Namen der Nachbarlnder, Namen der Nachbarläänder mit gleicher nder mit gleicher Regierungsform, Regierungsform beider LRegierungsform, Regierungsform beider Läänder, sofern nder, sofern das Land ein Nachbarland mit gleicher Regierungsform das Land ein Nachbarland mit gleicher Regierungsform hat, sortiert nach Namen der Lhat, sortiert nach Namen der Läänder und darin nach nder und darin nach Namen der NachbarlNamen der Nachbarläändernder
select c1.name, c2.name, c2.government from select c1.name, c2.name, c2.government from country c1, country c2, borders b where country c1, country c2, borders b where ((b.country1 = c1.cid and b.country2 = c2.cid) ((b.country1 = c1.cid and b.country2 = c2.cid) or (b.country2 = c1.cid and b.country1 = or (b.country2 = c1.cid and b.country1 = c2.cid)) and (c1.government = c2.government) c2.cid)) and (c1.government = c2.government) order by c1.name, c2.nameorder by c1.name, c2.name
Erstellen Sie ein Abfrage, die folgende Informationen liefert:Erstellen Sie ein Abfrage, die folgende Informationen liefert:
-
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPDIPD
Übungsblatt 1Übungsblatt 1
Namen der FlNamen der Flüüsse, ihre Lsse, ihre Läänge, Flunge, Flußß in den sie min den sie müünden, nden, dessen Ldessen Läänge, sofern der Flunge, sofern der Flußß in einen anderen min einen anderen müündet, ndet, der kder küürzer ist als er selbst, sortiert nach Namen der rzer ist als er selbst, sortiert nach Namen der FlFlüüssesse
select r1.name, r1.length, r2.name, r2.length from select r1.name, r1.length, r2.name, r2.length from river r1, river r2 where r1.river is not null river r1, river r2 where r1.river is not null and r1.river = r2.name and r2.length < r1.length and r1.river = r2.name and r2.length < r1.length order by r2.nameorder by r2.name
Erstellen Sie ein Abfrage, die folgende Informationen liefert:Erstellen Sie ein Abfrage, die folgende Informationen liefert:
Übung 1: SQLFragen aus der VorlesungFragen aus der VorlesungFragen aus der VorlesungÜbungsblatt 1Übungsblatt 1Übungsblatt 1Übungsblatt 1Übungsblatt 1Übungsblatt 1Übungsblatt 1Übungsblatt 1Übungsblatt 1