logo

SQL | Unterabfrage

In SQL kann eine Unterabfrage einfach als Abfrage innerhalb einer anderen Abfrage definiert werden. Mit anderen Worten können wir sagen, dass eine Unterabfrage eine Abfrage ist, die in die WHERE-Klausel einer anderen SQL-Abfrage eingebettet ist. Wichtige Regeln für Unterabfragen:

  • Sie können die Unterabfrage in eine Reihe von SQL-Klauseln einfügen: WO Klausel, HAVING-Klausel, FROM-Klausel. Unterabfragen können mit SELECT-, UPDATE-, INSERT- und DELETE-Anweisungen zusammen mit Ausdrucksoperatoren verwendet werden. Es kann sich um einen Gleichheitsoperator oder einen Vergleichsoperator wie den Operator =,>, =, <= und Like handeln.
  • Eine Unterabfrage ist eine Abfrage innerhalb einer anderen Abfrage. Die äußere Abfrage heißt als Hauptabfrage und die innere Abfrage heißt als Unterabfrage .
  • Die Unterabfrage wird im Allgemeinen zuerst ausgeführt, wenn die Unterabfrage keine hat Mitbeziehung mit dem Hauptabfrage , wenn eine Korrelation besteht, trifft der Parser die Entscheidung im laufenden Betrieb welche Abfrage ausgeführt werden soll Vorrang und verwendet die Ausgabe der Unterabfrage entsprechend.
  • Die Unterabfrage muss in Klammern eingeschlossen werden.
  • Unterabfragen befinden sich auf der rechten Seite des Vergleichsoperators.
  • SORTIEREN NACH Befehl kann nicht in einer Unterabfrage verwendet werden. GRUPPIERE NACH Der Befehl kann verwendet werden, um dieselbe Funktion wie der Befehl ORDER BY auszuführen.
  • Verwenden Sie einzeilige Operatoren mit einzeiligen Unterabfragen. Verwenden Sie mehrzeilige Operatoren mit mehrzeiligen Unterabfragen.

Syntax: Es gibt keine allgemeine Syntax für Unterabfragen. Allerdings werden Unterabfragen am häufigsten mit der SELECT-Anweisung verwendet, wie unten gezeigt:

SELECT column_name FROM table_name WHERE column_name expression operator ( SELECT COLUMN_NAME from TABLE_NAME WHERE ... );>

Beispieltabelle :



Java-Utility-Datum

DATENBANK

NAME ROLL_NR STANDORT TELEFONNUMMER
RAM 101 Chennai 9988775566
Raj 102 Coimbatore 8877665544
Sasi 103 Madurai 7766553344
Behandlung 104 Salem 8989898989
Sumathi 105 Kanchipuram 8989856868

STUDENT

NAME ROLL_NR ABSCHNITT
Behandlung 104 A
Sumathi 105 B
Raj 102 A

Beispielabfragen

So konvertieren Sie eine Ganzzahl in eine Zeichenfolge in Java

:

Zusatztasten
  • Um NAME, STANDORT und TELEFONNUMMER der Schüler aus der DATABASE-Tabelle anzuzeigen, deren Abschnitt A ist
Select NAME, LOCATION, PHONE_NUMBER from DATABASE WHERE ROLL_NO IN (SELECT ROLL_NO from STUDENT where SECTION=’A’);>
    Erläuterung: Die erste Unterabfrage führt SELECT ROLL_NO von STUDENT aus, wobei SECTION='A' ROLL_NO aus der STUDENT-Tabelle zurückgibt, deren SECTION 'A' ist. Dann führt die äußere Abfrage sie aus und gibt NAME, LOCATION, PHONE_NUMBER aus der DATABASE-Tabelle des Studenten zurück, dessen ROLL_NO wird von der inneren Unterabfrage zurückgegeben. Ausgabe:
NAME ROLL_NR STANDORT TELEFONNUMMER
Behandlung 104 Salem 8989898989
Raj 102 Coimbatore 8877665544
  • Beispiel für eine Abfrage einfügen:

Tabelle 1: Student1

NAME ROLL_NR STANDORT TELEFONNUMMER
RAM 101 Chennai 9988773344
Raju 102 Coimbatore 9090909090
Behandlung 103 Salem 8989898989

Tabelle2: Student2

NAME ROLL_NR STANDORT TELEFONNUMMER
Raj 111 Chennai 8787878787
Bis 112 Mumbai 6565656565
Sri 113 Coimbatore 7878787878
  • So fügen Sie Student2 in die Tabelle Student1 ein:
INSERT INTO Student1 SELECT * FROM Student2;>
  • Ausgabe:
NAME ROLL_NR STANDORT TELEFONNUMMER
RAM 101 Chennai 9988773344
Raju 102 Coimbatore 9090909090
Behandlung 103 Salem 8989898989
Raj 111 Chennai 8787878787
Bis 112 Mumbai 6565656565
Sri 113 Coimbatore 7878787878
  • Um Schüler aus der Tabelle „Student2“ zu löschen, deren Rollennummer mit der in der Tabelle „Student1“ übereinstimmt und deren Standort Chennai ist
DELETE FROM Student2 WHERE ROLL_NO IN ( SELECT ROLL_NO FROM Student1 WHERE LOCATION = ’chennai’);>
  • Ausgabe:
1 row delete successfully.>
    Student2-Tabelle anzeigen:
NAME ROLL_NR STANDORT TELEFONNUMMER
Bis 112 Mumbai 6565656565
Sri 113 Coimbatore 7878787878
  • Um den Namen der Schüler in „Geeks“ in der Tabelle „Student2“ zu aktualisieren, deren Standort mit Raju,Ravi in ​​der Tabelle „Student1“ übereinstimmt
UPDATE Student2 SET NAME=’geeks’ WHERE LOCATION IN ( SELECT LOCATION FROM Student1 WHERE NAME IN (‘Raju’,’Ravi’));>
  • Ausgabe:
1 row updated successfully.>
    Student2-Tabelle anzeigen:
NAME ROLL_NR STANDORT TELEFONNUMMER
Bis 112 Mumbai 6565656565
Geeks 113 Coimbatore 7878787878