SQL SELECT INTOAnweisungen
Mit SQL können Sie Informationen von einer Tabelle in eine andere kopieren.
Die SELECT INTO-Anweisung kopiert Daten aus einer Tabelle und fügt sie in eine andere neue Tabelle ein.
SQL SELECT INTO-Anweisung
Die SELECT INTO-Anweisung kopiert Daten aus einer Tabelle und fügt sie in eine andere neue Tabelle ein.
Hinweis:
Die MySQL-Datenbank unterstützt die SELECT ... INTO-Anweisung nicht, unterstützt aberINSERT INTO ... SELECT 。
Natürlich können Sie die folgende Anweisung verwenden, um die Tabellenstruktur und die Daten zu kopieren:
CREATE TABLE 新表 AS SELECT * FROM 旧表
SQL SELECT INTO-Syntax
Angenommen, es gibt eine Tabelle namens employees mit den folgenden Daten:
| EmployeeID | FirstName | LastName | Alter | Abteilung |
|---|---|---|---|---|
| 1 | John | Doe | 30 | Sales |
| 2 | Jane | Smith | 25 | HR |
| 3 | Sam | Brown | 28 | IT |
Um eine neue Tabelle mit dem Namenemployees_backupund einzufügenemployeesalle Daten aus der Tabelle in die neue Tabelle einzufügen, können Sie die folgende SQL-Anweisung verwenden:
SELECT * INTO employees_backup FROM employees;
Nach Ausführung dieser Anweisung wird die neueemployees_backupTabelle nur Daten von Mitarbeitern enthalten, die älter als 25 sind.
SELECT EmployeeID, FirstName, LastName, Age, Department INTO employees_backup FROM employees WHERE Age > 25;
Verwendungshinweise
Tabellenstruktur:
SELECT INTOerstellt eine neue Tabelle, und die Struktur der neuen Tabelle basiert auf den ausgewählten Spalten und Datentypen.- Wenn die neue Tabelle bereits existiert,
SELECT INTOschlägt die Anweisung fehl. In diesem Fall können SieINSERT INTO ... SELECTAnweisung weglassen.
Datenbankunterstützung:
SELECT INTODie Anweisung ist in SQL Server sehr verbreitet, aber in MySQL und PostgreSQL wird sie üblicherweise verwendetCREATE TABLE ... AS SELECTAnweisung weglassen.
Alternativen in anderen Datenbanken
MySQL und PostgreSQL
In MySQL und PostgreSQL können Sie verwendenCREATE TABLE ... AS SELECTum ähnliche Funktionalität zu erreichen:
CREATE TABLE employees_backup AS SELECT EmployeeID, FirstName, LastName, Age, Department FROM employees WHERE Age > 25;Andere Erweiterungen