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.
Abfragen, Grundbausteine: SQL Beispiel: Erstelle eine Liste aller Waren, die mehr als 5 gekostet haben, mit ihren Preisen., Preis 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.
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?
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: Selektion Projektion 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 Datenbankabfrage- und Datenmanipulationssprache SQL (engl. Structured Query Language ) formuliert.
Abfragen, Grundbausteine: SQL (Lösung für MSAccess), Preis WHERE Preis > 5; Auswahl bestimmter Spalten (Projektion) 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, Preis Waren mit ihren Preisen auf. ; 2. Liste alle Kosmetikartikelbezeichnungen auf. 3. Gib eine Liste aller Waren in alphabetischer Reihenfolge aus. WHERE Sparte = Kosmetik ; ORDER BY Warenbezeichnung;
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. SELECT * WHERE Kaufdatum = #3/18/2006#; Das Zeichen * steht abkürzend für die Liste aller Spaltennamen. WHERE Kunde = Nicole Gütling ; WHERE Sparte = Lebensmittel AND Kaufdatum < #1/1/2007#; WHERE Preis < 20 AND Zahlungsart <> bar ; WHERE Kaufdatum >= #9/13/2007# AND Kaufdatum <= #9/20/2007# AND Zahlungsart = Karte ; 9. Welches Produkt war am teuersten? ORDER BY Preis DESC; 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. WHERE Geschäft = Brutto Nürnberg ORDER BY Warenbezeichnung; SELECT Kunde WHERE Geschäft = Brutto Nürnberg AND Kaufdatum = #9/5/2007#; WHERE Kunde = Martina Groß OR Kunde = Oliver Gross ;, Preis, Geschäft WHERE Geschlecht = m AND Preis > 20 AND Sparte <> Lebensmittel ORDER BY Preis; 14. Wer hat am meisten Geld ausgegeben? SELECT Kunde, Preis 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.
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.)