Upload
skip
View
24
Download
0
Embed Size (px)
DESCRIPTION
Übung 1: SQL. Übungen finden bei Bedarf anstelle der Vorlesungen statt Fragen? [email protected]. Fragen aus der Vorlesung. Wie sieht eine äquivalente Anfrage zu select Titel from Bücher where ISBN in (select ISBN from Empfiehlt) ohne Schachtelung aus? - PowerPoint PPT Presentation
Citation preview
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPD IPD
Ü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] [email protected]
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPD IPD
Fragen aus der VorlesungFragen aus der Vorlesung
Wie sieht eine äquivalente Anfrage zuWie sieht eine äquivalente Anfrage zu select 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 IPD IPD
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 Ergebnis
count()
min()
max()
sum() null
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPD IPD
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 IPD IPD
Übungsblatt 1Übungsblatt 1
Übung 1: SQL
Vorlesung Datenbankeinsatz WS 04/05 Vorlesung Datenbankeinsatz WS 04/05 IPD IPD
Übungsblatt 1Übungsblatt 1
Namen der Kontinente, Namen der darin Namen der Kontinente, Namen der darin gelegenen Länder, sortiert nach Namen der gelegenen Länder, sortiert nach Namen der Kontinente und darin nach Namen der LänderKontinente und darin nach Namen der Länder
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 IPD IPD
Übungsblatt 1Übungsblatt 1
Namen der Kontinente, Anzahl der darin Namen der Kontinente, Anzahl der darin gelegenen Länder, sortiert nach Namen der gelegenen Lä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 IPD IPD
Übungsblatt 1Übungsblatt 1
Namen der Länder, Anzahl ihrer Nachbarländer, Namen der Länder, Anzahl ihrer Nachbarländer, sortiert nach Namen der Ländersortiert nach Namen der Länder
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 IPD IPD
Übungsblatt 1Übungsblatt 1
Namen der Länder, Namen ihrer Hauptstädte, Einwohnerzahl Namen der Länder, Namen ihrer Hauptstädte, Einwohnerzahl des Landes, Einwohnerzahl der Hauptstadt, Anteil der des Landes, Einwohnerzahl der Hauptstadt, Anteil der Bevölkerung der Hauptstadt an der Gesamtbevölkerung in Bevölkerung der Hauptstadt an der Gesamtbevölkerung in %, sortiert nach Namen der Länder%, sortiert nach Namen der Länder
select co.name, ci.name, co.population, select co.name, ci.name, co.population, ci.population, ceil((ci.population / ci.population, ceil((ci.population / co.population) * 100) as CapPopPerc from country co.population) * 100) as CapPopPerc from country co, city ci where ci.name = co.capital and co.cid co, city ci where ci.name = co.capital and co.cid = ci.cid order by co.name= ci.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 IPD IPD
Übungsblatt 1Übungsblatt 1
Namen der Länder, Anzahl der Städte im Land, Einwohnerzahl Namen der Länder, Anzahl der Städte im Land, Einwohnerzahl des Landes, Einwohnerzahl der Städte zusammen, Anteil des Landes, Einwohnerzahl der Städte zusammen, Anteil der Bevölkerung der Städte an der Gesamtbevölkerung der Bevölkerung der Städte an der Gesamtbevölkerung des Landes in %, sortiert nach Namen der Länderdes Landes in %, sortiert nach Namen der Länder
select co.name, count(ci.name), co.population, select co.name, count(ci.name), co.population, sum(ci.population), ceil((sum(ci.population) / sum(ci.population), ceil((sum(ci.population) / co.population) * 100) from country co, city ci co.population) * 100) from country co, city ci where co.cid = ci.cid group by co.name, where co.cid = ci.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 IPD IPD
Übungsblatt 1Übungsblatt 1
Namen der Länder, Anzahl der Städte im Land, Einwohnerzahl des Landes, Namen der Länder, Anzahl der Städte im Land, Einwohnerzahl des Landes, Einwohnerzahl der Städte, Anteil der Bevölkerung der Städte an der Einwohnerzahl der Städte, Anteil der Bevölkerung der Städte an der Gesamtbevölkerung des Landes in %, aber nur für verstädterte Länder Gesamtbevölkerung des Landes in %, aber nur für verstädterte Länder (Anteil der Stadt- an der Gesamtbevölkerung >= 50%), sortiert nach (Anteil der Stadt- an der Gesamtbevölkerung >= 50%), sortiert nach Namen der LänderNamen der Länder
select co.name, count(ci.name), co.population, select co.name, count(ci.name), co.population, sum(ci.population), ceil((sum(ci.population) / co.population) sum(ci.population), ceil((sum(ci.population) / co.population) * 100) from country co, city ci where co.cid = ci.cid group by * 100) from country co, city ci where co.cid = ci.cid group by co.name, co.population having (ceil((sum(ci.population) / co.name, co.population having (ceil((sum(ci.population) / co.population) * 100) >= 50 and count(ci.name) > 1) order by co.population) * 100) >= 50 and count(ci.name) > 1) order by co.name 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 IPD IPD
Übungsblatt 1Übungsblatt 1
Namen der Länder, Namen der Nachbarländer mit gleicher Namen der Länder, Namen der Nachbarländer mit gleicher Regierungsform, Regierungsform beider Länder, sofern das Regierungsform, Regierungsform beider Länder, sofern das Land ein Nachbarland mit gleicher Regierungsform hat, Land ein Nachbarland mit gleicher Regierungsform hat, sortiert nach Namen der Länder und darin nach Namen der sortiert nach Namen der Länder und darin nach Namen der NachbarländerNachbarländer
select c1.name, c2.name, c2.government from country select c1.name, c2.name, c2.government from country c1, country c2, borders b where ((b.country1 = c1, country c2, borders b where ((b.country1 = c1.cid and b.country2 = c2.cid) or (b.country2 = c1.cid and b.country2 = c2.cid) or (b.country2 = c1.cid and b.country1 = c2.cid)) and (c1.government c1.cid and b.country1 = c2.cid)) and (c1.government = c2.government) order by c1.name, c2.name= c2.government) order 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 IPD IPD
Übungsblatt 1Übungsblatt 1
Namen der Flüsse, ihre Länge, Fluß in den sie münden, Namen der Flüsse, ihre Länge, Fluß in den sie münden, dessen Länge, sofern der Fluß in einen anderen mündet, dessen Länge, sofern der Fluß in einen anderen mündet, der kürzer ist als er selbst, sortiert nach Namen der der kürzer ist als er selbst, sortiert nach Namen der FlüsseFlüsse
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: