Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Verschachtelte Abfragen | Verschachtelte Unterabfragen
Fortgeschrittene SQL
course content

Kursinhalt

Fortgeschrittene SQL

Fortgeschrittene SQL

1. Gruppierung
2. Verschachtelte Unterabfragen
3. Tabellen Verbinden
4. DDL und DML in SQL

book
Verschachtelte Abfragen

Die Schulverwaltung ist erfreut über unsere jüngsten Erfolge und freut sich darauf, voranzukommen.

Da sie ihre Sommerferien beginnen, haben wir die Möglichkeit, neue Methoden zu erkunden und unsere SQL-Fähigkeiten zu verbessern.

Unser Schwerpunkt liegt auf verschachtelten Abfragen, einem zentralen Konzept in SQL.

Schauen wir uns ein Beispiel aus unserer Firmendatenbank an. Mit dem Wachstum des Unternehmens haben wir eine neue department-Tabelle hinzugefügt. Dies ändert die Funktionsweise unserer Datenbank.

Sehen wir uns die Struktur der neuen Tabelle an, um ihre Rolle in unserer Datenbank zu verstehen:

Die neue Tabelle enthält Abteilungen, ihre Typen und Budgets. Und in der employee-Tabelle, wie Sie sich vielleicht erinnern, befinden sich Informationen über die Abteilung, zu der jeder Mitarbeiter gehört.

Lassen Sie uns ein Beispiel betrachten, in dem wir verschachtelte Abfragen verwenden, um diejenigen Mitarbeiter abzurufen, die in Abteilungen mit Budgets von 500.000 $ oder weniger arbeiten:

1234567
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
copy

Wir verwenden eine WHERE-Klausel, um festzulegen, dass der Abteilungsname in der Tabelle enthalten sein muss, die wir mit der inneren Abfrage abrufen.

Lassen Sie uns diese Abfrage in zwei separate Abfragen aufteilen, um zu verstehen, wie sie funktioniert. Zunächst rufen wir die Namen der Abteilungen mit Budgets von $500.000 oder weniger ab (unsere innere Abfrage):

123
SELECT name FROM department WHERE budget <= 500000
copy

Nun, unter Berücksichtigung des erhaltenen Ergebnisses, schreiben wir die zweite Abfrage, um Informationen über die Mitarbeiter aus diesen Abteilungen abzurufen:

12345
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )
copy

Das Ergebnis dieser Abfrage wird gleich der ersten Abfrage sein.

Hier ist eine schrittweise Übersicht:

  1. Die innere Abfrage ruft die names der benötigten Abteilungen ab;

  2. Die WHERE-Klausel prüft, ob diese Abteilungen in der Tabelle der inneren Abfrage vorhanden sind;

  3. Wir erhalten das gewünschte Ergebnis.

Hier ist die grundlegende Syntax für eine innere Abfrage:

Bei der Verwendung verschachtelter Abfragen sollten Sie folgende wichtige Punkte beachten:

  1. Einzelnes Ergebnis in der Unterabfrage: Stellen Sie sicher, dass die verschachtelte Abfrage nur eine Spalte zurückgibt. Wenn sie in einem Vergleich verwendet wird, sollte sie idealerweise einen einzelnen Wert zurückgeben. Dies ist entscheidend für Operatoren wie =, >, <, >=, <=, <>;

  2. Datentypen: Der Datentyp der zurückgegebenen Spalte sollte mit der Spalte übereinstimmen, mit der Sie sie vergleichen, um Fehler zu vermeiden;

  3. Optimierung: Verschachtelte Abfragen können langsam sein, insbesondere wenn sie für jede Zeile in der Hauptabfrage ausgeführt werden;

  4. Verwendung des IN Operators: Verschachtelte Abfragen nutzen oft den IN-Operator, um Werte in einer Teilmenge zu überprüfen. Sie können auch Vergleichsoperatoren für komplexere Bedingungen verwenden.

1. Was ist eine verschachtelte Abfrage in SQL?

2. Welcher SQL-Operator wird üblicherweise mit verschachtelten Abfragen verwendet, um Werte in einer Teilmenge zu überprüfen?

3. Warum ist es wichtig, dass der Datentyp der Spalte, die von einer verschachtelten Abfrage zurückgegeben wird, mit der Spalte übereinstimmt, mit der sie verglichen wird?

Was ist eine verschachtelte Abfrage in SQL?

Was ist eine verschachtelte Abfrage in SQL?

Wählen Sie die richtige Antwort aus

Welcher SQL-Operator wird üblicherweise mit verschachtelten Abfragen verwendet, um Werte in einer Teilmenge zu überprüfen?

Welcher SQL-Operator wird üblicherweise mit verschachtelten Abfragen verwendet, um Werte in einer Teilmenge zu überprüfen?

Wählen Sie die richtige Antwort aus

Warum ist es wichtig, dass der Datentyp der Spalte, die von einer verschachtelten Abfrage zurückgegeben wird, mit der Spalte übereinstimmt, mit der sie verglichen wird?

Warum ist es wichtig, dass der Datentyp der Spalte, die von einer verschachtelten Abfrage zurückgegeben wird, mit der Spalte übereinstimmt, mit der sie verglichen wird?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1
We're sorry to hear that something went wrong. What happened?
some-alt