SQL Grundkurs 1: Die Sprache erlernen

Alphanumerische Spalten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Spalten mit textbasierten Datentypen wie CHAR oder VARCHAR müssen beim Filtern anders behandelt werden als solche mit numerischen Datentypen. Dieses Video zeigt Ihnen genau, was Sie zu berücksichtigen haben.

Transkript

Wie Sie Zeichenfolgen sinnvoll filtern können, zeige ich Ihnen in diesem Video. Dazu greife ich auf unsere Personaltabelle zu. Ich hole dort die Personalnummer, den Nachnamen, den Vornamen und die Abteilung, also das Abteilungskürzel. Betrachten wir uns diese Daten einmal vorweg, dann sehen wir, dass in der Spalte Abteilung ein Kürzel verwendet wird, das aus zwei Buchstaben besteht. D.h., es ist hier ein alphanumerischer Text, also eine Zeichenfolge und nach der wollen wir jetzt filtern. Z.b. wollen wir alle Mitarbeiter filtern, die in der Abteilung VK, das ist das Kürzel für Verkauf, beschäftigt sind. Ich ergänze die Where-Klausel, die Spalte Abteilung = und, weil es sich diesmal um eine Zeichenfolge handelt, muss der Vergleichsausdruck in Hochkomma geschrieben werden. "VK", ist das korrekte Kürzel. Ich führe nun diese Anweisung aus und wir bekommen nur mehr jene sechs Textzeilen angezeigt, die Mitarbeiter aus der Abteilung Verkauf darstellen. Die Spalte, nach der gefiltert wird, kann man in der Selektklausel aufnehmen, anzeigen, muss man aber nicht. Gerade das ist ein Beispiel dafür, wo man in der Praxis diese Spalte aus der Selektklausel entfernen würde. Warum? Sie sehen hier eine Spalte bei Definition, wo immer das selbe enthalten ist, in unserem Fall VK, diese Spalte muss ich ja eigentlich gar nicht anzeigen. D.h., wenn ich diese Anweisung noch einmal hier verwende und diese Spalte aus der Selektklausel entferne, funktioniert sie natürlich nach wie vor. Ich bekomme die gleichen Mitarbeiter zurückgeliefert, nur die eine Spalte wird nicht mit angezeigt. Ganz wichtig ist es natürlich, dass der vergleichende Text, so wie hier Text VK, unter Hochkomma gesetzt wird. Wenn wir nämlich hier keine Hochkomma verwenden, dann würde der Interpreter VK nicht als Inhalt, als Text, sondern als Spaltenname interpretieren, und würde natürlich sinngemäß eine Fehlermeldung zurückgeben, so wie hier "ungültiger Spaltenname VK". Also das hier ist definitiv falsch. Nicht alle Datenbankmanagementsysteme reagieren gleich, wenn es um Groß- oder Kleinschreibung geht, d.h. mit anderen Worten, ist jetzt die Eingabe der Vergleichsausdrücke Case-sensitiv oder nicht? Microsoft SQL Server und MySQL sind in der Standardkonfiguration nicht Case-sensitiv. Das bedeutet, es spielt keine Rolle, ob ich den Vergleichsausdruck VK sowie in Groß- oder so wie jetzt in Kleinbuchstaben hier eintippe. Ich bekomme in beiden Fällen das selbe Ergebnis. Das muss nicht immer so sein. Denn wenn ich dasselbe bei Oracle verwende, werden wir sehen, dass ich hier kein Ergebnis bekomme. Der Grund liegt darin, dass Oracle in der Standardkonfiguration sehr wohl Case-sensitiv ist. Ich führe diese Anweisung aus und wir sehen, es gibt keine Treffer. Wenn ich hingegen VK hier in Großbuchstaben eintippe, werde ich sehr wohl ein Ergebnis bekommen. D.h., es kommt hier sehr wohl auf Groß- oder Kleinschreibung an. Das kann in der Praxis natürlich zu Problemen führen. Z.B. wenn wir nach einem bestimmten Mitarbeiter suchen, in dessen Name sich ein Tippfehler eingeschlichen hat, nämlich Lorenz Meister. Z.B. verwende ich das Kriterium "Where Nachname = Meister". Unter Oracle würde ich jetzt kein Ergebnis bekommen. Der Grund ist der, dass wir Meister hier in der Tabelle finden, in einer falschen Schreibweise. Und zwar sehen Sie, dass das E hier fälschlicherweise groß getippt ist. Also muss ich, um Lorenz Meister zu finden, hier auch das E in einem Großbuchstaben eintippen. Dann bekomme ich einen Treffer. Das ist natürlich in der Praxis problematisch, denn wir werden ja typischerweise nicht wissen, wenn es zu Schreibfehlern wie diesem gekommen ist. Bei MySQL und beim SQL Server hatten wir kein Problem, da es ohnehin unerheblich wäre, ob wir Groß- oder Kleinbuchstaben verwenden. Hier müssen wir das berücksichtigen. Was man also bei Oracle in der Praxis sehr häufig macht, um genau dieser Problematik aus dem Weg zu gehen, ist, dass man nivelliert. D.h. man wandelt den Nachnamen, bevor man ihn vergleicht, entweder in Groß- oder Kleinbuchstaben um, um dann das Ergebnis entsprechend zu vergleichen. D.h. um auf eine allgemein gültige Möglichkeit zu gelangen, verwendet man z.B. die Funktion "Lower" und wandelt jetzt den Nachnamen für den Vergleich und zwar nur für den Vergleich, in Kleinbuchstaben um. Dann kann man ihn jetzt auch mit dieser Schreibweise hier finden. Ob Sie jetzt die Schreibweise mit Lower oder Upper verwenden, das ist Geschmacksache, das spielt keine Rolle. Auch mit Upper würde das ganze funktionieren, man muss natürlich nur dann hier Meister in Großbuchstaben eingeben, d.h. auch diese Variante liefert uns dann ein gültiges Ergebnis. Was wiederum für alle Datenbankmanagementsysteme in gleicher Form gilt ist, wie gehen wir mit Hochkommas um? Wenn wir z.B. Mitarbeiter O'Brian finden wollen, dann müssen wir in der Where-Klausel auch den Namen entsprechend eingeben. Nachname =, und wir haben in einem anderen Beispiel schon gesehen, dass wir jedes Hochkomma innerhalb eines Textes doppelt eingeben müssen. Ich schreibe das O jetzt gleich groß, dann muss ich nicht Upper oder Lower verwenden, und gebe O'Brian in dieser Form ein, dann wird uns das hier das gewünschte Ergebnis bringen. Sie sehen hier, im Vergleichsausdruck habe ich zwei einfache Hochkommas eingetippt, und bekomme als Ergebnis den einen angezeigt. Das ist hier analog bei MySQL und dem Microsoft SQL Server. Ich kopiere mir diese Anweisung nun noch in den Editor von MySQL und führe die Anweisung aus, und Sie sehen, dass das hier auch funktioniert. Da standardmäßig MySQL auch nicht Case-sensitiv ist, spielt es keine Rolle, ob ich O'Brian in Groß- oder Kleinschreibung eingebe, alles wird mir das gewünschte Ergebnis liefern.

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!