Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Grundkurs 1: Die Sprache erlernen

Mustervergleiche: LIKE

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Beginnt mit, enthält oder endet auf - diese und ähnliche Kriterien werden in SQL mit dem Operator LIKE gesucht und natürlich auch gefunden.

Transkript

In diesem Video möchte ich Ihnen zeigen, wie Sie den besonderen SQL-Operator "LIKE" für die Umsetzung von Mustervergleichen verwenden. Unter "Mustervergleichen" verstehen Sie Anweisungen, die z.B. Aufgabenstellungen wie "beginnt mit", "endet auf" oder "enthält" verwenden. Demgemäß werden Mustervergleiche in erster Linie dazu verwendet, um Filter für Spalten mit "Character"-Datentypen zu definieren. Der Operator für Mustervergleiche ist der Operator "LIKE". Dieser allein bringt aber nicht viel, er muss immer mit Platzhalter-Zeichen, man nennt sie auch Joker-Zeichen, kombiniert werden. Dazu gibt es in ANSI-SQL2 einerseits das Prozentzeichen und andererseits den Unterstrich. Prozentzeichen steht für beliebig viele Zeichen, egal welche und inkludiert auch "gar kein Zeichen". Der Unterstrich hingegen steht für exakt "ein Zeichen". Betonung liegt hier auf "exakt" oder "genau", das heißt, hier muss auch ein Zeichen stehen. Das heißt, wenn gar kein Zeichen vorkommt, ist diese Bedingung nicht erfüllt. Sollten Sie zufälligerweise von Microsoft Access her die Verwendung von "Stern" und "Fragezeichen" kennen, die haben dort dieselbe Bedeutung, muss ich hier erwähnen, dass diese Form eben nicht ANSI-kompatibel ist, dass Access hier eigene Wege geht. Sondern die ANSI-kompatible, allgemeine Form ist eben die Verwendung von "Prozent" und "Unterstrich". Sehen wir uns das gleich mit einem Beispiel an. Ich möchte dazu wieder unsere Artikeltabelle verwenden und tippe diese gleich einmal ein. Nehme hier die "Artikelnummer" als Spalte, die "Bezeichnung", den "Verkaufspreis" sowie die "Artikelgruppe" und ergänze jetzt eine WHERE-Klausel, in der ich definiere, dass z.B. die "Bezeichnung" mit den Buchstaben "gardena" beginnen soll. Weil es ein "Character" ist, schreibe ich das Ganze unter einfache Hochkomma und das Entscheidende ist jetzt hier, dass ich ein Prozentzeichen hier am Ende des Strings ergänze. Das bedeutet quasi gesprochen: "beginnt mit", D.h., wenn ich am Ende ein Prozentzeichen ergänze, bedeutet das, dass der Suchtext mit diesen Buchstaben beginnt und dahinter kann beliebig etwas kommen. Gefunden wird jetzt alles, das entweder mit "gardena" beginnt, oder auch "gardena" allein, weil beim Prozentzeichen, wie erwähnt, können auch gar keine Zeichen vorkommen. Ich führe diese Anweisung gleich einmal aus, und wir bekommen 21 Treffer, und wir sehen, alle beginnen mit der Zeichenfolge "gardena". Diese Variante hier ist ANSI-kompatibel. Das Einzige, worauf Sie bei Oracle achten müssen, wenn Sie diese Form verwenden, dass Sie unter Umständen ein großes "G" hier verwenden, oder - wie wir schon gesehen haben - mit "Upper" und "Lower" das Ganze nivellieren. Ansonsten gibt es hier rein vom Operator her natürlich keinen Unterschied. Auch bei MySQL natürlich nicht. Wenn wir nun die Variante mit "endet auf" umsetzen wollten, dann muss, im Unterschied zum ersten Beispiel, das Prozentzeichen am Beginn verwendet werden. Ich verwende jetzt einen anderen Suchtext, z.B. "koch", um nun alle Datensätze zu filtern, die auf die Zeichenfolge "koch" enden. Im konkreten Fall bekommen wir hier einen Treffer, den "Kurzzeitmesser Koch", das ist eine Kochuhr, die exakt auf diese Zeichenfolge endet. Mehr gibt es nicht, deshalb haben wir nur eine Ergebniszeile bekommen. Natürlich können diese beiden Varianten auch kombiniert werden. Daraus ergibt sich dann die Aufgabenstellung "enthält". In diesem Fall wird am Anfang und am Ende ein Prozentzeichen verwendet. Wenn wir uns das Ergebnis dieser Anweisung ansehen, dann erkennen wir, dass wir hier einerseits Datensätze sehen, bei denen "koch" in der Mitte vorkommt, andererseits natürlich auch welche, bei denen "koch" am Beginn der Zeichenfolge steht, denn das Prozentzeichen inkludiert ja auch "kein Zeichen", und natürlich auch unseren Treffer von vornhin, bei dem "koch" am Ende steht. D.h. alle Varianten sind in dieser Form hier miteinander kombiniert. Natürlich kann ich nicht nur das Prozentzeichen, sondern auch den Unterstrich hier verwenden. Der Unterstrich steht ja für genau ein Zeichen. Wenn ich jetzt also nur jene Datensätze anzeigen möchte, die "koch" zwar enthalten, aber weder am Anfang noch am Ende, dann könnte ich hier am Beginn noch einen Unterstrich ergänzen. Unterstrich kombiniert mit Prozentzeichen heißt nichts anderes wie: mindestens ein Zeichen. Denn dieses Zeichen muss vorhanden sein, und hier können beliebig weitere enthalten sein. Das Gleiche kann ich am Ende machen, wobei es hier jetzt ganz egal ist, ob ich das Prozentzeichen davor oder dahinter setze, sprich, ob ich jetzt den Unterstrich hier ganz ans Ende setze oder nicht. Beides würde als "mindestens ein Zeichen" interpretiert werden. Und wenn wir uns dieses Ergebnis betrachten, dann sehen wir hier, dass wir nur mehr jene Datensätze im Ergebnis finden, die "koch" enthalten. Aber alle die, die am Anfang und der eine Datensatz, der "koch" am Ende enthält, den sehen wir nicht. Wir haben jetzt auch wesentlich weniger Ergebniszeilen, nämlich nunmehr 14. Ich möchte Ihnen nun anhand eines weiteren Beispiels die Kombinationsmöglichkeiten von Prozent und Unterstrich demonstrieren. Diese können nämlich wirklich beliebig kombiniert werden. Und zwar möchte ich z.B. gültige Email-Adressen herausfiltern. Dazu verwende ich unsere "Kundentabelle". {Wave.Kunden und hier gibt es eine Spalte, die heißt "Kundennummer", "Nachname", "Vorname" und-- "Email" ist der richtige Spaltenname. {WHERE Email LIKE}; Natürlich können wir hier keine hundertprozentige Gültigkeit definieren, aber zumindest von der Grobstruktur soll sie gültig sein. Nämlich sie soll mindestens zwei Buchstaben draufweisen, danach soll ein Klammeraffe folgen, dann wieder mindestens zwei Buchstaben für eine Domäne, denn .com-Domänen kommen ja mit zwei Buchstaben aus, wie z.B. hp.com, und hinter dem Punkt noch einmal mindestens zwei Buchstaben. "Mindestens zwei" kann ich entweder so definieren, oder so, oder so. Was Sie jetzt verwenden, ist hier reine Geschmackssache und bleibt Ihnen überlassen. Wie gesagt, nach diesen zwei Buchstaben sollte ein "@" folgen als fixer Bestandteil, danach wieder "mindestens zwei Buchstaben", dann ein "Punkt" und wiederum "mindestens zwei Buchstaben". Und damit sollten jetzt nur mehr jene Kunden angezeigt werden, deren Email-Adressen diese Kriterien erfüllen. Sie können also mit dem Operator "LIKE" nach Mustern suchen. Diese Muster können Sie aus fixen und variablen Bestandteilen zusammensetzen. Fix wäre z.B. hier "koch" oder hier das "@" und der "Punkt". Und mit dem Prozentzeichen definieren Sie eine beliebige Anzahl von Zeichen und mit dem Unterstrich genau ein Zeichen. Durch die Verwendung mehrerer Unterstriche können Sie auch definieren, wie viele Zeichen etwas ausmachen muss.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!