Arbeitsblatt Erste Abfragen

Werbung
Informatik 9, Datenbanken
Abfragen: Grundbausteine
Abfragen sollen gezielt Teile der Information wiedergeben. Das Ergebnis einer solchen
Operation ist eine ___________________________________.
Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:
______________
_____________
Eine ________________ bedeutet eine Auswahl von Datensätzen (Zeilen) in der Datentabelle
mit bestimmten Eigenschaften (z. B. Sparte = ’Lebensmittel’).
Eine _________________ wählt bestimmte Spalten in der Datentabelle aus (z. B. Kunde und
Warenbezeichnung).
In der Regel werden beide Grundverfahren miteinander kombiniert.
Alle Abfragen werden in der werkzeugunabhängigen Datenbankabfrage- und
Datenmanipulationssprache SQL (engl. „Structured Query Language“) formuliert.
Informatik 9, Datenbanken
Abfragen, Grundbausteine: SQL
Beispiel:
Erstelle eine Liste aller Waren, die mehr als 5 € gekostet haben, mit ihren Preisen.
SELECT Warenbezeichnung, Preis
FROM einkauf
WHERE Preis > 5;
Weitere Beispiele für Bedingungen:
Warenbezeichnung = ’Kinokarte’
NOT(Sparte = ’Unterhaltung’)
(Kaufdatum = #8/26/2007#) AND (Zahlung <> ’bar’)
(Sparte = ’Kleider’) OR (Sparte = ’Sport’)
Mit dem Zusatz
ORDER BY Preis
wird die Ergebnistabelle nach der genannten Spalte aufsteigend geordnet. Der Zusatz
ORDER BY Preis DESC
ordnet in absteigender Reihenfolge.
Informatik 9, Datenbanken
Abfragen, Grundbausteine: Aufgaben
Beantworte die folgenden Aufgaben mit direkt formulierten SQL-Abfragen an die Datenbank
Kaufdaten. Notiere dir den SQL-Abfragetext.
1.
Liste die Bezeichnungen aller gekauften Waren mit ihren Preisen auf.
2.
Liste alle Kosmetikartikelbezeichnungen auf.
3.
Gib eine Liste aller Waren in alphabetischer Reihenfolge aus.
4.
Liste die Daten aller Einkäufe vom 18.3.2006 auf.
5.
Welche Produkte hat Nicole Gütling eingekauft?
6.
Welche Lebensmittel wurden vor dem 1.1.2007 gekauft?
7.
Welche Waren, die billiger als 20 € waren, wurden nicht bar bezahlt?
8.
Liste alle Waren auf, die in der Zeit vom 13.9.07 bis 20.9.07 gekauft und mit Karte
bezahlt wurden.
9.
Welches Produkt war am teuersten?
10. Welche Waren wurden bei „Brutto Nürnberg“ gekauft? Liste sie in alphabetischer
Reihenfolge auf.
11. Welche Kunden haben am 5.9.2007 bei „Brutto Nürnberg“ gekauft?
12. Martina Groß und Oliver Gross wohnen im gleichen Haus. Liste alle Waren auf, die sie
gekauft haben.
13. Liste alle Waren jeweils mit dem zugehörigen Preis und Geschäft auf, die von
männlichen Kunden für mehr als 20 € gekauft wurden. Die Liste soll nach den Preisen
sortiert sein. Lebensmittel sollen ausgeschlossen werden.
14. Wer hat am meisten Geld ausgegeben?
Probiere aus, ob ein Datum auch in einem anderen Format als oben genannt (#8/26/2007#)
angegeben werden kann.
Muss die Spalte, nach der geordnet wird, in der SELECT-Klausel vorkommen?
Kann auch nach mehreren Spalten geordnet werden?
Welche Auswirkung hat die Reihenfolge der angegebenen Sortierspalten?
Informatik 9, Datenbanken
Abfragen: Grundbausteine (Lösung für MSAccess)
Abfragen sollen gezielt Teile der Information wiedergeben. Das Ergebnis einer solchen
Operation ist eine neue Tabelle.
Der Aufbau der Ergebnistabelle wird durch zwei Grundverfahren festgelegt:
Projektion
Selektion
Eine Selektion bedeutet eine Auswahl von Datensätzen (Zeilen) in der Datentabelle mit
bestimmten Eigenschaften (z. B. Sparte = ’Lebensmittel’).
Eine Projektion wählt bestimmte Spalten in der Datentabelle aus (z. B. Kunde und
Warenbezeichnung).
In der Regel werden beide Grundverfahren miteinander kombiniert.
Alle Abfragen werden in der werkzeugunabhängigen DatenbankabfrageDatenmanipulationssprache SQL (engl. „Structured Query Language“) formuliert.
und
Informatik 9, Datenbanken
Abfragen, Grundbausteine: SQL (Lösung für MSAccess)
SELECT Warenbezeichnung, Preis
Auswahl bestimmter
Spalten (Projektion)
FROM einkauf
WHERE Preis > 5;
Auswahl der Datensätze
(Selektion) über eine Bedingung
Weitere Beispiele für Bedingungen:
Warenbezeichnung = ’Kinokarte’
NOT(Sparte = ’Unterhaltung’)
(Kaufdatum = #8/26/2007#) AND (Zahlung <> ’bar’)
(Sparte = ’Kleider’) OR (Sparte = ’Sport’)
Mit dem Zusatz
ORDER BY Preis
wird die Ergebnistabelle nach der genannten Spalte aufsteigend geordnet. Der Zusatz
ORDER BY Preis DESC
ordnet in absteigender Reihenfolge.
Abfragen, Grundbausteine: Aufgaben (Lösungen)
Beantworte die folgenden Aufgaben mit direkt formulierten SQL-Abfragen an die Datenbank
Kaufdaten. Notiere dir den SQL-Abfragetext.
1. Liste die Bezeichnungen aller gekauften SELECT Warenbezeichnung, Preis
Waren mit ihren Preisen auf.
FROM einkauf;
2. Liste alle Kosmetikartikelbezeichnungen SELECT Warenbezeichnung
auf.
FROM einkauf
WHERE Sparte = ’Kosmetik’;
3. Gib eine Liste aller Waren in
SELECT Warenbezeichnung
alphabetischer Reihenfolge aus.
FROM einkauf
ORDER BY Warenbezeichnung;
Informatik 9, Datenbanken
4. Liste die Daten aller Einkäufe vom
18.3.2006 auf.
5. Welche Produkte hat Nicole Gütling
eingekauft?
6. Welche Lebensmittel wurden vor dem
1.1.2007 gekauft?
7. Welche Waren, die billiger als 20 €
waren, wurden nicht bar bezahlt?
8. Liste alle Waren auf, die in der Zeit vom
13.9.07 bis 20.9.07 gekauft und mit Karte
bezahlt wurden.
9. Welches Produkt war am teuersten?
10. Welche Waren wurden bei „Brutto
Nürnberg“ gekauft? Liste sie in
alphabetischer Reihenfolge auf.
11. Welche Kunden haben am 5.9.2007 bei
„Brutto Nürnberg“ gekauft?
12. Martina Groß und Oliver Gross wohnen
im gleichen Haus. Liste alle Waren auf,
die sie gekauft haben.
SELECT *
FROM einkauf
WHERE Kaufdatum = #3/18/2006#;
Das Zeichen „*“ steht abkürzend für die Liste
aller Spaltennamen.
SELECT Warenbezeichnung
FROM einkauf
WHERE Kunde = ’Nicole Gütling’;
SELECT Warenbezeichnung
FROM einkauf
WHERE Sparte = ’Lebensmittel’ AND
Kaufdatum < #1/1/2007#;
SELECT Warenbezeichnung
FROM einkauf
WHERE Preis < 20 AND
Zahlungsart <> ’bar’;
SELECT Warenbezeichnung
FROM einkauf
WHERE Kaufdatum >= #9/13/2007# AND
Kaufdatum <= #9/20/2007# AND
Zahlungsart = ’Karte’;
SELECT Warenbezeichnung
FROM einkauf
ORDER BY Preis DESC;
SELECT Warenbezeichnung
FROM einkauf
WHERE Geschäft = ’Brutto Nürnberg’
ORDER BY Warenbezeichnung;
SELECT Kunde
FROM einkauf
WHERE Geschäft = ’Brutto Nürnberg’ AND
Kaufdatum = #9/5/2007#;
SELECT Warenbezeichnung
FROM einkauf
WHERE Kunde = ’Martina Groß’ OR
Kunde = ’Oliver Gross’;
SELECT Warenbezeichnung, Preis, Geschäft
FROM einkauf
WHERE Geschlecht = ’m’ AND Preis > 20
AND Sparte <> ’Lebensmittel’
ORDER BY Preis;
13. Liste alle Waren jeweils mit dem
zugehörigen Preis und Geschäft auf, die
von männlichen Kunden für mehr als 20 €
gekauft wurden. Die Liste soll nach den
Preisen sortiert sein. Lebensmittel sollen
ausgeschlossen werden.
14. Wer hat am meisten Geld ausgegeben?
SELECT Kunde, Preis
FROM einkauf
ORDER BY Kunde;
Diese Lösung erfordert zum jetzigen Zeitpunkt eine Auswertung per Hand und motiviert zur Einführung der Aggregatfunktionen.
Möglich ist es auch, nach „Preis“ absteigend
zu ordnen.
Informatik 9, Datenbanken
Probiere aus, ob ein Datum auch in einem anderen Format als oben genannt ( #8/26/2007# )
angegeben werden kann. (produktspezifisch)
Muss die Spalte, nach der geordnet wird, in der SELECT-Klausel vorkommen? (nein)
Kann auch nach mehreren Spalten geordnet werden? (ja)
Welche Auswirkung hat die Reihenfolge der angegebenen Sortierspalten? (Legt 1., 2., …
Sortierkriterium fest.)
Herunterladen