Heim  >  Artikel  >  Datenbank  >  Verwendung von insert in select

Verwendung von insert in select

DDD
DDDOriginal
2023-07-06 16:47:1533917Durchsuche

Verwendung von insert in select

In relationalen Datenbanken ist INSERT INTO SELECT eine gängige SQL-Anweisung, die zum Einfügen der Ergebnisse einer Abfrage in eine andere Tabelle verwendet wird. Diese Syntaxstruktur ist sehr nützlich, um Daten einfach von einer Tabelle in eine andere zu kopieren oder Daten basierend auf bestimmten Bedingungen zu filtern und einzufügen.

Die Syntaxstruktur von INSERT INTO SELECT lautet wie folgt:

INSERT INTO 表名 (列1, 列2, 列3, ...)
SELECT 列1, 列2, 列3, ...
FROM 来源表
WHERE 条件;

Unter anderem gibt die INSERT INTO-Klausel die Zieltabelle und Zielspalte an, in die Daten eingefügt werden sollen. Die SELECT-Klausel definiert, aus welcher Tabelle Daten ausgewählt werden sollen, und gibt an, welche Spalten in die Zieltabelle eingefügt werden sollen. Sie können bei Bedarf die entsprechenden Spalten auswählen, sodass nicht alle Spalten in die Zieltabelle eingefügt werden müssen.

Die Quelltabelle in der SELECT-Klausel bezieht sich auf die Tabelle, aus der Daten ausgewählt werden sollen. Dabei kann es sich um einen bestimmten Tabellennamen oder eine Abfrageergebnismenge handeln. Wenn Sie INSERT INTO SELECT verwenden, können Sie nach Bedarf mehrere Abfrageanweisungen verschachteln, um die Datenübertragungs- und Filteranforderungen zu erfüllen.

Die WHERE-Klausel ist optional und wird zum Filtern von Daten verwendet, die bestimmte Bedingungen in der Quelltabelle erfüllen. Sie können beispielsweise die WHERE-Klausel verwenden, um das Einfügen nur von Zeilen zu begrenzen, die bestimmte Bedingungen erfüllen, oder andere Operatoren (wie IN, LIKE usw.) verwenden, um die Daten weiter zu filtern.

Im Folgenden finden Sie einige Anwendungsbeispiele für INSERT INTO SELECT:

Einfache Einfügeoperation:

Angenommen, es gibt zwei Tabellen A und B. Tabelle A enthält die Spalten ID, Name und Alter, und Tabelle B enthält die Spalten ID und Adresse. Um Daten aus Tabelle A in die entsprechende Spalte in Tabelle B einzufügen, können Sie die folgende Anweisung verwenden:

INSERT INTO B (id, address)
SELECT id, name
FROM A;

Auf diese Weise wird der Wert der ID-Spalte in Tabelle A in die ID-Spalte von Tabelle B eingefügt und der Name in Tabelle A. Der Wert der Spalte wird in die Adressspalte von Tabelle B eingefügt. Andere Spalten werden ignoriert.

Verwenden Sie die WHERE-Klausel zum Filtern:

Wenn Sie nur Daten einfügen möchten, die bestimmte Bedingungen erfüllen, können Sie der SELECT-Anweisung eine WHERE-Klausel hinzufügen. Um beispielsweise nur Datensätze in Tabelle B einzufügen, deren Alter in Tabelle A älter als 18 Jahre ist, können Sie die folgende Anweisung verwenden:

INSERT INTO B (id, address)
SELECT id, name
FROM A
WHERE age > 18;

Auf diese Weise werden nur Zeilen in Tabelle B eingefügt, die die Bedingungen erfüllen.

Einfügen mithilfe von Unterabfragen:

In der SELECT-Klausel können Sie auch Unterabfragen zum Auswählen von Daten verwenden. Um beispielsweise Zeilen, die die Bedingungen erfüllen, in eine andere Tabelle einzufügen, können Sie die folgende Anweisung verwenden:

INSERT INTO C (id, address)
SELECT id, address
FROM B
WHERE id IN (SELECT id FROM A WHERE age > 18);

Wählen Sie auf diese Weise zuerst die IDs aus, die die Bedingungen erfüllen, aus Tabelle A und dann basierend auf den entsprechenden Datensätzen aus Tabelle B auf diesen IDs und fügen Sie sie in Tabelle C ein.

Zusammenfassung

INSERT INTO SELECT ist eine leistungsstarke SQL-Anweisung, mit der Sie problemlos Daten von einer Tabelle in eine andere kopieren oder Daten basierend auf bestimmten Bedingungen filtern und einfügen können. Aufgrund seiner Flexibilität ist es im realen Datenbankbetrieb sehr nützlich.

Das obige ist der detaillierte Inhalt vonVerwendung von insert in select. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn