Informationsverarbeitung 2 |
Samstag, 22. März 2008
Aufgabe 2 - SQL
Thomas.Haselberger.Uni-Linz, 16:27h
Bei unserer zweiten Aufgabe geht es darum sich mit SQL wieder vertraut zu machen und den eigenen Wissensstand zu dokumentieren. Dazu werde ich nun fünf SQL-Abfragen durchführen und beschreiben, deren Schwierigkeitsgrad zunimmt.
Abfrage 1: Zum Einstieg eine simple Abfrage aller Bücher, über die wir verfügen, alphabetisch sortiert nach dem Titel: SELECT * FROM Buch ORDER BY Titel Abfrage 2: Als nächstes möchte ich den Titel + Bestand jener Bücher wissen, bei denen der Lagerbestand unter 5 Stück ist, um diese nachzubestellen. SELECT Buch.Titel, Buch.Bestand FROM Buch WHERE Buch.Bestand < 5 Abfrage 3: Jetzt interessiert mich, welche Bücher wir zum Thema Informatik haben (wobei ich hier vereinfacht annehme, dass bei diesen Büchern irgendwo im Titel „Informatik“ vorkommt), von welchem Verlage (inkl. dessen Daten) wir die jeweiligen Bücher beziehen und wie viel das Buch jeweils kostet. Zuerst habe ich folgende Abfrage geschrieben: SELECT Buch.Titel, Buch.Preis, Buch.Verlag, Verlag.Name, Verlag.Strasse, Verlag.Plz WHERE Buch.Titel like '%Informatik%' AND Buch.Verlag = Verlag.Kurzbezeichnung Das Ergebnis war, dass ich keines hatte. Denn ich hatte hier die FROM-Klausel vergessen und somit wusste der Computer nicht woher er die Daten beziehen sollte. Die korrigierte und richtige Abfrage lautet daher: SELECT Buch.Titel, Buch.Preis, Buch.Verlag, Verlag.Name, Verlag.Strasse, Verlag.Plz FROM Buch, Verlag WHERE Buch.Titel like '%Informatik%' AND Buch.Verlag = Verlag.Kurzbezeichnung Abfrage 4: Mit der nächsten Abfrage ermittle ich, welche Kunden im letzten Jahr bei mir Bücher bestellt haben. Dies mag zwar auf den ersten Blick nicht allzu schwierig klingen, doch Abfragen mit Datumsangaben stellen sich meines Erachtens oft als äußerst hartnäckig dar. (Anm.: da die Datenbankeinträge bereits vor längerer Zeit erstellt wurde und für 2007 keine Bestellungen eingetragen wurden gilt bei mir 2001 als das letzte Jahr) SELECT Kunde.Nr, Kunde.Nachname, Auftrag.Datum FROM Kunde, Auftrag WHERE Kunde.Nr = Auftrag.Nr AND Auftrag.Datum > '2001-01-01' ORDER BY Auftrag.Datum DESC Abfrage 5: Meine letzte Abfrage soll zeigen, wie oft und um welchen Betrag der Kunde mit der Kundennummer 10 bislang bei uns Bücher bestellt hat. Nach einigen Versuchen (und Nachlesen der Group-by-Funktion) bin ich auf folgendes – hoffentlich korrektes – Ergebnis gekommen: SELECT Kunde.Nr AS Kundennummer, Kunde.Nachname, Count(Auftrag.Nr) AS Bestellungsanzahl, SUM(Auftragspos.Menge*Buch.Preis) AS Bestellsumme from Kunde, Auftrag, Auftragspos, Buch WHERE Kunde.Nr = Auftrag.Kundennummer AND Auftrag.Nr = Auftragspos.Auftragsnummer AND Auftragspos.Buchnummer = Buch.Nr AND Kunde.Nr = 10 GROUP BY Kunde.Nr ... comment |
Online for 6109 days
Last update: 2008.06.17, 16:09 status
You're not logged in ... login
menu
search
calendar
recent updates
Beispielklausur
1. Regionen wo überdurchschnittliche Gesamtumsätze Select... by Thomas.Haselberger.Uni-Linz (2008.06.17, 16:09) Aufgabe 5 und 6 - Geschäftsmodell-Redesign
Geschäftsmodell – Redesign 1. Aufgabe des... by Thomas.Haselberger.Uni-Linz (2008.06.11, 11:42) Tutorium, 29.4.2008,...
Buchtitel: by Thomas.Haselberger.Uni-Linz (2008.04.29, 12:54) Tutorium, 29.4.2008
1. Beispiel: Auftragssuche nach Kundennummern 2 by Thomas.Haselberger.Uni-Linz (2008.04.29, 12:37) Aufgabe 4 - XML
Da meine Matrikelnummer 0555410 ist, habe ich folgende... by Thomas.Haselberger.Uni-Linz (2008.04.23, 14:53) |