Latest web development tutorials

SQLite subquery

Subquery oder verschachtelte Abfragen oder interne Abfrage wird in der Abfrage WHERE-Klausel in einer anderen SQLite Abfrage eingebettet.

Die Verwendung von Unterabfrage gibt die Daten werden in der Hauptabfrage als Bedingung für die Daten abgerufen werden, begrenzen, um weiter verwendet werden.

Unterabfragen können mit SELECT, INSERT, UPDATE und DELETE-Anweisungen durch die Verwendung Operatoren wie = begleitet verwendet werden kann, <,>,> =, <=, IN, wie ZWISCHEN.

Das Folgende ist eine Unterabfrage mehrere Regeln, die befolgt werden müssen:

  • Subqueries müssen in Klammern gesetzt werden.

  • Sub-Abfrage SELECT-Klausel kann nur eine Spalte haben, es sei denn, mehrere Spalten in der Hauptabfrage, die ausgewählte Spalte subquery Vergleich.

  • ORDER BY kann nicht in einer Unterabfrage verwendet werden, obwohl die Hauptabfrage ORDER BY verwenden können. Sie können die GROUP BY in Unterabfragen verwenden, funktioniert die gleiche wie die ORDER BY.

  • Unterabfrage gibt mehr als eine Zeile, kann nur mit Mehrwertoperator, wie die IN-Operator verwendet werden.

  • ZWISCHEN Bediener nicht mit Unterabfragen verwendet werden können, kann jedoch zwischen in Unterabfragen verwendet werden.

SELECT-Anweisung subquery

Subquery ist in der Regel mit einer SELECT-Anweisung verwendet. Die grundlegende Syntax lautet wie folgt:

SELECT column_name [, Spaltenname]
FROM table1 [, table2]
WHERE column_name OPERATOR
      (SELECT column_name [, Spaltenname]
      FROM table1 [, table2]
      [WHERE])

Beispiele

Angenommen COMPANY Tabelle hat die folgenden Einträge:

ID Name Alter ADRESSE GEHALT
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20.000,0
2 Allen 25 Texas 15.000,0
3 Teddy 23 Norwegen 20.000,0
4 Mark 25 Reiche-Mond 65.000,0
5 David 27 Texas 85.000,0
6 Kim 22 Süd-Halle 45.000,0
7 James 24 Houston 10000.0

Lassen Sie uns nun die SELECT-Anweisung subquery untersuchen:

sqlite> SELECT * 
     VON UNTERNEHMEN 
     WHERE ID IN (SELECT ID 
                  VON UNTERNEHMEN 
                  WHERE GEHALT> 45000);

Daraus ergeben sich die folgenden Ergebnisse:

ID Name Alter ADRESSE GEHALT
---------- ---------- ---------- ---------- ----------
4 Mark 25 Reiche-Mond 65.000,0
5 David 27 Texas 85.000,0

INSERT-Anweisung subquery

Unterabfragen können auch mit INSERT-Anweisung verwendet werden. INSERT-Anweisung verwendet eine Unterabfrage Daten in eine andere Tabelle zurückzukehren. In Unterabfrage können die ausgewählten Daten werden jedes Zeichen, das Datum oder numerische Funktion Änderung.

Die grundlegende Syntax lautet wie folgt:

INSERT INTO table_name [(column1 [, column2])]
           SELECT [* | column1 [, column2]
           FROM table1 [, table2]
           [WHERE VALUE Operator]

Beispiele

Angenommen COMPANY_BKP COMPANY Tabellenstruktur und ähnliche, und kann die gleiche CREATE TABLE verwenden, um zu erstellen, ändern Sie einfach den Namen der Tabelle COMPANY_BKP. Jetzt das gesamte Unternehmen Tabelle COMPANY_BKP kopieren, Syntax lautet wie folgt:

INSERT sqlite> INTO COMPANY_BKP
     SELECT * FROM UNTERNEHMEN 
     WHERE ID IN (SELECT ID 
                  VON UNTERNEHMEN);

UPDATE-Anweisung subquery

Unterabfragen können mit der UPDATE-Anweisung verwendet werden. Wenn eine Unterabfrage UPDATE-Anweisung verwendet wird, werden einzelne oder mehrere Spalten in der Tabelle aktualisiert.

Die grundlegende Syntax lautet wie folgt:

UPDATE Tisch
SET column_name = new_value
[WHERE Operator [VALUE]
   (SELECT COLUMN_NAME
   VON TABLE_NAME)
   [WHERE)]

Beispiele

Nehmen wir an, dass wir COMPANY_BKP Tabelle, Backup COMPANY Tisch.

Die folgenden Beispiele der Tabelle FIRMA alle Alters als oder gleich 27 Kunden GEHALT das Original 0,50-fach aktualisiert:

sqlite> UPDATE COMPANY
     SET GEHALT = GEHALT * 0,50
     WO AGE IN (SELECT Alter von COMPANY_BKP
                   WO AGE> = 27);

Dadurch werden die beiden Linien der letzten COMPANY Datensätze in der Tabelle wie folgt auswirken:

ID Name Alter ADRESSE GEHALT
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 10000.0
2 Allen 25 Texas 15.000,0
3 Teddy 23 Norwegen 20.000,0
4 Mark 25 Reiche-Mond 65.000,0
5 David 27 Texas 42.500,0
6 Kim 22 Süd-Halle 45.000,0
7 James 24 Houston 10000.0

DELETE-Anweisung subquery

Unterabfragen können mit der DELETE-Anweisung, genau wie andere Aussagen wie oben erwähnt, verwendet werden.

Die grundlegende Syntax lautet wie folgt:

DELETE FROM TABLE_NAME
[WHERE Operator [VALUE]
   (SELECT COLUMN_NAME
   VON TABLE_NAME)
   [WHERE)]

Beispiele

Nehmen wir an, dass wir COMPANY_BKP Tabelle, Backup COMPANY Tisch.

Die folgenden Beispiele löschen alle Kundendaten größer oder gleich 27 Jahre COMPANY Tabelle:

sqlite> FROM UNTERNEHMEN DELETE
     WO AGE IN (SELECT Alter von COMPANY_BKP
                   WO AGE> 27);

Dadurch werden die beiden Linien der letzten COMPANY Datensätze in der Tabelle wie folgt auswirken:

ID Name Alter ADRESSE GEHALT
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15.000,0
3 Teddy 23 Norwegen 20.000,0
4 Mark 25 Reiche-Mond 65.000,0
5 David 27 Texas 42.500,0
6 Kim 22 Süd-Halle 45.000,0
7 James 24 Houston 10000.0