SELECT-Anweisung
Completion requirements
Daten aus Tabellen abfragen
In der sehr verkürzten Syntax kann diese Anweisung so aussehen:| SELECT | wähle |
| Feldliste | die angegebenen Felder (mehrere durch Komma getrennt) |
| FROM | der Tabelle |
| Tabelle | Tabellennahme (mehrere durch Komma getrennt) |
Statt der Feldliste können sie auch einen Stern * angeben. Dann sind alle Felder der Tabelle
Beispiele (Verleger)
Selektion aller Felder der Tabelle Titel
SELECT * FROM TitelSelektion der Felder A_id und A_nname der Tabelle Autoren
SELECT A_id, A_nname FROM Autoren
Erweiterung mit der WHERE-Klausel
| SELECT | wähle |
| Feldliste | die angegebenen Felder (mehrere durch Komma getrennt) |
| FROM | der Tabelle |
| Tabelle | Tabellennahme (mehrere durch Komma getrennt) |
| [WHERE] | wobei |
| Bedingung | Bedingung, die einen logischen Wert (True, False) zum Ergebnis haben muss |
| [AND|OR] | und/oder |
| Bedingung | Bedingung, die einen logischen Wert (True, False) zum Ergebnis haben muss |
Beispiele (Verleger)
Alle Titel aus dem Gebiet business
SELECT * FROM Titel WHERE Gebiet = 'business'Nur die Felder A_id und A_nname aller Autoren, deren Wohnort Oakland ist
SELECT A_id, A_nname FROM Autoren WHERE Ort = 'Oakland'Alle Titel aus dem Gebiet business und deren Preis höher als 10 € ist
SELECT * FROM Titel WHERE Gebiet = 'business' AND Preis > 10
Suchen mit Wildcards
Über Wildcards können unscharfe Selektionskriterien erstellt werden.| SELECT | wähle |
| Feldliste | die angegebenen Felder (mehrere durch Komma getrennt) |
| FROM | der Tabelle |
| Tabelle | Tabellennahme (mehrere durch Komma getrennt) |
| [WHERE] | wobei |
| Feld | Feld der Tabelle |
| [NOT] | optionale Verneinung |
| LIKE | so ähnlich wie |
| Muster | gesuchtes Muster mit Wildcards % steht für eine Zeichenkette beliebiger Länge _ steht für ein einzelnes Zeichen |
Beispiele (Verleger)
Alle Titel, die mit "T" beginnen
SELECT * FROM Titel WHERE Titel LIKE 'T%'Alle Titel, die NICHT mit "The" beginnen
SELECT * FROM Titel WHERE Titel NOT LIKE 'The%'Alle Titel, die an der 3. Stelle im Titel ein "e" aufweisen
SELECT * FROM Titel WHERE Titel LIKE '__e%'
Sortieren des Ergebnisses
Eine Ergebnismenge kann sortiert werden, indem der bekannten SELECT-Anweisung die ORDER BY-Klausel hinzugefügt wird.| SELECT | wähle |
| Feldliste | die angegebenen Felder (mehrere durch Komma getrennt) |
| FROM | der Tabelle |
| Tabelle | Tabellennahme (mehrere durch Komma getrennt) |
| [WHERE] | wobei |
| Bedingung | Bedingung, die einen logischen Wert (True, False) zum Ergebnis haben muss |
| [AND|OR] | und/oder |
| Bedingung | Bedingung, die einen logischen Wert (True, False) zum Ergebnis haben muss |
| [ORDER BY] | sortiere das Ergebnis nach |
| Tabellenfeld | das Feld, nachdem sortiert werden soll |
| [DESC|ASC] | DESC = absteigende Sortierreihenfolge ASC = aufsteigende Sortierreihenfolge (Voreinstellung) |
Beispiele (Verleger)
Alle Titel des Gebiets business, sortiert nach dem Titel
SELECT * FROM Titel WHERE Gebiet = 'business' ORDER BY TitelNur die Felder A_id und A_nname aller Autoren, deren Wohnort Frankfurt ist, absteigend sortiert nach dem Nachnamen
SELECT A_id, A_nname FROM Autoren WHERE Ort = 'Oakland' ORDER BY A_nname DESC
Berechnung in Abfragen
Mit den Aggregatfunktionen können Berechnungen innerhalb einer Abfrage durchgeführt werden. Häufig verwendete Aggregatfunktionen sind AVG (engl. average = Durchschnitt), MAX (größter Wert), MIN (kleinster Wert), SUM (Summe), COUNT (Anzahl der gruppierten Zeilen). Diese Funktionen werden häufig mit der unten beschriebenen GROUP BY-Klausel verwendet.Die Syntax der Aggregatfunktionen wird am Beispiel der SUM-Funktion gezeigt:
| SELECT | wähle |
| SUM (Feldname) | Summe bilden über die Spalte Feldname (der Feldname muss in runden Klammern stehen) |
| AS Name | wird als SpalteName angezeigt(diese Spalte wird zusätzlich in die Abfrage aufgenommen) |
| FROM | der Tabelle |
| Tabelle | Tabellennahme (mehrere durch Komma getrennt) |
Beispiel (Verleger)
Mit Hilfe der SUM-Funktion sollen die Gesamtverkäufe aller verkauften Titel bestimmt werden.
SELECT SUM(Verkäufe) AS Gesamtverkäufe FROM Titel
Gruppieren von Datensätzen
Die GROUP BY-Klausel bewirkt, dass alle Datensätze zusammengefasst werden, deren Feldinhalt dem angegebenen Wert entspricht. Durch die HAVING-Klausel kann die Liste nochmals nach den angegebenen Bedingungen selektiert werden.| ... | |
| GROUP BY | gruppiert Datensätze mit gleichen Feldinhalten des Feldes |
| Feldname | Tabellenfeld |
| HAVING | welche |
| Bedingung | Bedingung, die einen logischen Wert (True, False) zum Ergebnis haben muss |
| [AND|OR] | und/oder |
| Bedingung | Bedingung, die einen logischen Wert (True, False) zum Ergebnis haben muss |
Beispiel (Verleger)
Die Titel, die nicht zum Gebiet "business" gehören, werden nach Gebieten gruppiert und die Anzahl der Titel pro Gebiet werden absteigend sortiert angezeigt.
SELECT Gebiet, Count(Titel) AS AnzahlTitel FROM Titel GROUP BY Gebiet HAVING Gebiet <> 'business' ORDER BY Count(Titel) DESC
Last modified: Wednesday, 14 March 2018, 12:10 PM