Tutorial - Wetterdaten und Datenbanken - Teil 4.1 - Abfragen mit SQL

Teil 4.1 - Abfragen mit SQL


Achtung: Neue und aktualisierte Versionen der Tutorials finden Sie hier:

http://www.pscl.ch


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


Die wichtigsten Funktionen sind avg, min, max, sum und count. Sie sind eigentlich nur mit Gruppen sinnvoll. (siehe nächster Abschnitt: Gruppen).

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. 
Sollen Beispielsweise die Jahresdurchschnittstemperaturen ermittelt werden, müssen die Jahre gruppiert werden.

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


Wichtig: Werden die obigen "Klauseln" kombiniert, muss eine bestimmte Reihenfolge eingehalten werden.

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