MySQL-SELECT-Anweisung – Varianten und Möglichkeiten
Aufbau der SELECT-Anweisung
Alle Angaben in [] sind optional.
SELECT
[rechenoperation|funktionsauswahl]
spaltenname
FROM tabelle
[WHERE bedingungen]
[GROUP BY spalten]
[HAVING aggregatfunktionen]
[ORDER BY spalte [ASC] [DESC]
[LIMIT [Anfang][Zeilenanzahl]]
Auswahl aller Spalten der Tabelle testadressen
SELECT
*
FROM testadressen;
nur Ausgaben bestimmter Spalten
SELECT
anrede, vorname, nachname
FROM testadressen;
Spaltenüberschriften festlegen
Spaltenüberschriften können umdefiniert werden. Dies geschieht über diesen Aufbau:
SELECT
`nachname` ,
`vorname` ,
geburtsdatum AS 'Geburtstag'
FROM testadressen
Reihenfolge bestimmen
Sortieren nach Spalten
SELECT
`nachname` , `vorname`
FROM testadressen
ORDER BY nachname
Sortieren nach 2 Spalten
SELECT
`nachname` , `vorname`
FROM testadressen
ORDER BY nachname, vorname
Sortierrichtung ändern (eine Spalte aufsteigend, zweite Spalte absteigend)
SELECT
`nachname` , `vorname`
FROM testadressen
ORDER BY nachname DESC , vorname
Bedingungen setzen – WHERE ...
SELECT
`nachname` , `vorname`
FROM testadressen
WHERE vorname = 'Fischer'
Bedingungen verknüpfen (ODER)
SELECT
`nachname` , `vorname`, `anrede`, `familienstand`
FROM testadressen
WHERE anrede = 'Herr' OR familienstand= 'single'
Bedingungen verknüpfen (UND)
SELECT
`nachname` , `vorname`, `anrede`, `familienstand`
FROM testadressen
WHERE anrede = 'Frau' AND familienstand = 'single'
Bedingungen nach Vergleichsoperatoren
| Operator | Funktion |
| = | gleich |
| <> oder != | ungleich |
| < | kleiner als |
| > | größer als |
| <= | kleiner gleich |
| >= | größer gleich |
SELECT
`nachname` , `vorname` , `anrede`, `familienstand`, `geburtsdatum`
FROM testadressen
WHERE geburtsdatum < '1940-01-01'
Alle Personen, deren Nachnamen vor C kommt
SELECT
`nachname` , `vorname` , `anrede`
FROM testadressen
WHERE nachname < 'C'
WHERE-Bedingung mit Klammern – alle Personen mit der Lieblingsfarbe Schwarz ODER Geburtstag zwischen 01.01.1970 und 31.12.1970
SELECT
`nachname`, `vorname`, `anrede`, `geburtsdatum`, `lieblingsfarbe`
FROM testadressen
WHERE `lieblingsfarbe` = 'schwarz'
OR (
`geburtsdatum` >= '1970-01-01'
AND `geburtsdatum` <= '1970-12-31'
)
Aggregatsfunktionen
Können nur auf eine einzige Spalte angewendet werden.
| MIN (Spalte) | Minimum (Nummer, Zeichen, Datum) |
| MAX (Spalte) | Maximum (Nummer, Zeichen, Datum) |
| COUNT(*) | Anzahl (Nummer, Zeichen, Datum) |
| SUM (Spalte) | Summe (Numerisch) |
| AVG (Spalte) | Mittelwert (Numerisch) - (engl. average) |
Durchschnitt vom Gehalt
SELECT
AVG( gehalt )
FROM testadressen
Anzahl von Datensätzen
SELECT
COUNT(*)
FROM `testadressen`
Anzahl von Datensätzen der Singles
SELECT
COUNT(*)
FROM `testadressen`
WHERE `familienstand`='single'
Verdienst aller Singles und Anzahl der Singles
SELECT
COUNT(*), SUM(`gehalt`)
FROM `testadressen`
WHERE `familienstand` = 'single'
Datumsfunktionen
Alle Personen, die im Jahr 1969 geboren sind
SELECT
`nachname`, `vorname`, `anrede`, `geburtsdatum`
FROM testadressen
WHERE YEAR( geburtsdatum ) = 1969
Alle Sonntags-Kinder
SELECT
`nachname` , `vorname` , `anrede` , `geburtsdatum`
FROM testadressen
WHERE WEEKDAY( geburtsdatum ) = 6
Alle Oktober-Kinder
SELECT
`nachname` , `vorname` , `anrede` , `geburtsdatum`
FROM testadressen
WHERE MONTH( geburtsdatum ) = 10
Alle Personen, die zwischen 1969 und 1972 geboren wurden
SELECT
`nachname` , `vorname` , `anrede` , `geburtsdatum`
FROM testadressen
WHERE YEAR( geburtsdatum ) >= 1969
AND YEAR( geburtsdatum ) <= 1972
Gelebte Tage seit Geburtstag bis zum 30.7.2007
SELECT
`nachname` , `vorname` ,
TO_DAYS( '2007-07-30' ) - TO_DAYS( geburtsdatum )
FROM testadressen
Gelebte Tage seit Geburtstag bis zum heutigen Tag mit geänderten Spaltenüberschrift.
(heutiger Tag = engl. current date (CurDate))
SELECT
`nachname` ,
`vorname` ,
TO_DAYS(CurDate()) - TO_DAYS( geburtsdatum ) AS 'gelebte Tage bis heute'
FROM testadressen
Datumsfunktionen
| Funktion | Ergebnis |
| WEEKDAY(datum) | 0-6 (Montag bis Sonntag) |
| DAYofWEEK (datum) | 1-7 (Sonntag bis Samstag) |
| DAYNAME (datum) | Sunday-Saturday |
| WEEK (datum) | Kalenderwoche (Wochenbeginn Sonntag) |
| WEEK (datum, 1) | Kalenderwoche (Wochenbeginn Montag) |
| WEEK (datum, 2) | Kalenderwoche (Wochenbeginn Dienstag) |
| DAYOFMONTH (datum) | Tageswert des Monats |
| MONTH (datum) | Monatswert des Datums |
| DAYOFYEAR (datum) | Tag des Datums ab dem 1.1. |
| QUARTER (datum) | Quartal des Datums (1 bis 4) |
| YEAR (datum) | Jahr des Datums |
Dies und das
Inhaltlich gleiche Werte ausschließen (jeden Wert nur einmal)
SELECT
DISTINCT `lieblingsfarbe`
FROM testadressen
