PostgreSQL - LIKE Klausel: Ein freundlicher Leitfaden für Anfänger

Hallo da draußen, zukünftige Datenbank-Zauberer! Heute machen wir uns auf eine aufregende Reise in die Welt von PostgreSQL, und zwar speziell konzentriert auf die LIKE Klausel. Keine Sorge, wenn du neu bist – ich werde dein freundlicher Guide sein, und wir gehen Schritt für Schritt vor. Am Ende dieses Tutorials wirst du die LIKE Klausel wie ein Profi verwenden können!

PostgreSQL - Like Clause

Was ist die LIKE Klausel?

Bevor wir ins Detail gehen, lassen Sie uns verstehen, was es mit der LIKE Klausel auf sich hat. Stellen Sie sich vor, Sie versuchen, ein Buch in einer riesigen Bibliothek zu finden, aber Sie erinnern sich nur an einen Teil des Titels. Wär es nicht toll, wenn Sie nach Büchern mit ähnlichen Titeln suchen könnten? Genau das macht die LIKE Klausel in PostgreSQL – sie hilft Ihnen, Daten zu suchen, die einem bestimmten Muster entsprechen.

Die LIKE Klausel wird in der SQL-WHERE Klausel verwendet, um nach einem spezifischen Muster in einer Spalte zu suchen. Es ist wie eine aufgeladene Suchfunktion, die Wildcards versteht. Cool, oder?

Syntax der LIKE Klausel

Sehen wir uns die grundlegende Syntax der LIKE Klausel an:

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

Lassen Sie sich davon nicht einschüchtern! Wir werden es auseinandernehmen:

  1. SELECT column1, column2, ...: Hier geben Sie an, welche Spalten Sie in Ihren Ergebnissen sehen möchten.
  2. FROM table_name: Dies ist die Tabelle, in der Sie suchen.
  3. WHERE columnN LIKE pattern: Hier geschieht das Magische. Sie sagen PostgreSQL, dass es in columnN nach Daten suchen soll, die Ihrem pattern entsprechen.

Wildcard-Zeichen in der LIKE Klausel

Bevor wir zu den Beispielen übergehen, sprechen wir über zwei besondere Zeichen, die die LIKE Klausel so mächtig machen:

  1. % (Prozentsymbol): Dies repräsentiert null, eine oder mehrere Zeichen.
  2. _ (Unterstrich): Dies repräsentiert ein einzelnes Zeichen.

Denken Sie an diese als die Jocker in einem Kartenspiel – sie können für andere Zeichen in Ihrem Suchmuster stehen.

Beispiele der LIKE Klausel in der Praxis

Tauchen wir ein in einige Beispiele, um zu sehen, wie die LIKE Klausel in realen Szenarien funktioniert. Stellen wir uns eine Tabelle namens books mit den Spalten book_id, title und author vor.

Beispiel 1: Titel finden, die mit 'The' beginnen

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

Diese Abfrage wird alle Buchtitel zurückgeben, die mit 'The' beginnen. Das % nach 'The' bedeutet "folgt eine beliebige Anzahl von Zeichen".

Das könnte folgende Titel zurückgeben:

  • The Great Gatsby
  • The Catcher in the Rye
  • The Hobbit

Beispiel 2: Autoren finden, deren Name 'son' enthält

SELECT author
FROM books
WHERE author LIKE '%son%';

Diese Abfrage sucht nach Autoren, deren Name "son" enthält. Die % vor und nach 'son' bedeuten "beliebige Zeichen davor und danach".

Dies könnte folgende Autoren zurückgeben:

  • Jodi Picoult
  • Orson Scott Card
  • Jason Reynolds

Beispiel 3: Titel finden, die genau 5 Zeichen lang sind

SELECT title
FROM books
WHERE title LIKE '_____';

Hier verwenden wir fünf Unterstriche, um Titel zu finden, die genau fünf Zeichen lang sind.

Das könnte folgende Titel zurückgeben:

  • Dunes
  • Ender
  • Holes

Beispiel 4: Case-insensitive Suche

Standardmäßig ist die LIKE Klausel case-sensitive. Was aber, wenn Sie 'the' unabhängig davon finden möchten, ob es groß oder kleingeschrieben ist? PostgreSQL hat eine Lösung:

SELECT title
FROM books
WHERE LOWER(title) LIKE '%the%';

Diese Abfrage konvertiert alle Titel in Kleinbuchstaben, bevor sie gesucht wird, sodass sie 'The', 'THE', 'the' und jede andere Kombination finden wird.

Fortgeschrittene LIKE Klausel Techniken

Nun, da Sie die Grundlagen kennen, sehen wir uns einige fortgeschrittene Techniken an.

Verwenden von NOT LIKE

Manchmal möchten Sie alles finden, was nicht auf ein Muster passt. Da kommt NOT LIKE ins Spiel:

SELECT title
FROM books
WHERE title NOT LIKE 'The%';

Dies wird alle Titel finden, die nicht mit 'The' beginnen.

Escape-Spezialzeichen

Was ist, wenn Sie nach einem Titel suchen möchten, der tatsächlich ein '%' oder '_' enthält? Sie können das Escape-Zeichen verwenden:

SELECT title
FROM books
WHERE title LIKE '50\% off%' ESCAPE '\';

Dies wird Titel finden, die mit '50% off' beginnen, wobei das '%' als Literalzeichen und nicht als Wildcard behandelt wird.

LIKE Klausel Methoden

Hier ist eine Tabelle, die die verschiedenen Methoden zusammenfasst, die wir mit der LIKE Klausel verwenden können:

Methode Beschreibung Beispiel
LIKE 'pattern' Passend zum exakten Muster WHERE title LIKE 'The Great Gatsby'
LIKE '%pattern%' Passend überall im Muster WHERE title LIKE '%Great%'
LIKE 'pattern%' Passend am Anfang des Musters WHERE title LIKE 'The%'
LIKE '%pattern' Passend am Ende des Musters WHERE title LIKE '%Gatsby'
LIKE 'pattern' Passend mit einzelnem Wildcard-Zeichen WHERE title LIKE 'he'
NOT LIKE 'pattern' Passt nicht zum Muster WHERE title NOT LIKE 'The%'
ILIKE 'pattern' Case-insensitive LIKE WHERE title ILIKE 'the%'

Schlussfolgerung

Und voilà, Leute! Sie haben gerade Ihre ersten Schritte in die wundervolle Welt der PostgreSQL LIKE Klausel gemacht. Erinnern Sie sich daran, Übung macht den Meister, also fürchten Sie sich nicht, verschiedene Muster und Kombinationen auszuprobieren.

Die LIKE Klausel ist ein leistungsstarkes Werkzeug in Ihrem PostgreSQL-Werkzeugkasten, das es Ihnen ermöglicht, Daten flexibel und präzise zu durchsuchen. Egal, ob Sie nach Buchtiteln, Kundennamen oder anderen textbasierten Daten suchen, die LIKE Klausel hat Sie im Rücken.

Weitersuchen, weiterabfragen und vor allem: Spaß haben mit Datenbanken! Wer weiß? Vielleicht finden Sie sich selbst als nächsten Datenbank-Superhelden. Bis下次见面, fröhliches Coden!

Credits: Image by storyset