TUT Aufgaben zu AT4 Flashcards
a) Geben Sie alle Kunden aus.
b) Geben Sie alle Kunden aus, die aus Aachen kommen.
SELECT *
FROM Kunde;
SELECT *
FROM Kunde
WHERE Adresse = ‘Aachen‘;
c) Welche Kunden haben keinen Vertrag mit einem Industrieberater?
▪ Geben Sie den Vornamen, Nachnamen und die E-Mail aus.
▪ Erstellen Sie zwei Lösungen, eine mit MINUS und eine mit EXISTS.
SELECT Vorname, Name, Email
FROM Kunde
MINUS
SELECT Vorname, Name, Email
FROM Kunde NATURAL JOIN Vertrag;
SELECT Vorname, Name, Email
FROM Kunde k1
WHERE NOT EXISTS (
SELECT *
FROM Kunde NATURAL JOIN Vertrag
WHERE k1.email = email);
Natural Join
verknüpft die beiden Tabellen über die gleichheit der Felder, in Spalten mit gleichem Namen. Spalten mit gleichem Namen werden im Ergebnis nur einmal angezeigt. Haben die Tabellen keine Spalten mit gleichem Namen, wird der Natural Join automatisch zum Cross Join.
d) Welcher Kunde hat bei allen Industrieberatern einen Vertrag?
SELECT Vorname, Name, Email, COUNT(*)
FROM Kunde NATURAL JOIN Vertrag
GROUP BY Vorname, Name, Email
_HAVING COUNT(*) = (SELECT COUNT(*)_
FROM Industrieberater);
e) Welche Kunden haben Verträge, die vor 2018 angefangen haben?
▪ Geben Sie den Vornamen, Nachnamen und das Startdatum aus.
SELECT Vorname, Name, Startdatum
FROM Kunde NATURAL JOIN Vertrag
WHERE Startdatum < TO_DATE(‘01.01.2018’, ‘DD.MM.RRRR’);
f) Geben Sie alle Berufsberater aus, welche auch Kunden sind.
SELECT *
FROM Berufsberater NATURAL JOIN Kunde;
g) Geben Sie alle Berufsberater mit den Kunden aus, die sie betreuen.
▪ Sortiere absteigend nach der ID des Berufsberaters.
SELECT *
FROM Berufsberater
NATURAL JOIN Betreuung JOIN Kunde USING(Kunden_ID)
ORDER BY Berufsberater_ID DESC;
h) Geben Sie alle Kunden aus. Falls ein Kunde einen Vertrag hat, soll das Startdatum des Vertrags auch ausgegeben werden.
SELECT Vorname, Name, Email, Startdatum
FROM Kunde LEFT OUTER JOIN Vertrag USING (Kunden_ID);