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.
DISTINCTlässt nur unterschiedliche Werte zu. So wird "DE, EN, US" angezeigt anstatt "DE, DE, EN, DE, US, EN, US, DE".- Mit
ORDER BYwerden die Ergebnisse nach der Spalte mit entweder aufsteigend (ASC) oder absteigend (DESC) - Mit
GROUP BYwerden Zeilen mit dem selben Wert zusammengefasst. HAVINGwurde für Funktionen eingefügt, daWHEREkeine Möglichkeit dafür bietet- Bedinungen können mit
ANDundORverknüpft werden. - Nutzt man
BETWEEN value AND value, werden die alle Werte dazwischen ausgegeben, falls vorhanden. MitNOTkann dies umgekehrt werden. IN (value, value, value)gibt Zeilen mit diesen Werten, wieder. Es kann mitNOTumgekehrt werden oder auch als Langform mitORgeschrieben 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
);