Vergleichsoperatoren
In SQL gibt es, um Abfragen zu vereinfachen, zusätzlich zu den bereits kennen gelernten Operatoren, noch weiter Operatoren, die im WHERE verwendet werden können. Diese Operatoren sind vor allem bei der Verwendung von Unterabfragen oft sinnvoll.
Vier wichtige Operatoren sind:
- IN
- ANY/SOME
- ALL
- EXISTS
Der IN Operator gibt alle Einträge zurück, bei denen das gesuchte Merkmal in einer Menge von Werten vorkommt. Werden zum Beispiel alle Kunden mit dem Nachnamen "Berger", "Evans" oder "Hill" gesucht, würde die Abfrage dazu folgendermaßen aussehen:
Die Ausgabe dieser Abfrage:
Der ANY Operator dient dazu, um abzufragen, ob die gewünschte Bedingung auf IRGENDEIN Ergebnis der Unterabfrage zutrifft. Dagegen dient der ALL Operator dazu, abzufragen, ob die gewünschte Bedingung auf ALLE Ergebnisse der Unterabfrage zutrifft. Wichtig ist dabei, zu beachten, dass die Unterabfragen als Ergebnis nur eine Spalte liefern darf.
Sollte man alle Artikel abfragen wollen, deren Gewicht kleiner als 10 ist, und die trotzdem einen höheren Preis als irgendein Artikel, der schwerer als 300 ist, hat, wäre die SQL-Abfrage folgende:
Der Operator SOME ist äquivalent zu ANY, das heißt, statt ANY könnte man auch SOME angeben.
Wäre die Aufgabestellung aber, alle Artikel auszugeben, die leichter als 10 sind, und trotzdem teurer als ALLE Artikel, die schwerer als 300 sind, so wäre die Abfrage folgende:
Der EXISTS Operator ist vor allem dann sinnvoll, wenn in der Unterabfrage auf die äußere Abfrage zugegriffen wird. Er überprüft, ob die Unterabfrage überhaupt einen Eintrag liefert oder nur eine leere Tabelle. Ein Beispiel dafür ist folgendes:
Hier wird in der Unterabfrage auf die Artikel ID der äußeren Abfrage zugegriffen, und so geprüft, ob dieser Artikel schon irgendwann einmal bestellt worden ist. Somit gibt die Abfrage letztendlich alle Artikel aus, die schon irgendwann einmal bestellt worden sind. Diese Operatoren können auch mit NOT verwendet werden, um die Evaluierung zu true oder false umzukehren, um zum Beispiel alle Artikel auszugeben, die noch nie bestellt worden sind:
Subquery
Tutorial zu Unterabfragen/Subqueries mit Beispiel
UNION Operator
Tutorial zur Vereinigung von zwei Abfragen mit dem UNION Operator
WHERE Statement
Tutorial zur Verwendung von WHERE Statements mit Erklärung zu AND und OR
INNER JOIN
Tutorial zu Abfragen auf mehreren Tabellen mit JOINs, insbesondere dem INNER JOIN
SQL Tutorials
Hast du noch Fragen oder bist dir bei einer Aufgabe unsicher? Wirf einen Blick auf die SQL Tutorials!
Übersicht der Katas
Hier findest du die Erklärung zum Begriff "Katas" und eine Übersicht aller Programmierübungen.
Dojo - virtueller Übungsraum
Löse die Dojo-Aufgaben und werde Programmier-Profi!