# SQL SELECT INTO : copier des enregistrements dans des tables

Avec SQL `SELECT INTO`, vous copiez et transférez **des enregistrements sélectionnés dans de nouvelles tables ou dans des zones de stockage temporaires**. Cela offre l’avantage d’un transfert de données rapide et fiable qui vous permet de classer, d’actualiser et de nettoyer les enregistrements sans laisser de traces.

## Qu’est-ce que SQL `SELECT INTO` ?

Le langage de base de données SQL offre une série d’outils qui vous permettent de gérer, d’analyser et de modifier votre base de données de manière professionnelle. Il s’agit notamment de commandes telles que [SQL `SELECT`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-select/), qui permettent d’effectuer de nombreuses actions en combinaison avec d’autres opérateurs. Avec [SQL `SELECT DISTINCT`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-select-distinct/), vous pouvez par exemple supprimer les doublons, tandis qu’avec l’opérateur SQL `SELECT INTO` **vous pouvez copier des enregistrements d’une table dans une autre**. `SELECT INTO` ne fait pas partie des [commandes SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/), [opérateurs SQL](https://www.ionos.fr/digitalguide/serveur/configuration/les-operateurs-sql/) ou fonctions classiques, mais est considéré comme une clause SQL dans les instructions SQL.

Conseil Apprenez les principales bases et fonctions de [SQL](https://www.ionos.fr/digitalguide/serveur/know-how/definition-de-sql/), l’un des langages de programmation et de base de données les plus demandés dans tous les secteurs. Notre [introduction à SQL avec exemples](https://www.ionos.fr/digitalguide/serveur/configuration/introduction-a-sql-a-laide-dexemples/) vous assure une prise en main rapide et réussie.

## Syntaxe de `SELECT INTO`

La syntaxe de `SELECT INTO` se présente comme suit :

```sql
SELECT *
INTO nouvelle_table_cible
FROM table_existante;
```

Les paramètres suivants sont utilisés :

- `SELECT` : la commande `SELECT` définit les colonnes de la table existante à partir desquelles vous souhaitez copier des données. Vous pouvez soit indiquer des noms de colonnes spécifiques, soit utiliser l’astérisque `*` pour copier toutes les données du tableau source.
- `INTO` : définit et nomme la nouvelle table cible pour les enregistrements copiés.
- `FROM` : sélectionne la table existante à partir de laquelle copier les enregistrements.
- WHERE`: Avec la clause optionnelle [SQL`WHERE`\](t3://page?uid=32889), vous définissez d’autres conditions concrètes que les données à copier doivent remplir à partir de la table source.

## Applications de `SELECT INTO`

En principe, SQL `SELECT INTO` convient pour transférer des données dans une nouvelle table. D’autres possibilités d’utilisation comprennent **l’agrégation, la mise en mémoire tampon temporaire ou l’extraction** d’enregistrements ou de sous-ensembles. La suppression supplémentaire des doublons, par exemple avec `DISTINCT`, permet en outre de nettoyer et de réduire vos données.

Les cas d’application pratiques dans différents secteurs comprennent entre autres :

- Copier, extraire et transférer des données de clients, de commandes, de patients ou de produits pour de nouveaux projets, des études ou des migrations de données.
- Analyser des tendances et de marketing grâce à des données agrégées de commandes et de ventes.
- Analyser des données financières grâce au transfert de données de transaction.
- Nettoyer des données clients ou employés en supprimant les doublons dans les nouvelles tables.
- Collecter et analyser de données dans des entrepôts de données.
- Collecter de données pour les modèles d’apprentissage automatique.

Conseil Vous recherchez un système de gestion de base de données évolutif et sécurisé ? Profitez du [serveur d’hébergement SQL](https://www.ionos.fr/cloud/hebergement-serveur-sql "Hébergement SQL pour les bases de données MSSQL, MySQL et MariaDB | IONOS") de IONOS et découvrez des offres de serveur et d’hébergement personnalisées avec les normes européennes de protection des données.

## Exemples pratiques de SQL `SELECT INTO`

Pour illustrer le fonctionnement de SQL SELECT INTO, voici deux exemples d’application pratiques.

### Sélectionner et transférer des clients uniques

Vous souhaitez sélectionner dans une table « Commandes » tous les résultats uniques de la colonne « Nom du client », sans lignes en double dues à des commandes multiples, et les transférer dans une nouvelle table « NouvellesCommandes » ? Procédez comme suit :

```sql
SELECT DISTINCT Nom du client
INTO NouvellesCommandes
FROM Commandes;
```

### Transmettre les entrées des clients d’une région donnée

La clause `WHERE` vous permet de définir plus précisément les données clients par des conditions supplémentaires. Si vous souhaitez par exemple transférer toutes les entrées avec des noms de clients qui proviennent de France, procédez comme suit :

**SQL Server** :

```sql
SELECT Nom du client, Pays
INTO NouvellesCommandes
FROM Commandes
WHERE Pays = 'France';
```

**MySQL, PostgreSQL, SQlite** :

```sql
INSERT INTO NouvellesCommandes (Nom du client, Pays)
SELECT Nom du client, Pays
FROM Commandes
WHERE Pays = 'France';
```

## Alternatives à SQL `SELECT INTO`

Pour copier et transférer des données entre des tables, il existe d’autres options en plus de `SELECT INTO`. Nous présentons brièvement les plus importantes d’entre elles :

- `INSERT INTO SELECT` : avec [SQL `INSERT INTO SELECT`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-insert-into-select/), vous copiez et transférez des enregistrements ou des résultats sélectionnés en combinaison avec `SELECT` d’une table vers une table déjà existante. La différence réside dans le fait que `SELECT INTO` permet de créer une nouvelle table pour la copie et le transfert.
- `CREATE TABLE AS` : l’instruction [SQL `CREATE TABLE`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-create-table/) permet de créer une nouvelle table. En combinaison avec [SQL `SELECT`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-select/) et les alias SQL, vous pouvez définir que la nouvelle table se base sur les résultats de l’instruction `SELECT`. Ainsi, elle peut contenir des données sélectionnées d’une table existante.
- `UNION` ou `UNION ALL` : avec l’opérateur [SQL `UNION`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-union/), vous réunissez les enregistrements de tables et de colonnes sélectionnées dans une nouvelle table de sortie sans doublons. En combinaison avec l’opérateur logique `ALL`, vous indiquez que tous les enregistrements d’une table doivent être pris en compte, y compris les doublons.
- `IMPORT TABLE` : l’instruction `IMPORT TABLE` ne convient que si vous souhaitez importer dans une table des enregistrements provenant de tables et de fichiers externes. Cette instruction est surtout disponible dans les versions récentes de SQL.
- `LOAD DATA INFILE` : cette instruction fonctionne de la même manière que l’instruction `IMPORT TABLE`, mais elle offre une application plus flexible, bien que plus complexe, et davantage de formats pris en charge pour les sources de données externes. Elle est disponible dans toutes les versions de SQL.


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/configuration/sql-select-into/](https://www.ionos.fr/digitalguide/serveur/configuration/sql-select-into/) for AI/LLM consumption.