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
Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).
Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button: