Copier une table en SQL

Copier Une Table En Sql



À première vue, la duplication des données peut sembler inefficace ; il peut parfois jouer un rôle très crucial dans les cas où vous avez besoin d'une copie presque exacte du même tableau.

En SQL, nous pouvons utiliser diverses méthodes et techniques pour copier une table existante et avoir la nouvelle table sous un nouveau nom mais avec les mêmes données. Cela peut être très utile dans certaines tâches telles que les sauvegardes, la transformation de données, les modifications temporaires de données sans affecter la table principale, etc.







Dans ce guide, nous explorerons ces méthodes et apprendrons comment copier une table dans des bases de données SQL. En raison des différences dans la façon dont les différents moteurs de base de données SQL gèrent la copie des tables, nous ne couvrirons pas toutes les méthodes pour chaque base de données.



Nous essaierons d'en couvrir au moins un pour chaque moteur de base de données, chaque fois qu'il est pris en charge, pour vous montrer comment copier une table pour chacun de vos moteurs de base de données pris en charge.



Méthode 1 : Global (à l'aide de l'instruction CREATE TABLE)

La méthode la plus courante et la plus simpliste pour copier une table consiste à utiliser l'instruction CREATE TABLE.





Contrairement à une instruction CREATE TABLE normale, nous transmettons une instruction SELECT qui contient la structure et les données de la table source.

La syntaxe est la suivante :



CREATE TABLE new_table AS
SÉLECTIONNER * FROM source_table ;

Cela nous permet de créer une nouvelle table avec le nom spécifié à partir de la table source.

Prenons par exemple la base de données exemple Sakila. Supposons que nous souhaitions créer une table similaire à la table des locations.

Nous pouvons utiliser la technique précédente comme indiqué dans l'exemple de requête suivant :

CREATE TABLE rental_copy AS
SÉLECTIONNER * DE la location ;

Cela devrait créer une nouvelle table appelée « rental_copy » qui contient la même structure et les mêmes données que la table de location.

Vous pouvez vérifier en sélectionnant les données dans le tableau comme suit :

SÉLECTIONNER * DE rental_copy ;

Celui-ci doit contenir les données exactes comme le tableau de location.

Méthode 2 : Global (à l'aide de l'instruction INSERT INTO)

Une autre méthode globalement prise en charge par une grande variété de bases de données SQL consiste à utiliser l'instruction INSERT INTO.

Cette technique nous permet de copier d'une table à une autre. Contrairement à CREATE TABLE et SELECT, cette méthode nous permet de récupérer sélectivement les données.

Cela s'avère pratique lorsque nous avons besoin de plus de contrôle dans le processus de copie. Nous pouvons utiliser la syntaxe indiquée ci-dessous :

INSERT INTO target_table ( colonne1, colonne2, ... )
SELECT colonne 1, colonne 2, ...
FROM source_table ;

Dans ce cas, nous pouvons spécifier les colonnes que nous souhaitons inclure dans la nouvelle table sans pour autant tout récupérer de la table d'origine.

Prenons par exemple la requête suivante :

INSÉRER
DANS
location_copie ( location_id,
date_location,
date de retour )
SÉLECTIONNER
location_id,
date_location,
date de retour
DEPUIS
location r;

Un inconvénient de cette méthode est qu'elle peut vous obliger à créer un tableau similaire avec les colonnes que vous souhaitez inclure. Cela peut être répétitif et efficace lorsque vous travaillez avec un grand ensemble de données.

Méthode 3 : copier la structure du tableau

Dans d'autres cas, vous pourriez rencontrer des cas où vous êtes intéressé par la structure de la table sans avoir besoin des données stockées dans la table.

Dans un tel scénario, vous pouvez utiliser l'instruction CREATE TABLE conjointement avec la clause LIKE comme suit :

CREATE TABLE new_table ( LIKE source_table ) ;

Cela devrait créer une nouvelle table avec le nom spécifié et une structure similaire à celle de « source_table » sans réellement copier les données.

Copie des tables entre bases de données

Pour copier les tables entre différentes bases de données, nous pouvons exporter les données de la base de données source et les importer dans la base de données cible.

Cela implique généralement l'utilisation de formats basés sur des fichiers tels que CSV ou d'outils spécifiques à une base de données. Vous pouvez référencer la documentation de votre base de données pour savoir comment y parvenir, car elle peut varier en fonction du moteur de base de données.

Méthode 4 : utilisation des serveurs liés (SQL Server)

Dans SQL Server, nous pouvons copier les tables entre les bases de données à l'aide de serveurs liés.

Les serveurs liés nous permettent d'établir une connexion à une base de données distante et d'interroger ou de transférer les données entre eux.

La syntaxe est la suivante :

INSÉRER DANS [ Nom du serveur lié ] . [ Nom de la base de données ] . [ Nom du schéma ] . [ table_cible ]
SÉLECTIONNER * FROM source_table ;

Cela permet la connexion à distance et les transferts de données entre des serveurs distants.

Conclusion

Dans ce didacticiel, nous avons appris à utiliser et à travailler avec diverses méthodes et techniques de copie d'une table en SQL.