Avec SQL SELECT INTO, vous copiez et trans­fé­rez des en­re­gis­tre­ments sé­lec­tion­nés dans de nouvelles tables ou dans des zones de stockage tem­po­raires. Cela offre l’avantage d’un transfert de données rapide et fiable qui vous permet de classer, d’ac­tua­li­ser et de nettoyer les en­re­gis­tre­ments 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 per­met­tent de gérer, d’analyser et de modifier votre base de données de manière pro­fes­sion­nelle. Il s’agit notamment de commandes telles que SQL SELECT, qui per­met­tent d’effectuer de nom­breuses actions en com­bi­nai­son avec d’autres opé­ra­teurs. Avec SQL SELECT DISTINCT, vous pouvez par exemple supprimer les doublons, tandis qu’avec l’opérateur SQL SELECT INTO vous pouvez copier des en­re­gis­tre­ments d’une table dans une autre. SELECT INTO ne fait pas partie des commandes SQL, opé­ra­teurs SQL ou fonctions clas­siques, mais est considéré comme une clause SQL dans les ins­truc­tions SQL.

Conseil

Apprenez les prin­ci­pales bases et fonctions de SQL, l’un des langages de pro­gram­ma­tion et de base de données les plus demandés dans tous les secteurs. Notre in­tro­duc­tion à SQL avec exemples vous assure une prise en main rapide et réussie.

Syntaxe de SELECT INTO

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

SELECT *
INTO nouvelle_table_cible
FROM table_existante;
sql

Les pa­ra­mètres suivants sont utilisés :

  • SELECT : la commande SELECT définit les colonnes de la table existante à partir des­quelles vous souhaitez copier des données. Vous pouvez soit indiquer des noms de colonnes spé­ci­fiques, soit utiliser l’as­té­risque * pour copier toutes les données du tableau source.
  • INTO : définit et nomme la nouvelle table cible pour les en­re­gis­tre­ments copiés.
  • FROM : sé­lec­tionne la table existante à partir de laquelle copier les en­re­gis­tre­ments.
  • WHERE: Avec la clause optionnelle [SQLWHERE`](t3://page?uid=32889), vous dé­fi­nis­sez d’autres con­di­tions concrètes que les données à copier doivent remplir à partir de la table source.

Ap­pli­ca­tions de SELECT INTO

En principe, SQL SELECT INTO convient pour trans­fé­rer des données dans une nouvelle table. D’autres pos­si­bi­li­tés d’uti­li­sa­tion com­pren­nent l’agré­ga­tion, la mise en mémoire tampon tem­po­raire ou l’ex­trac­tion d’en­re­gis­tre­ments ou de sous-ensembles. La sup­pres­sion sup­plé­men­taire des doublons, par exemple avec DISTINCT, permet en outre de nettoyer et de réduire vos données.

Les cas d’ap­pli­ca­tion pratiques dans dif­fé­rents secteurs com­pren­nent entre autres :

  • Copier, extraire et trans­fé­rer des données de clients, de commandes, de patients ou de produits pour de nouveaux projets, des études ou des mi­gra­tions 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 fi­nan­cières grâce au transfert de données de tran­sac­tion.
  • Nettoyer des données clients ou employés en sup­pri­mant 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’ap­pren­tis­sage au­to­ma­tique.
Conseil

Vous re­cher­chez un système de gestion de base de données évolutif et sécurisé ? Profitez du serveur d’hé­ber­ge­ment SQL de IONOS et découvrez des offres de serveur et d’hé­ber­ge­ment per­son­na­li­sées avec les normes eu­ro­péennes de pro­tec­tion des données.

Serveurs virtuels (VPS)
VPS éco­no­miques sur serveurs Dell En­ter­prise
  • 1 Gbit/s de bande passante et trafic illimité
  • Dis­po­ni­bi­lité de 99,99 % et cer­ti­fi­ca­tion ISO
  • As­sis­tance 24/7 primée pour sa qualité et con­seil­ler personnel

Exemples pratiques de SQL SELECT INTO

Pour illustrer le fonc­tion­ne­ment de SQL SELECT INTO, voici deux exemples d’ap­pli­ca­tion pratiques.

Sé­lec­tion­ner et trans­fé­rer des clients uniques

Vous souhaitez sé­lec­tion­ner 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 trans­fé­rer dans une nouvelle table « Nou­vel­les­Com­mandes » ? Procédez comme suit :

SELECT DISTINCT Nom du client
INTO NouvellesCommandes
FROM Commandes;
sql

Trans­mettre les entrées des clients d’une région donnée

La clause WHERE vous permet de définir plus pré­ci­sé­ment les données clients par des con­di­tions sup­plé­men­taires. Si vous souhaitez par exemple trans­fé­rer toutes les entrées avec des noms de clients qui pro­vien­nent de France, procédez comme suit :

SQL Server :

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

MySQL, Post­greSQL, SQlite :

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

Al­ter­na­tives à SQL SELECT INTO

Pour copier et trans­fé­rer des données entre des tables, il existe d’autres options en plus de SELECT INTO. Nous pré­sen­tons briè­ve­ment les plus im­por­tantes d’entre elles :

  • INSERT INTO SELECT : avec SQL INSERT INTO SELECT, vous copiez et trans­fé­rez des en­re­gis­tre­ments ou des résultats sé­lec­tion­nés en com­bi­nai­son avec SELECT d’une table vers une table déjà existante. La dif­fé­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’ins­truc­tion SQL CREATE TABLE permet de créer une nouvelle table. En com­bi­nai­son avec SQL SELECT et les alias SQL, vous pouvez définir que la nouvelle table se base sur les résultats de l’ins­truc­tion SELECT. Ainsi, elle peut contenir des données sé­lec­tion­nées d’une table existante.
  • UNION ou UNION ALL : avec l’opérateur SQL UNION, vous réunissez les en­re­gis­tre­ments de tables et de colonnes sé­lec­tion­nées dans une nouvelle table de sortie sans doublons. En com­bi­nai­son avec l’opérateur logique ALL, vous indiquez que tous les en­re­gis­tre­ments d’une table doivent être pris en compte, y compris les doublons.
  • IMPORT TABLE : l’ins­truc­tion IMPORT TABLE ne convient que si vous souhaitez importer dans une table des en­re­gis­tre­ments provenant de tables et de fichiers externes. Cette ins­truc­tion est surtout dis­po­nible dans les versions récentes de SQL.
  • LOAD DATA INFILE : cette ins­truc­tion fonc­tionne de la même manière que l’ins­truc­tion IMPORT TABLE, mais elle offre une ap­pli­ca­tion plus flexible, bien que plus complexe, et davantage de formats pris en charge pour les sources de données externes. Elle est dis­po­nible dans toutes les versions de SQL.
Aller au menu principal