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.

Grundlagen der Programmierung: Datenbanken

Where-Klausel

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Where-Klausel dient in SQL der Erstellung von Bedingungen innerhalb einer Datenbankabfrage. Dabei kann nach bestimmten Texten sowie numerischen Werten gesucht werden. Mehrere verschiedene Abfragen lassen sich auch miteinander kombinieren.

Transkript

Eine WHERE-Klausel oder schöner auf Englisch eine WHERE-Clause ist bezüglich einer bestimmten Tabelle so etwas wie eine Art if-Anweisung in einer herkömmlichen Programmiersprache. Sie versuchen etwas zu beschreiben, was im Grunde entweder wahr oder falsch ist. Wenn ich also aus dieser Tabelle hier alle Zeilen haben möchte, in denen die Personen einen bestimmten Nachnamen, also LastName haben, dann ist es entweder wahr oder falsch. Wie mache ich das? Wenn ich Textvergleiche anstelle, muss ich diesen Text in Anführungszeichen setzen. Im Unterschied zu den meisten Allzweck-Programmiersprachen verwenden Strings in SQL hier einfache Anführungszeichen, hier bei "Green", und keine doppelten. In dieser Hinsicht sind einige Datenbankmanagementsysteme recht flexibel und erlauben es, auch entweder einfache oder doppelte Anführungszeichen zu schreiben, doch wenn sie klassisches SQL verwenden möchten, dann sind es eben einfache Anführungszeichen. Beachten Sie auch, wenn Sie von einer C-basierten Sprache kommen, dass wir den Test auf Gleichheit nicht mit einem doppelten Gleichheitszeichen, sondern mit einem einfachen Gleichheitszeichen schreiben zwischen "LastName" und "Green". Außerdem brauchen wir unsere Bedingung, man nennt diese auch manchmal Prädikat, nicht in Klammern einzufassen, auch wenn Sie das tun dürfen, wenn Sie möchten. Die meisten Datenbanksysteme führen diesen Vergleich übrigens auch unabhänging von der Groß- und Kleinschreibung aus. Es spielt also keine Rolle, ob sie ein großes G bei Green oder ein kleines g verwenden, und es ist auch egal, ob der Name in der Datenbank tatsächlich mit einen großen G oder mit einem kleinen g gespeichert ist. Je nach Datenbank haben Sie aber die Möglichkeit, das in den Voreinstellungen auch anzupassen. Wenn ich andererseits eine Zahl teste, die in einer numerischen Spalte, wie zum Beispiel "EmployeeID" gespeichert ist, dann brauche ich diese Anführungszeichen nicht. Ich frage also direkt ob etwas gleich diesem bestimmten Wert ist. Und für numerische Operationen, wie zum Beispiel das Gehalt, also "Salary", stehen mir auch Vergleichoperatoren zur Verfügung. Dabei handelt es sich um die üblichen Operatoren: größer als, kleiner als, größer als oder gleich, kleiner als oder gleich, und nicht gleich werden mit dem Zeichen für kleiner als und größer als unmittelbar nebeneinander geschrieben. In diesem Beispiel frage ich also nach allen Teilen, in denen das Gehalt größer als 50.000 ist: "WHERE Salary 50000;" Des Weiteren können Sie auch mehrere Bedingungen in ihrer WHERE-Klausel mit AND und OR verknüpfen. Mit "WHERE Salary 50000 AND Department = 'Sales'" frage ich also die Zeilen ab, in denen das Gehalt größer als 50.000 und der Wert in der Spalte "Department" gleich "Sales" ist. Und wieder ein Hinweis für alle die von C-basierten Sprachen kommen, wir schreiben die Operatoren buchstäblich AND beziehungsweise auch OR und nicht als senkrechte Striche oder kaufmännische Und-Zeichen. Sie können so eine Abfrage auch kürzer schreiben und dazu verwenden Sie das Schlüsselwort IN. Da ich nach einen Textwert suche, muss ich jeden unabhängigen Wert in einzelne Anführungszeichen einschließen und sie hier durch Komma trennen. Möchten Sie andererseits bei der Textsuche etwas flexibler sein, verwenden Sie nicht das Gleichheitszeichen, das eine genaue Übereinstimmung verlangt, sondern dass SQL Schlüsselwort LIKE. In vielen anderen Programmiersprachen oder anderen Arten für eine tolerante Suche, verwendet man Platzhalterzeichen wie zum Beispiel ein Sternchen, in SQL dagegen ist es das Prozentzeichen. Hier zum Beispiel frage ich, welche Nachnamenspalte einen Wert so ähnlich wie "Green" und dann gefolgt von irgendetwas beliebig anderen enthält. Diese Abfrage liefert also alle Zeilen, die in dieser Spalte "Green" enthalten, aber ebenso auch "Greenspan", "Greenbird", "Greenarray" und so weiter. Das Platzhalterzeichen Prozent, kann sowohl am Ende des Textes, in der Mitte, oder auch am Anfang stehen. Es vertritt immer eine beliebige Anzahl von beliebigen Zeichen. Wenn Sie dagegen im Bezug auf einen einzelnen Buchstaben testen wollen, dann stellen Sie das mit einem Unterstrich in ihrer LIKE Anweisung da, die in diesem Fall alles zurück gibt was mit "Smith", mit einem "i", mit einem "y", oder mit jedem anderen Buchstaben an dieser Stelle übereinstimmt. Es ist allerdings leicht einzusehen, dass in großen Tabellen die Verwendung von LIKE ziemlich schnell ineffizient werden kann, da die Belastung der Datenbank größer ist, um mehrere mögliche Inhalte eines bestimmten Spaltenwertes zu überprüfen, anstatt lediglich ein Test auf eine reine Gleichheit durchzuführen, was ein ganzes Stück einfacher ist. Wie sieht es nun mit NULL aus? Auf dieses Konzept dieser NULL-Werte in der Datenbank bin ich ja schon mal eingegangen. Manche Spalten können ja so eingerichtet werden, dass Sie NULL, also das Fehlen eines Wertes komplett zulassen. Und manchmal möchte man in der WHERE-Klausel herausfinden, ob das der Fall ist, oder eben nicht. Angenommen ich hätte in meiner "Employee" Tabelle eine Spalte "MiddleInitial" definiert, und zwar so, dass Sie NULL-Werte erlaubt, wenn jemand keinen zweiten Vornamen, also dieses "MiddleInitial", hat. Möchte ich diese Personen suchen, denke ich zunächst an eine Anweisung wie "WHERE MiddleInitial = NULL". Doch das ist ein Test auf Gleichheit und nicht zu empfehlen, wenn wir auf das Vorhanden sein von NULL prüfen, denn das ist ja nicht gleich NULL, weil NULL ja eben kein Wert ist, und stattdessen verwenden wir besser das Schlüsselwort IS. Der Ausdruck "MiddleInitial = NULL", wird dann zur "MiddleInitial IS NULL". Und das liefert uns alle Zeilen, die in der entsprechenden Spalte keinen Wert gespeichert haben. Bin ich umgekehrt an den Zeilen interessiert, die einen Wert in dieser Spalte enthalten, dann kann ich auch sagen "IS NOT Null" und bekommen und die Zeilen zurück, die dieser Spalte tatsächlich einen Wert enthalten. Damit haben wir die Grundlagen der gebräuchlichsten Optionen in WHERE-Klauseln abgedeckt.

Grundlagen der Programmierung: Datenbanken

Fangen Sie ganz von vorne an und erfahren Sie alles über die Grundlagen zu Datenbanken und deren Einsatzzwecke, um danach eigene Lösungen und Anwendungen zu entwickeln.

3 Std. 6 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:11.03.2014
Laufzeit:3 Std. 6 min (39 Videos)

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!