23rd Jun 2022 9 Leseminuten Wie man LIKE in SQL verwendet: SQL-Musterabgleich Dorota Wdzięczna SQL-Operatoren SQL-Textfunktionen Inhaltsverzeichnis Wie verwendet man LIKE in SQL? SQL Teilweise Übereinstimmung: Verwendung von LIKE mit Platzhaltern SQL-Teilübereinstimmung: der prozentuale Platzhalter SQL-Teilübereinstimmung: der Unterstrich-Platzhalter (Underscore Wildcard) SQL Teilweise Übereinstimmung: Kombination von Platzhaltern Verwendung von LIKE in SQL mit Text Kombination von NOT- und LIKE-Operatoren Verwendung von LIKE in SQL mit anderen Operatoren Verwendung von LIKE in SQL in anderen Anweisungen Mehr über SQL-Mustervergleiche erfahren Der SQL-Musterabgleich ist eine sehr wichtige und nützliche Fähigkeit. In diesem Artikel sehen wir uns an, wie Sie ihn mit LIKE in SQL durchführen können. DerSQL-Musterabgleich ist ein sehr einfaches Konzept. Es ermöglicht Ihnen, Zeichenketten und Teilzeichenketten zu durchsuchen und bestimmte Zeichen oder Gruppen von Zeichen zu finden. Abgesehen von SQL kann diese Operation auch in vielen anderen Programmiersprachen durchgeführt werden. In diesem Artikel wird untersucht , wie Sie LIKE in SQL verwenden können, um Teilzeichenfolgen zu suchen. Außerdem wird der Unterschied zwischen exakter und teilweiser Übereinstimmung in SQL erläutert, indem erklärt wird , wie Sie Ihre Suche durch die Verwendung von Wildcards erweitern können. Schließlich wird geklärt, wann Sie etwas anderes als LIKE verwenden sollten, um eine Übereinstimmung zu finden. Wenn Sie LIKE und andere SQL-Funktionen üben möchten, schauen Sie sich unseren SQL-Praxis Kurs. Er bietet über 600 interaktive SQL-Übungen, die Ihnen helfen, Ihr SQL-Wissen zu überprüfen und Vertrauen in Ihre SQL-Kenntnisse zu gewinnen. Wie verwendet man LIKE in SQL? Angenommen, Sie müssen einige Datensätze abrufen, die darauf basieren, ob eine Spalte eine bestimmte Gruppe von Zeichen enthält. Wie Sie wissen, filtert die Klausel WHERE in SQL die Ergebnisse von SELECT. An sich findet WHERE exakte Übereinstimmungen. Was aber, wenn Sie etwas mit einer teilweisen Übereinstimmung finden müssen? In diesem Fall können Sie LIKE in SQL verwenden. Dieser Operator durchsucht Zeichenketten oder Teilzeichenketten nach bestimmten Zeichen und gibt alle Datensätze zurück, die diesem Muster entsprechen. (Daher der SQL-Mustervergleich.) Nachfolgend sehen Sie die Syntax des LIKE-Operators in einer SELECT -Anweisung: SELECT [ column_list | * ] FROM table_name WHERE column or expression LIKE pattern; Beachten Sie, dass der Spaltenname oder der zu durchsuchende Ausdruck vor LIKE in SQL steht. Nach dem Operator steht das Muster, das abgeglichen werden soll. Dieses Muster kann reiner Text oder Text in Kombination mit einem oder mehreren Platzhaltern sein. Die Verwendung von Platzhaltern wird im Folgenden erläutert. SQL Teilweise Übereinstimmung: Verwendung von LIKE mit Platzhaltern Wenn Sie das genaue Muster, nach dem Sie suchen, nicht kennen, können Sie Wildcards verwenden, um es zu finden. Platzhalter sind Textsymbole, die angeben, wie viele Zeichen an einer bestimmten Stelle in der Zeichenkette vorkommen sollen. Der SQL-ANSI-Standard verwendet zwei Platzhalter, Prozent (%) und Unterstrich (_), die auf unterschiedliche Weise verwendet werden. Bei der Verwendung von Platzhaltern führen Sie eine partielle statt einer exakten SQL-Übereinstimmung durch, da Sie keine exakte Zeichenfolge in Ihre Abfrage aufnehmen. wildcard description % zero, one, or many characters, including spaces _ a single character Sehen Sie sich die vollständige animal Tabelle an, die wir in unseren SQL-Abfragen verwenden werden: id name 1 frog 2 dog 3 bear 4 fox 5 jaguar 6 puma 7 panda 8 lion 9 leopard 10 sheep 11 camel 12 monkey 13 lemur 14 rabbit 15 hedgehog 16 elephant 17 elephant.. . 18 langur 19 hog 20 gerenuk 21 22 null Hinweis: ... steht für zwei Leerzeichen. SQL-Teilübereinstimmung: der prozentuale Platzhalter Wie Sie in der obigen Tabelle sehen können, kann der prozentuale Platzhalter verwendet werden, wenn Sie nicht sicher sind, wie viele Zeichen Teil Ihrer Übereinstimmung sein werden. Im folgenden Beispiel sehen Sie, was passiert, wenn Sie nur diesen Platzhalter mit LIKE in SQL verwenden: SELECT id, name FROM animal WHERE name LIKE '%' ; Ergebnis: id name 1 frog 2 dog 3 bear 4 fox 5 jaguar 6 puma 7 panda 8 lion 9 leopard 10 sheep 11 camel 12 monkey 13 lemur 14 rabbit 15 hedgehog 16 elephant 17 elephant.. . 18 langur 19 hog 20 gerenuk 21 Hinweis: .. . steht für zwei Leerzeichen. Diese Verwendung der SQL-Teilübereinstimmung gibt alle Namen aus der Tabelle animal Tabelle zurück, auch diejenigen, die überhaupt keine Zeichen in der Namensspalte enthalten. Das liegt daran, dass der prozentuale Platzhalter jedes beliebige Zeichen oder kein Zeichen bezeichnet. Selbst wenn in der Namensspalte ein Nullwert steht, wird eine leere Zeichenfolge zurückgegeben. Wenn Sie jedoch nur die Tiernamen zurückgeben möchten, die mit einem "g" beginnen, sollten Sie die Abfrage mit einem "g" vor dem prozentualen Platzhalter schreiben: SELECT id, name FROM animal WHERE name LIKE 'g%' ; Das Ergebnis dieser SQL-Teilabgleichsoperation ist das folgende: id name 20 gerenuk Wenn Sie die Tiernamen auswählen möchten, die mit einem "g"enden, setzen Sie den prozentualen Platzhalter an die erste Stelle, wie in dieser SQL-Teilabfrage gezeigt: SELECT id, name FROM animal WHERE name LIKE '%g'; Ergebnis: id name 1 frog 2 dog 15 hedgehog 19 hog Die folgende Abfrage gibt alle Tiere zurück, deren Name ein "g". Verwenden Sie dazu zwei prozentuale Platzhalter und ein "g" Zeichen, wie unten gezeigt. SELECT id, name FROM animal WHERE name LIKE '%g%'; Ergebnis: id name 1 frog 2 dog 5 jaguar 15 hedgehog 18 langur 19 hog 20 gerenuk Alle diese Tiere haben einen Namen, der irgendwo ein "g" enthält - am Anfang, in der Mitte oder am Ende. Kommen wir nun zum Unterstrich-Wildcard. SQL-Teilübereinstimmung: der Unterstrich-Platzhalter (Underscore Wildcard) Der Unterstrich-Platzhalter steht für ein einzelnes Zeichen für jeden Unterstrich. Bei dieser SQL-Teilübereinstimmung kann er jedes beliebige Zeichen ersetzen, aber jeder Unterstrich ist auf ein Zeichen beschränkt. Sehen Sie sich das folgende Beispiel an: SELECT id, name FROM animal WHERE name LIKE '_'; Ergebnis: id name 0 Zeilen Diese Abfrage gibt keine Datensätze zurück, da es in der Tabelle keine einstelligen Tiernamen gibt. Im nächsten Beispiel werden alle Namen angezeigt, die genau fünf Zeichen enthalten. Um dies darzustellen, müssen wir fünf Unterstriche verwenden: SELECT id, name FROM animal WHERE name LIKE '_____'; Ergebnis: id name 7 panda 10 sheep 11 camel 13 lemur Wenn Sie den Unterstrich als Platzhalter am Ende Ihrer SQL-Teilübereinstimmungszeichenfolge verwenden, gibt die Abfrage jeden Datensatz zurück, der mit dem angegebenen Text plus einem weiteren Zeichen übereinstimmt. Unten sehen Sie ein Beispiel: SELECT id, name FROM animal WHERE name LIKE 'lio_'; Ergebnis: id name 8 lion Was wird zurückgegeben, wenn die Abfrage einen Unterstrich als Platzhalter in der Mitte der Zeichenfolge enthält? SELECT id, name FROM animal WHERE name LIKE 'p_ma'; Ergebnis: id name 6 puma Es sind alle Tiere, deren Namen mit "p" beginnen und mit "ma" enden, mit nur einem Zeichen dazwischen. SQL Teilweise Übereinstimmung: Kombination von Platzhaltern Sie können auch eine Kombination aus Unterstrichen und Prozentzeichen für Ihren SQL-Mustervergleich verwenden. Sehen Sie sich das folgende Beispiel an: SELECT id, name FROM animal WHERE name LIKE '%ho_'; Ergebnis: id name 15 hedgehog 19 hog Wie Sie sehen können, gibt diese Abfrage Namen zurück, die "ho" mit einer beliebigen Anzahl von Zeichen davor und nur einem Zeichen danach kombinieren. Verwendung von LIKE in SQL mit Text Im Folgenden wird erläutert, wie Sie LIKE in SQL mit reinen Textzeichenfolgen und ohne Platzhalter verwenden können. Unter Umständen gibt es bessere Möglichkeiten als die Verwendung von LIKE beim SQL-Musterabgleich. Aber jetzt wollen wir erst einmal sehen, wie das funktioniert. Zunächst sehen wir uns die vollständige Tabelle der Tiernamen und ID-Nummern an, wie unten gezeigt: id name 1 frog 2 dog 3 bear 4 fox 5 jaguar 6 puma 7 panda 8 lion 9 leopard 10 sheep 11 camel 12 monkey 13 lemur 14 rabbit 15 hedgehog 16 elephant 17 elephant. .. 18 langur 19 hog 20 gerenuk 21 22 null Hinweis: . .. bezeichnet zwei Leerzeichen. Text-Datentypen in SQLhttps://t.co/2cWLoe7ONa#sql #LearnSQL #Database - Vertabelo (@Vertabelo) January 5, 2017 Beachten Sie, dass der Datensatz mit id=21 eine leere Zeichenkette (ohne jegliche Zeichen) enthält. Der letzte Datensatz hat einen NULL-Wert in der Spalte name. Nehmen wir nun an, wir wollen die Datensätze abrufen, in denen der Name des Tieres "Elefant" ist . Das ist ziemlich einfach, wie das folgende Beispiel zeigt: SELECT id, name FROM animal WHERE name LIKE 'elephant'; Ergebnis: id name 16 elephant In der Tabelle gibt es tatsächlich zwei Datensätze, die "Elefant" enthalten. Der zweite Datensatz enthält jedoch zwei zusätzliche Leerzeichen am Ende des Wortes und wird daher nicht zurückgegeben. Versuchen wir es mit einem anderen Textmuster, das diese beiden Leerzeichen enthält. SELECT id, name FROM animal WHERE name LIKE 'elephant '; Ergebnis: id name 17 elephant. .. Hinweis: . .. bedeutet zwei Leerzeichen. Auch hier gibt es nur einen Datensatz: "elephant" mit zwei Leerzeichen. Als Nächstes nehmen wir an, dass wir eine konkrete Zeichenkette und einen Gleichheitsoperator (=) verwenden, etwa so: SELECT id, name FROM animal WHERE name = 'elephant ' ; Ergebnis: id name 16 elephant Wenn Sie prüfen wollen, ob eine Textzeichenfolge mit dem Wert einer Spalte übereinstimmt, suchen Sie nach einer exakten SQL-Übereinstimmung und nicht nach einer teilweisen SQL-Übereinstimmung. In diesem Fall verwenden Sie einen Gleichheitsoperator und nicht LIKE. Kombination von NOT- und LIKE-Operatoren Sie können auch nach Zeichenfolgen suchen, die nicht mit einem Muster übereinstimmen. Dazu kombinieren wir die Operatoren LIKE und NOT. Dies ist eine weitere Möglichkeit, den SQL-Mustervergleich durchzuführen. Im folgenden Beispiel wollen wir alle Tiernamen finden, die kein "a" enthalten: SELECT id, name FROM animal WHERE name NOT LIKE '%a%'; Ergebnis: id name 1 frog 2 dog 4 fox 8 lion 10 sheep 12 monkey 13 lemur 15 hedgehog 19 hog 20 gerenuk 21 camel Verwendung von LIKE in SQL mit anderen Operatoren Die Klausel WHERE kann mehr als eine Bedingung enthalten. Daher können LIKE und NOT LIKE auch mit anderen Operatoren verwendet werden. Schauen wir uns ein weiteres Beispiel an: SELECT id, name FROM animal WHERE name LIKE '%g' OR name LIKE 's%' ; Ergebnis: id name 1 frog 2 dog 10 sheep 15 hedgehog 19 hog Er gibt alle Tiernamen zurück, die mit einem "s" Zeichen beginnen oder mit einem "g"Zeichen enden. Verwendung von LIKE in SQL in anderen Anweisungen Bis jetzt haben wir die Verwendung von LIKE in SQL nur in SELECT Anweisungen besprochen. Dieser Operator kann jedoch auch in anderen Anweisungen verwendet werden, z. B. in UPDATE oder DELETE. Wie Sie sehen, ist die Syntax recht ähnlich: UPDATE table SET column1 = newValue WHERE column2 LIKE pattern ; DELETE FROM table WHERE column LIKE pattern ; Schauen wir uns an, wie wir LIKE verwenden können, um einige Tiernamen zu ändern. Sind Sie bereit? UPDATE animal SET name='tiger' WHERE name LIKE '%key%' ; Es gibt nur einen Datensatz, der die Bedingung LIKE %key% erfüllt: Affe. Nach dieser Aktualisierung wird "tiger" alle Instanzen von "monkey" ersetzen. Hier ist das Ergebnis nach der Aktualisierung und der anschließenden Auswahl aller Datensätze in der animal Tabelle. SELECT * FROM animal ; id name 1 frog 2 dog 3 bear 4 fox 5 jaguar 6 puma 7 panda 8 lion 9 leopard 10 sheep 11 camel 12 tiger 13 lemur 14 rabbit 15 hedgehog 16 elephant 17 elephant.. . 18 langur 19 hog 20 gerenuk 21 22 null Hinweis: . .. steht für zwei Leerzeichen. Als nächstes löschen wir alle Datensätze, bei denen der Tiername mit einem "t": DELETE FROM animal WHERE name LIKE 't%' ; Mehr über SQL-Mustervergleiche erfahren SQL-Mustervergleiche sind sehr nützlich für die Suche nach Textteilstrings. LIKE und sein enger Verwandter NOT LIKE machen dies recht einfach. Wenn Sie mehr über den Musterabgleich und den Operator LIKE erfahren möchten, besuchen Sie den KursSQL für Anfänger . Er zeigt Ihnen, wie Sie Abfragen von Grund auf neu erstellen können, führt Sie aber auch in praktische Fertigkeiten wie den Musterabgleich ein. Wenn Sie über Grundkenntnisse in SQL verfügen, können Sie diese mit den SQL-Übungssatz von 88 Übungen auffrischen, die von einfachen Aufgaben mit SELECT FROM Anweisungen bis zu fortgeschrittenen Problemen mit mehreren Unterabfragen reichen. Oder probieren Sie unseren SQL-Praxis Track mit 5 SQL-Übungskursen und über 600 Übungen. Melden Sie sich jetzt kostenlos an! Tags: SQL-Operatoren SQL-Textfunktionen