SQL: BETWEEN, IN & LIKE

Operator: BETWEEN

Der BETWEEN Operator gibt die Datensätze in einen vorgegebenen Intervall aus. Die Werte der BETWEEN-Funktion können Zahlen, Texte oder Daten sein. Die allgemeine BETWEEN Syntax lautet:

SELECT Columnname FROM Table WHERE Columnname BETWEEN value A AND value B;

Beispiel: Ausgabe aller Schauspieler, die eine „actor_ID“ zwischen 10 und 20 haben:

SELECT actor_id, first_name, last_name FROM actor WHERE actor_id BETWEEN 10 AND 20;

Beachte: Bei der Abfrage werden die gewählten Werte der Intervallgrenzen (hier actor_id 10 und 20) mit ausgegeben.

Beispiel mit Texten: Ausgabe aller Schauspieler, die einen Vornamen zwischen „Ben“ und „Cameron“ haben:

SELECT first_name, last_name FROM actor WHERE first_name BETWEEN ‚BEN‘ AND ‚CAMERON‘;

Mit NOT BETWEEN kannst du dir die Datensätze außerhalb des abgefragten Intervalls anzeigen lassen:

SELECT first_name, last_name FROM actor WHERE first_name NOT BETWEEN ‚BEN‘ AND ‚CAMERON‘;

Operator: IN

Der IN Operator ermöglicht eine Ausgabe von mehreren definierten Werten und kann anstatt mehreren OR-Funktionen genutzt werden. Somit vereinfacht der IN Operator die Struktur komplexer OR-Bedingungen. Die allgemeine IN Syntax lautet:

SELECT Columnname FROM Table WHERE Columnname IN (value A, value B, …);

Beispiel: Alle Schauspieler mit den Vornamen Ben, Julia oder Ben auswählen:

SELECT first_name, last_name FROM actor WHERE first_name IN (‚BEN‘,’JULIA‘,’WOODY‘);

Die IN-Funktion prüft also, ob der Vorname eines Schauspielers in der Liste („BEN“,“Julia“,“Woody“) vorkommt und gibt den Datensatz aus, sobald die Bedingung WAHR ist.

Der IN-Operator kann auch Ergebnismengen mit NOT ausschließen. Um bestimmte Ergebnismengen auszuschließen, muss das Wort NOT vor den IN-Operator hinzugefügt werden.

Wichtig: Der IN-Operator kann nicht mit Platzhaltern gefüllt werden. Im folgenden Beispiel siehst du den Beweis. Hier wird für ‚BE_‘ nichts ausgegeben, obwohl der Unterstrich ein Platzhalter darstellen soll:

Operator: LIKE

Der LIKE-Befehl ermöglicht eine Suche mit einem Vergleich auf Textmuster, anstelle eines festen Suchbegriffs wird LIKE auf der Grundlage eines definierten Fragments ausgeführt. Oft wird der LIKE-Befehl in Texten verwendet. Die allgemeine SQL-Syntax lautet:

SELECT Columnname FROM Table WHERE Columnname LIKE muster;

LIKE nutzt die Platzhalter „%“ (Prozent) und „_“ (Unterstrich):

  • Prozent:           entspricht einer beliebigen Anzahl von Zeichen
  • Unterstrich:     entsprich genau einem beliebigen Zeichen

Beispiele:

LIKE mit %-Platzhalter: Alle Schauspieler, die einen Vornamen besitzen der mit „BE“ beginnt:

SELECT first_name, last_name FROM actor WHERE first_name LIKE ‚BE%‘;

LIKE mit _-Platzhalter: Alle Schauspieler, deren Vorname mit „BE“ startet und noch genau einen dritten Buchstaben hat:

SELECT first_name, last_name FROM actor WHERE first_name LIKE ‚BE_‘;

Du kannst auch mehrere Unterstriche nacheinander nutzen um die exakte Anzahl an weiteren Zeichen anzugeben:

Hier z.B. mit 2 Platzhaltern:

Auch der LIKE-Operator kann Datensätze mit NOT ausschließen. Dafür muss nur das Wort NOT vor den LIKE-Operator gesetzt werden:

SELECT first_name, last_name FROM actor WHERE first_name NOT LIKE ‚BE_‘;

CASE-SENSITIV mit BINARY:

Noch ein Hinweis: MySQL ist nicht case-sensitiv! Das bedeutet, dass die beiden Strings ‚ben‘ und ‚BEN‘ bei Abfragen als identisch betrachtet werden. Möchte man, dass die Groß- und Kleinschreibung berücksichtigt wird muss der Befehl BINARY mit in die SQL Syntax aufgenommen werden:

SELECT first_name, last_name FROM actor WHERE BINARY first_name LIKE ‚BE%‘;

(Visited 7.637 times, 1 visits today)

Eine Antwort auf „SQL: BETWEEN, IN & LIKE“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert