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

INTERSECT

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Was gibt es in beiden Listen? INTERSECT liefert Ihnen alles, was in allen angegebenen Listen gleichermaßen enthalten ist.

Transkript

In diesem Video möchte ich Ihnen die Funktionsweise des SET-Operators "INTERSECT" erläutern. "INTERSECT" liefert vertikal die Schnittmenge aus zwei oder mehreren Teilergebnissen. Ich möchte Ihnen die Funktionsweise anhand eines kleinen einfachen Beispiels erläutern. Zu diesem Zweck verwende ich unsere Tabelle "Artikelgruppen". Im ersten Schritt werde ich aus dieser Tabelle alle Artikelgruppen herausfiltern, die in der Bezeichnung ein "E" enthalten: "WHERE gr text LIKE" und ich verwende hier ein Prozent "E%". Von unseren insgesamt 9 Artikelgruppen, die es in der Tabelle gibt, sind davon 8 betroffen. Wiederum gibt es in derselben Tabelle Artikelgruppen, die z.B. ein "A" enthalten. Diese kann ich mir der leicht modifizierten Anweisung herausfiltern, das sind diese 3. Mit "INTERSECT" kann ich nun die Schnittmenge bilden. Das heißt, ich kann jetzt alle Zeilen, die sowohl von der ersten als auch von der zweiten geliefert werden, hier anzeigen. Entscheidend ist, im Gegensatz zum "JOIN", dass wenn ich jetzt hier mehrere Spalten verwende, alle Spalten gleich sein müssen. Deshalb kann es unter Umständen aufwändig sein, diese Funktionalität durch einen JOIN zu substituieren, was theoretisch möglich wäre, je mehr Spalten Sie hier in der Anweisung haben. Ich verwende nun "INTERSECT", um diese zwei Werte hier zusammenzufügen. Warum bekomme ich hier einen Fehler vom Editor? Weil ich hier noch das Semikolon nach der ersten Anweisung stehen habe. Das muss ich hier natürlich entfernen. D.h. wir hatten vorher 8 und anschließend 3 Ergebniszeilen. Jetzt führe ich diese Anweisung gemeinsam aus, mit beiden Teilanweisungen und bekomme diese 2 hier als Ergebnis. Das sind also jene Artikelgruppen, die sowohl ein "A" als auch ein "E" in ihrer Bezeichnung enthalten haben. Wenn Sie dasselbe Beispiel bei Oracle ausführen, sollten Sie bedenken, dass hier die Groß- Kleinschreibung einen Einfluss haben könnte. D.h., um ganz sicherzugehen, dass auch nicht die Anfangsbuchstaben mit "A" und "E" berücksichtigt sind, verwende ich die Funktion "LOWER" jeweils, um die Schreibweise der Artikelgruppen-Bezeichnungen zu nivellieren. Ansonsten werde ich mit dieser Anweisung hier exakt dasselbe Ergebnis erzielen, d.h. auch hier sollten die 2 Artikelgruppen, die wir vorher gesehen haben, als Ergebnis herauskommen. Das ist auch so. Es sind dies die Artikelgruppen "Garten" und "Spielwaren". Betrachten wir uns das noch in MySQL, unserem dritten Datenbanksystem. MySQL unterstützt "INTERSECT" direkt nicht. D.h. wir bekommen hier einen Fehler, wenn ich das hier einfüge: "unbekanntes Schlüsselwort", deshalb muss ich das durch etwas Anderes nachempfinden. Von der Logik her bedeutet das ja, dass wir alles angezeigt bekommen, bei denen in der ersten und in der zweiten Anweisung die Artikelgruppen gleich sind, d.h. beide Spalten, in dem Fall die Spalte "art gr" und die Spalte "gr text". Das können wir in dem Fall z.B. mit einer paarweisen Unterabfrage hier auch lösen. Wie sieht das aus? Ich ergänze hier eine zweite Bedingung innerhalb meiner ersten Anweisung, in der ich definiere, dass die Spaltenartikelgruppe und "gr text" für die paarweise Unterabfrage muss ich diese in runde Klammer setzen enthalten sind in der zweiten Auflistung. Das heißt, diesmal verwende ich "IN" hier als Vergleichsoperator. Hier im "IN" kann ich nun die zweite als Unterabfrage sozusagen, die zweite Anweisung hier einbauen. Ich rücke das ein, damit das auch gut lesbar ist und schließe hier nach der Unterabfrage die Klammer. D.h. ich filtere jetzt alle Artikelgruppen, die einerseits ein "E" enthalten und deren Kombination als Kürzel- und Langtexte Artikelgruppe in der Liste aller enthalten ist, die ein "A" enthalten. Wenn wir diese Anweisung nun ausführen, bekommen wir exakt dasselbe Ergebnis wie mit "INTERSECT" bei Oracle oder dem Microsoft SQL Server. In diesem Video haben Sie gesehen, wie Sie über die Verwendung von "INTERSECT" die Schnittmenge aus zwei Teilergebnissen oder in weiterer Folge auch aus mehreren Teilergebnissen eruieren können. "INTERSECT" wird von My SQL nicht unterstützt, deshalb müssen Sie es hier durch die Verwendung z.B. einer paarweisen Unterabfrage substituieren.

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!