Dies ist eine alte Version des Dokuments!
Daten mit SQL abfragen
Daten abfragen
Das SELECT-Statement ist das am häufigsten verwendete SQL-Kommando. Mit
SELECT
können Daten in verschiedenen Varianten ausgegeben werden:
- alle Spalten
- bestimmte Spalten
- mit Filterbedingungen
- sortiert
Alle Spalten ausgeben
Die einfachste Abfrageform ist:
SELECT * FROM imdb_top_1000;
Dies gibt alle Spalten und alle Zeilen der Tabelle zurück.
Beispielauszug (die tatsächliche Tabelle hat noch mehr Spalten):
Bestimmte Spalten ausgeben
Wenn nur bestimmte Daten benötigt werden, empfiehlt es sich, die Spalten explizit anzugeben:
SELECT Series_Title, Released_Year, IMDB_Rating FROM imdb_top_1000;
Beispielauszug:
Filmtitel | Jahr | Bewertung |
---|---|---|
The Godfather | 1972 | 9.2 |
Interstellar | 2014 | 8.6 |
The Green Mile | 1999 | 8.6 |
Whiplash | 2014 | 8.5 |
Ausgabe sortieren
Mit
ORDER BY
können Ergebnisse sortiert werden.
-- Die Filme nach Erscheinungsjahr sortieren SELECT Series_Title, Released_Year, IMDB_Rating FROM imdb_top_1000 ORDER BY Released_Year ASC;
Oder umgekehrt, die besten Filme zuerst:
SELECT Series_Title, Released_Year, IMDB_Rating FROM imdb_top_1000 ORDER BY IMDB_Rating DESC;
Abfragen filtern
Nicht immer sind alle Daten interessant – mit
WHERE
können Bedingungen definiert werden.
-- Alle Filme mit Bewertung über 8.5 SELECT Series_Title, IMDB_Rating FROM imdb_top_1000 WHERE IMDB_Rating > 8.5;
Ergebnis (Auszug):
Filmtitel | Bewertung |
---|---|
The Godfather | 9.2 |
The Green Mile | 8.6 |
Interstellar | 8.6 |
Operatoren
Im
WHERE
-Statement können verschiedene Operatoren eingesetzt werden, um die Auswahl von Datensätzen einzuschränken.
- Vergleichsoperatoren:
= , < , > , <= , >= , <>
→ werden vor allem bei Zahlen verwendet.
Beispiel: nur Filme anzeigen, die **vor 1970** erschienen sind.
SELECT Series_Title, Released_Year FROM imdb_top_1000 WHERE Released_Year < 1970;
—
- Logische Verknüpfungen:
AND, OR, NOT
→ verbinden mehrere Bedingungen.
Beispiel: Filme von Regisseuren //Christopher Nolan// **oder** //Francis Ford Coppola//:
SELECT Series_Title, Director FROM imdb_top_1000 WHERE Director = 'Christopher Nolan' OR Director = 'Francis Ford Coppola';
Mit
AND
kann man Bedingungen kombinieren, z. B.:
-- Alle Sci-Fi-Filme von Christopher Nolan SELECT Series_Title, Director, Genre FROM imdb_top_1000 WHERE Director = 'Christopher Nolan' AND Genre LIKE '%Sci-Fi%';
—
- IN-Operator:
IN, NOT IN
→ vereinfacht Abfragen mit vielen Bedingungen.
-- Filme von Nolan oder Coppola SELECT Series_Title, Director FROM imdb_top_1000 WHERE Director IN ('Christopher Nolan', 'Francis Ford Coppola');
Das Gegenteil mit
NOT IN
:
-- Alle Filme, die NICHT von Nolan oder Coppola sind SELECT Series_Title, Director FROM imdb_top_1000 WHERE Director NOT IN ('Christopher Nolan', 'Francis Ford Coppola');
Zusammenfassung
SELECT
– bestimmt die Spalten
FROM
– bestimmt die Tabelle
WHERE
– filtert die Zeilen
ORDER BY
– sortiert die Ergebnisse
Mit diesen Befehlen sind die wichtigsten Grundlagen für Abfragen in relationalen Datenbanken gelegt.