Teil 4.1 - Abfragen mit SQL
Hier einige oft benutzte Abfragen kurz erklärt.
1. Spalten umbennenen
Manchmal kann es auch Hilfreich sein, Spalten mit "AS" umzubenennen:
SELECT datetime AS Datum, temp AS Temperatur FROM wettertabelle
2. Das Datum zerlegen
Ein wichtiger Teil dürfte die Eingrenzung der Ausgabe nach Datumskriterien sein. Versuchen wir Datum und Zeit zu trennen und in separaten Spalten auszugeben:
SELECT DATE(datetime), TIME(datetime), temp FROM wettertabelle
Die Ausgabe:
Ein weiteres Beispiel:
SELECT YEAR(datetime), HOUR(datetime), temp FROM wettertabelle
3. Ausgabe mit WHERE eingrenzen
Mit WHERE lässt sich die Ausgabe nach beliebigen Kriterien Filtern:
SELECT DATE(datetime), TIME(datetime), temp FROM wettertabelle
WHERE temp < 0
... hier zusammen mit einer Datumsfunktion
SELECT DATE(datetime), TIME(datetime), temp FROM wettertabelle WHERE YEAR(datetime) = '2013'
... oder beides zusammen:
SELECT DATE(datetime), TIME(datetime), temp FROM wettertabelle WHERE YEAR(datetime) = '2013' AND temp < 0
4. Sortierung
Versuchen wir mit ORDER BY, die niedrigste Temperatur zu finden:
SELECT temp FROM wettertabelle
ORDER BY temp ASC
und jetzt die höchste:
SELECT temp FROM wettertabelle
ORDER BY temp DESC
5. Die Anzahl Zeilen limitieren
Mit LIMIT lässt sich die Ausgabe auf eine bestimmte Anzahl begrenzen.Möchte man die Ausgabe auf z.B 10 Zeilen begrenzen:
SELECT temp FROM wettertabelle
LIMIT 10
(hier werden die Zeilen 1-10 ausgegeben)
Man kann bei LIMIT, auch die "Anfangszeile" mitgeben:
SELECT temp FROM wettertabelle
LIMIT 11,10
(hier werden die Zeilen 11-20 ausgegeben)
6. (Gruppen)Funktionen
Versuchen wir die Durchschnittstemperatur zu ermitteln:
SELECT AVG(temp) FROM wettertabelle
Maximale Temperatur:
SELECT MAX(temp) FROM wettertabelle
Minimale Temperatur:
SELECT MIN(temp) FROM wettertabelle
Anzahl Zeilen:
SELECT COUNT(*) FROM wettertabelle
7. Gruppen
Mit GROUP BY lassen sich leicht Zusammenfassungen erstellen.
SELECT AVG(temp) FROM wettertabelle
GROUP BY YEAR(datetime)
Hier wäre noch die Ausgabe des jeweiligen Jahres sinnvoll:
SELECT YEAR(datetime), AVG(temp) FROM wettertabelle
GROUP BY YEAR(datetime)
Hier werden Monatsdurchschnitte für alle Jahre ausgeben:
SELECT AVG(temp) FROM wettertabelle
GROUP BY MONTH(datetime)
Hier werden Monatsdurchschnitte für jedes Jahr getrennt ausgeben:
SELECT AVG(temp) FROM wettertabelle
GROUP BY YEAR(datetime), MONTH(datetime)
Hier werden Min/Max/Avg für jeden Tag ausgegeben:
SELECT MIN(temp), MAX(temp), AVG(temp) FROM wettertabelle
GROUP BY DATE(datetime)
Achtung 1: Diese Spalte "temp" macht so keinen Sinn.
SELECT temp FROM wettertabelle
GROUP BY YEAR(datetime)
8. Reihenfolge
Für die Aufgezeigten gilt:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT
Weiter mit Teil 4.2 - Abfragen mit PHP
Keine Kommentare:
Kommentar veröffentlichen