SQL SELECT INTOInstructions


Avec SQL, vous pouvez copier des informations d'une table à une autre.

L'instruction SELECT INTO copie les données d'une table et les insère dans une autre nouvelle table.


Instruction SQL SELECT INTO

L'instruction SELECT INTO copie les données d'une table et les insère dans une autre nouvelle table.

Remarque :

La base de données MySQL ne prend pas en charge l'instruction SELECT ... INTO, mais prend en chargeINSERT INTO ... SELECT 。

Bien sûr, vous pouvez utiliser l'instruction suivante pour copier la structure et les données de la table :

CREATE TABLE 新表
AS
SELECT * FROM 旧表 

Syntaxe SQL SELECT INTO

Supposons qu'il existe une table nommée employees contenant les données suivantes :

EmployeeIDFirstNameLastNameÂgeDépartement
1JohnDoe30Sales
2JaneSmith25HR
3SamMarron28Informatique

Pour créer une nouvelle table nomméeemployees_backupet inséreremployeestoutes les données de la table dans la nouvelle table, vous pouvez utiliser l'instruction SQL suivante :

SELECT *
INTO employees_backup
FROM employees;

Après avoir exécuté cette instruction, la nouvelleemployees_backuptable ne contiendra que les données des employés de plus de 25 ans.

SELECT EmployeeID, FirstName, LastName, Age, Department
INTO employees_backup
FROM employees
WHERE Age > 25;

Notes d'utilisation

Structure de la table:

  • SELECT INTOcréera une nouvelle table, et la structure de la nouvelle table sera basée sur les colonnes et les types de données sélectionnés.
  • Si la nouvelle table existe déjà,SELECT INTOl'instruction échouera. Dans ce cas, vous pouvez utiliserINSERT INTO ... SELECTl'instruction.

Prise en charge des bases de données:

  • SELECT INTOL'instruction est très courante dans SQL Server, mais dans MySQL et PostgreSQL, elle est généralement utiliséeCREATE TABLE ... AS SELECTl'instruction.

Alternatives dans d'autres bases de données

MySQL et PostgreSQL

Dans MySQL et PostgreSQL, vous pouvez utiliserCREATE TABLE ... AS SELECTpour obtenir des fonctionnalités similaires :

CREATE TABLE employees_backup AS
SELECT EmployeeID, FirstName, LastName, Age, Department
FROM employees
WHERE Age > 25;
Autres extensions