SELECT
Erklärung
SELECT [DISTINCT] column1, column2, ...
FROM tablename
[WHERE condition]
[HAVING condition]
[GROUP BY column]
[ORDER BY column ASC | DESC]
Die gespeicherten Daten können mit dem Befehl angezeigt werden.
DISTINCT
lässt nur unterschiedliche Werte zu. So wird "DE, EN, US" angezeigt anstatt "DE, DE, EN, DE, US, EN, US, DE".- Mit
ORDER BY
werden die Ergebnisse nach der Spalte mit entweder aufsteigend (ASC) oder absteigend (DESC) - Mit
GROUP BY
werden Zeilen mit dem selben Wert zusammengefasst. HAVING
wurde für Funktionen eingefügt, daWHERE
keine Möglichkeit dafür bietet- Bedinungen können mit
AND
undOR
verknüpft werden. - Nutzt man
BETWEEN value AND value
, werden die alle Werte dazwischen ausgegeben, falls vorhanden. MitNOT
kann dies umgekehrt werden. IN (value, value, value)
gibt Zeilen mit diesen Werten, wieder. Es kann mitNOT
umgekehrt werden oder auch als Langform mitOR
geschrieben werden.
Funktionen
Sie können nicht in dem "WHERE"-Statement genutzt werden. Dazu wird eine extra Abfrage geschrieben (siehe Bsp.).
MIN()
gibt den kleinsten Wert anAVG()
zeigt den Mittelwert aus allen DatenMAX()
bringt das Maximum zum VorscheinSUM()
addiert alle WerteCOUNT()
zählt alle Werte
mehrere Tabellen
Daten aus mehreren Tabellen werden über die Primärschlüssel miteinander verbunden, um Informationen aus der einen Tabelle, mit Informationen aus der anderen Tabelle zu verknüpfen. Die bis jetzt bekannte schreibweise lautet: . WHERE table1.ID=table2.ID
Beispiele
Beispiel für eine Abfrage bei der jeder Begriff nur einmal auftauchen soll
SELECT DISTINCT Bezeichnung
FROM artikel;
Beispiel für eine Abfrage mit mehreren Werten
SELECT *
FROM artikel
WHERE bezeichnung IN ('Herrenhose', 'Sommerkleid', 'T-Shirt')
Beispiel für eine Abfrage mit zwei Tabellen und einer Funktion
SELECT a.ArtNr, Bezeichnung, (verkaufspreis * Absatz_2019) as `Umsatzstärkster`
FROM artikel as a, verkauf as v
WHERE a.ArtNr = v.ArtNr AND (verkaufspreis * Absatz_2019)=(
SELECT max(verkaufspreis * Absatz_2019)
FROM artikel as a, verkauf as v
WHERE a.ArtNr = v.ArtNr
);