SQL-Abfragen (2. Hausübung IV 2)
Aufgabe:
Führen Sie auf SQL.IDV.EDU mindestens 5 Abfragen mittels SQL, mit steigendem Schwierigkeitsgrad durch. Beschreiben Sie das Ziel der jeweiligen Abfrage und dokumentieren Sie die Beschreibung und die entsprechende SQL-Anweisung in Ihrem Weblog.
Lösung:
1. Abfrage: select distinct Vorname from Kunde order by Vorname asc
Ziel der Abfrage ist eine Tabelle mit den Vornamen aller Kunden, wobei wenn ein Vorname öfter vorkommt, dieser nur einmal aufscheinen soll (distinct). Weiters sollen die Vornamen alphabetisch geordnet, also von A-Z gereiht, aufscheinen (order by Vorname asc).
Auszug Ergebnistabelle:
2. Abfrage: select * from Buch where Titel like "%Gitarre%" and Preis between 10 and 30 order by Preis asc
Ziel der Abfrage ist eine Tabelle mit allen Infos über Bücher mit Gitarre im Titel (like %Gitarre%), deren Preis zwischen 10 und 30 liegt (Preis between 10 and 30), geordnet vom billigsten zum teuersten Buch (order by Preis asc).
Auszug Ergebnistabelle:
3. Abfrage: select Titel, Preis from Buch where Titel like 'A%' and Preis<=200 and auslaufend='y' and Bestand>50 order by Titel asc
Ziel der Abfrage ist eine Tabelle bestehend aus zwei Spalten mit Titel und Preis der Bücher, deren Titel mit A beginnt ('A%'), deren Preis kleiner oder gleich 200 ist (Preis<=200), die auslaufen ('y'=yes, 'n'=no) und deren Bestand größer 50 ist (Bestand>50), geordnet nach Titel von vorne nach hinten (order by Titel asc).
Auszug Ergebnistabelle:
4. Abfrage: select Vorname, Nachname, Titel from Kunde, Auftrag, Auftragspos, Buch where Kunde.Nr=Auftrag.Kundennummer and Auftrag.Nr=Auftragspos.Auftragsnummer and Auftragspos.Buchnummer=Buch.Nr
Ziel dieser Abfrage ist eine Tabelle bestehend aus drei Spalten mit Vornamen und Nachnamen der Kunden und den Titeln der Bücher, die sie in Auftrag gegeben haben.
Auszug Ergebnistabelle:
5. Abfrage: select a.*, b.Titel, a.Menge*b.Preis as "Positionspreis" from Auftragspos a, Buch b where a.Buchnummer=b.Nr order by Positionspreis desc
Ziel der Abfrage ist eine Ergebnistabelle bestehend aus 6 Spalten mit allen Infos (Nr, Auftragsnummer, Buchnummer, Menge) der Tabelle Auftragspos (a.*) - markiert als a (Auftragspos a) - und den Titeln aus der Tabelle Buch (b.Titel) - markiert als b (Buch b). Die letzte Spalte stellt den Umsatz (a.Menge*b.Preis) dar, wobei diese Ergebnisspalte in „Positionspreis“ umbenannt werden soll (as "Positionspreis"). Die Spalten sollen nach dem Positionspreis von hinten nach vorne geordnet sein, also vom höchsten Umsatz zum niedrigsten (order by Positionspreis desc).
Auszug Ergebnistabelle:
Bis bald!