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:

EmployeeIDFirstNameLastNameAlterAbteilung
1JohnDoe30Sales
2JaneSmith25HR
3SamBrown28IT

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