SQL Grundkurs 1: Die Sprache erlernen

Prioritäten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sie kennen es aus der Mathematik: Punkt vor Strich. Auch bei den Operatoren gibt es Prioritäten, die berücksichtigt werden müssen. Zum Glück können Sie auch hier durch die richtige Klammersetzung, wie in der Mathematik, alles beeinflussen.

Transkript

Was Sie bei der Verwendung von mehr als zwei Kriterien berücksichtigen müssen, lernen Sie in diesem Video. Solange Sie nur zwei Kriterien verwenden, müssen Sie sich keine Gedanken über die Priorität der unterschiedlichen Operatoren machen. Sobald Sie aber mehr als zwei, und vor allem unterschiedliche Operatoren verwenden, müssen Sie das berücksichtigen. Wenn wir das vorliegende Beispiel betrachten, liefert es uns alle Kunden, deren Adresse bzw. in dem Fall deren Postleitzahl entweder mit einer 8 oder einer 9 beginnt, weil wir hier definiert haben: "Postleitzahl LIKE 8% OR Postleitzahl LIKE 9%". Hier wird aber noch nicht eingeschränkt, auf welches Land es sich bezieht. Deshalb sehen wir im Ergebnis sowohl Deutsche als auch Österreicher. Wenn wir aber jetzt nur auf jene einschränken wollen, deren Postleitzahl mit 8 oder 9 beginnt, aber aus Deutschland kommen, müssen wir eine weitere Bedingung ergänzen. Das bedeutet, dass ich in der WHERE-Klausel noch ergänze: "AND Land" also das Länderkürzel "= D". Führen wir diese Anweisung aus, erkennen wir aber im Ergebnis, dass sehr wohl noch immer Adressen aus Österreich hier mit angezeigt werden und damit im Ergebnis enthalten sind. Das liegt daran, dass wir die natürliche Priorität der Operatoren nicht berücksichtigt haben. "NOT" hat eine stärkere oder höhere Priorität als das "und", und das "und" hat eine höhere Priorität als das "oder". Wir konzentrieren uns fürs Erste auf die Unterschiede der Priorität zwischen "und" und "oder". "Und" hat die höhere Priorität. Sie können das vergleichen mit "Punkt vor Strich" in der Mathematik. "Und" entspricht einer Punktrechnung, "oder" einer Strichrechnung. Wenn wir uns also diese Bedingungen ansehen, haben wir hier eine erste Bedingung, "oder", eine zweite, "und", eine dritte Bedingung. Da das "und" eine höhere Priorität als das "oder" aufweist, bedeutet dies, dass diese zwei Bedingungen zusammengehören, stärker zusammengehören als die hier vorne. Mit anderen Worten: Dies bedeutet, dass alle Postleitzahlen aus Deutschland mit 9 beginnen müssen oder losgelöst von Deutschland, weil die Bedingung "Deutschland" gilt nicht für den ersten Teil hier - sie beginnen mit 8, Klammer auf, egal aus welchem Land sie kommen, Klammer zu. Deshalb haben wir hier auch Adressen aus Österreich mit im Ergebnis. Das ist die natürliche Priorität. Wir können natürlich, so wie bei einem mathematischen Ausdruck auch, jede andere Priorität durch Klammersetzung erzwingen und das müssen wir hier auch in diesem Fall. Wir wollen, dass dieses "oder" hier stärker wirkt als dieses "und" und damit das Ergebnis so wie gewünscht erzielt wird. Deshalb setzen wir hier eine Klammer um die ersten beiden Bedingungen und damit definieren wir, dass diese zwei Bedingungen zuerst erfüllt sein müssen, und erst dann zusätzlich für beide gemeinsam auch das Länderkennzeichen "D" lauten muss. Wenn wir nun diese Anweisung ausführen, dann haben wir das Ergebnis so, wie es eigentlich sein sollte. So wie in der Mathematik auch, könnten wir natürlich diesen Ausdruck hier auch auflösen, diese Klammer. Sie könnten natürlich sagen,  ich möchte keine Klammer setzen, aber ich muss dann diese Bedingung hier zweimal ergänzen, sozusagen aus der Klammer herausnehmen, d.h.: "Postleitzahl LIKE 8% AND Land = 'D' OR Postleitzahl LIKE 9% AND Land = 'D'". Ich persönlich empfinde diese Variante als eher umständlich, sowohl von der Seite her, dass es mehr Arbeit beim Schreiben ist. Auch von der Lesbarkeit her finde ich diese Variante nicht so sinnvoll, deshalb werde ich sie gleich wieder ausmarkieren, aber als Vergleichsvariante hat sie ihre Berechtigung. In der Praxis würden Sie eher hier die Klammern setzen. Betrachten wir uns das Ganze mit einem weiteren Beispiel. Diesmal verwenden wir unsere Artikeltabelle, z.B.: "Artikel" mit einem Preis " 100" Euro, die der Gruppe "Garten" oder "Heimwerken" angehören sowie "Besteck" und "Geschirr", das "< 25" Euro kostet. Worauf müssen wir hier nun achten? Ich führe noch schnell die SELECT-Klausel an, nehme hier die Artikelgruppe zur Artikelnummerbezeichnung noch dazu wie auch den Verkaufspreis. Nun kommen wir zur WHERE-Klausel. Wir haben gesagt, Artikel mit einem Preis über "100 Euro", die der Gruppe "Garten" oder "Heimwerken" angehören. D.h., wir haben einerseits "die Artikelgruppe = 'GA'" oder " die Artikelgruppe = 'HW'" das sind die jeweiligen Kürzel und der Verkaufspreis sollte 100 Euro übersteigen, sowie "OR Besteck", das heißt "Gruppe = 'BE'" und der Preis unter 25, also "END VK-Preis < 25". Hier müssen wir natürlich die Priorität wieder berücksichtigen. Wenn wir das so ausführen mit der natürlichen Priorität, bekommen wir natürlich ein Ergebnis, das überhaupt nicht dem entspricht, was wir hier haben wollten. Viel zu viele Ergebnissätze bekommen wir. Warum? Weil gemäß der natürlichen Priorität es egal ist z.B., was ein Gartenartikel kostet. Da das "und" stärker als dieses "oder" ist gilt die zweite Bedingung, dass der Verkaufspreis 100 Euro übersteigt, für die Gartenartikel nicht. Das heißt, die erste Klammer müssen wir wieder hier setzen, um diese zwei Bedingungen hier zusammenzufassen. Wie sieht es beim hinteren Teil aus? Zusätzlich haben wir hier entweder Gruppe "Besteck" unter "Verkaufspreis < 25". Hier ist die natürliche Priorität ausreichend. Das "und" ist stärker als das "oder", soll es auch sein. Dieses "oder" ist schwächer als dieses "und", soll es auch sein. D.h., hier ist keine weitere Klammersetzung mehr erforderlich. Wir können diese Anweisung schon ausführen und bekommen jetzt 61 anstelle von zuvor 248 Zeilen. Das ist das korrekte Ergebnis. Allerdings können Sie natürlich die Lesbarkeit dieses Ergebnisses noch erhöhen. Dafür gebe ich Ihnen folgende Tipps: Zum einen empfehle ich Ihnen, hier Zeilenumbrüche zu verwenden, um die Dinge, die logisch zusammengehören, in eine Zeile zu setzen und Dinge, die einen neuen Bereich beginnen, in einer neuen Zeile zu beginnen. Das würde hier für dieses Beispiel bedeuten, dass Sie hier vor diesem "oder" einfach eine Zeilenschaltung einbauen. Damit haben Sie die Dinge, die zusammengehören, nämlich Garten- und Heimwerkerartikel, die mehr als 100 Euro kosten, in einer Zeile stehen sowie hier darunter zusätzlich die zweite Bedingung. In einer eigenen Zeilengruppe ist Besteck und der Verkaufspreis muss unter 25 Euro liegen. Zusätzlich können Sie Klammern setzen, die zwar die Priorität nicht verändern, aber die Lesbarkeit erhöhen, so wie in der Mathematik. Zusätzliche Klammern schaden nicht, solange sie nicht so gesetzt werden, dass sie die inhaltliche Komponente verändern. Z.B. könnten Sie auch hier sagen, ich möchte diesen Teil zusätzlich hervorheben bzw. die Zusammengehörigkeit dieses Teils hervorheben und setze deshalb diese zwei Bedingungen zusätzlich in runde Klammern. Das verändert jetzt zwar nichts mehr am Ergebnis aber steigert unter Umständen die Lesbarkeit. Zusätzlich könnten Sie auch noch sagen: Wenn ich diesen Teil hier zusammenhänge, dann möchte ich auch hier dokumentieren, dass er zusammengehört und Sie könnten sogar hier eine zusätzliche Klammer, sofern Sie dies möchten, ergänzen. Dadurch verändern Sie nichts mehr am Ergebnis. Wenn wir sie jetzt ausführen, die Anweisung, bekommen wir wieder unsere 61 Treffer, aber unter Umständen haben Sie die Lesbarkeit erhöht. Verwenden Sie also immer dann Klammern, wenn die natürliche Priorität nicht ausreicht, um das gewünschte Ergebnis zu erzielen. Beachten Sie, dass das "und" eine stärkere Priorität als das "oder" aufweist. Zusätzliche Klammersetzung, um die Lesbarkeit zu erhöhen, können Sie jederzeit verwenden. Verwenden Sie auch durchaus Zeilenumbrüche innerhalb der WHERE-Klausel, um jene Kriterien, die zusammengehören, besser hervorzuheben. Sie finden keine Syntaxunterschiede in diesen Beispielen bei Oracle oder MySQL.

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!