Kodokon kodokon.com

SELECT und WHERE: Daten lesen und filtern

Lerne, mit SELECT Spalten auszuwählen, mit WHERE Zeilen zu filtern und mit LIKE nach Mustern zu suchen.

8 Min. · 3 Fragen

Diese Lektion in Kodokon öffnen

Wenn du eine neue Sitzung beginnst, führe zuerst das CREATE TABLE + INSERT-Skript aus Lektion 1 erneut aus. Die SELECT-Query liest Daten, ohne sie jemals zu verändern. Nach dem Wort SELECT listest du die anzuzeigenden Spalten auf: Das nennt man Projektion (die Auswahl der Spalten). Nach FROM gibst du die zu lesende Tabelle an.

SQL
SELECT title, price FROM books;
Projektion: nur die Spalten title und price

Um nur bestimmte Zeilen zu behalten, füge eine WHERE-Klausel gefolgt von einer Bedingung hinzu. Eine Bedingung vergleicht eine Spalte mit einem Wert über einen Operator: = (gleich), <> oder != (ungleich), < (kleiner als), > (größer als), <= und >=. Zur Erinnerung: Textwerte werden zwischen einfache Anführungszeichen geschrieben.

SQL
SELECT * FROM books WHERE genre = 'sf';

SELECT title, year FROM books WHERE year < 1950;
Die erste liefert 4 Zeilen, die zweite ebenfalls 4

Du kannst mehrere Bedingungen kombinieren: AND verlangt, dass beide wahr sind, OR verlangt mindestens eine, und NOT kehrt eine Bedingung um. Wenn du dir bei der Rangfolge unsicher bist, setze Klammern.

SQL
SELECT title, price FROM books
WHERE genre = 'sf' AND price < 8;

SELECT title FROM books
WHERE genre = 'conte' OR genre = 'aventure';
AND: 2 Zeilen (1984, Les Robots); OR: 3 Zeilen

Schließlich vergleicht der LIKE-Operator Text mit einem Muster: Der Platzhalter % steht für eine beliebige Zeichenfolge (auch eine leere), und _ steht für genau ein Zeichen. Zum Beispiel bedeutet 'D%' "beginnt mit D" und '%an%' "enthält an".

SQL
SELECT title FROM books WHERE author LIKE 'A%';

SELECT title FROM books WHERE title LIKE 'd%';

SELECT author FROM books WHERE author LIKE 'V_rne';
Autoren, die mit A beginnen, Titel, die mit d beginnen, dann Verne

Wissenscheck

Stelle sicher, dass du die wichtigsten Punkte dieser Lektion behalten hast.

  1. Welche Query zeigt nur die Titel der Bücher an?
    • SELECT * FROM books;
    • SELECT title FROM books;
    • SELECT books FROM title;
  2. Was liefert die Bedingung WHERE price < 7?
    • Die Zeilen, deren Preis strikt kleiner als 7 ist
    • Die Zeilen, deren Preis genau 7 ist
    • Die ersten 7 Zeilen der Tabelle
  3. Worauf passt das Muster LIKE 'D%'?
    • Texte, die den Buchstaben D enthalten
    • Texte, die mit D enden
    • Texte, die mit D beginnen