Select
Der Name entstammt der Ausdrucksweise: "Aus der Ergebnismenge folgende auswählen". Deswegen SELECT. Die Grundanwendungsweise geht so:
Abb 1 "komplettes" (keine Exoten) SELECT-Statement, Argumente in eckigen Klammern sind optional
SELECT
tabellenname1.attribut1,
tabellenname1.attribut2,
tabellenname1.attribut3[,
tabellenname2.attribut1,
tabellenname2.attribut2,
tabellenname2.attribut3]
FROM
tabellenname1
[[LEFT|RIGHT|FULL OUTER|INNER] JOIN
tabellenname2
ON
tabellenname1.fs = tabellenname2.ps]
[WHERE
constraint1
AND
constraint2]
[GROUP BY
attribut1,
attribut2]
[HAVING
Aggregatfunktionen]
[ORDER BY
attribut1,
attribut2 DESC]
[LIMIT [Offset,] Zeilenanzahl]
Grundsätzliches
SELECT wählt die Ergebnisse aus der Ergebnismenge und Tabelle Ihrer Wahl. Es akzeptiert verschiedene mysql-Aggregatfunktionen.
Aggregatfunktionen fassen SELECT-Ergebnisse zusammen, um sie zu zählen oder nur einmal anzuzueigen.
FROM wählt die Tabelle, die man sehen will.
Abb 2 "minimales" SELECT-Statement
SELECT
*
FROM
tabellenname
WHERE
WHERE bietet die Möglichkeit, mehrere Einschränkungen für die Ergebnismenge vorzusehen. Mehrere solcher Einschränkungen lassen sich sowohl mit Klammern gegeneinander abgrenzen, als auch mit AND oder OR miteinander verknüpfen.
Abb 3 SELECT-Statement mit Bedingung: WHERE, auch bekannt als constraint (Einschränkung)
SELECT
*
FROM
tabellenname
WHERE
(
attribut1 = 'wert1'
AND
attribut2 = 'wert2'
)
OR
attribut3 = 'wert3'
GROUP BY
GROUP BY und HAVING sind solche Aggregatfunktionen, naeheres hier.
Abb 4 Aggregatfunktionen garnieren das SELECT-Statement
SELECT
*
FROM
tabellenname
GROUP BY
attribut42
ORDER BY
ORDER BY ermöglicht mehrfaches Sortieren nach Attributwerten hintereinander.
Abb 5 mehrfach Sortieren im SELECT-Statement: Erst nach attribut1 aufsteigend (Standard), dann nach attribut2 absteigend
SELECT
*
FROM
tabellenname
ORDER BY
attribut1,
attribut2 DESC
LIMIT
LIMIT ist weiter bekannt als ledigliche Beschränkung der Ergebnismenge. Es funktioniert aber auch gut mit dem Wert Offset, um ein erstes gewünschtes Ergebnis anzusteuern. So etwas braucht man für Page-Browser, die nacheinander verschiedene Ergebnismengen anzeigen. Vergleiche die Listings von amazon/ebay.
Abb 6 SELECT-Statement mit LIMIT begrenzen: entweder Anzahl der DSe (100) allein oder mit Offset, Argumente in eckigen Klammern sind optional
SELECT
*
FROM
tabellenname
LIMIT
[OFFSET,]100
mysql Workshop Übersicht