Copia una tabella in SQL

Copia Una Tabella In Sql



In superficie, la duplicazione dei dati può sembrare inefficiente; a volte può svolgere un ruolo cruciale nei casi in cui è necessario avere una copia quasi esatta della stessa tabella.

In SQL possiamo utilizzare vari metodi e tecniche per copiare una tabella esistente e avere la nuova tabella con un nuovo nome ma con gli stessi dati. Ciò può essere molto utile in determinate attività come backup, trasformazione dei dati, alterazioni temporanee dei dati senza influire sulla tabella principale e altro.







In questa guida esploreremo questi metodi e impareremo come copiare una tabella nei database SQL. A causa delle differenze nel modo in cui i vari motori di database SQL gestiscono la copia delle tabelle, non tratteremo tutti i metodi per ciascun database.



Cercheremo di coprirne almeno una per ciascun motore di database, se supportato, per mostrarti come copiare una tabella per ciascuno dei motori di database supportati.



Metodo 1: globale (utilizzando l'istruzione CREATE TABLE)

Il metodo più comune e semplicistico per copiare una tabella è utilizzare l'istruzione CREATE TABLE.





A differenza di una normale istruzione CREATE TABLE, passiamo un'istruzione SELECT che contiene la struttura e i dati della tabella sorgente.

La sintassi è la seguente:



CREATE TABLE new_table AS
SELEZIONARE * DA tabella_origine;

Questo ci consente di creare una nuova tabella con il nome specificato dalla tabella di origine.

Prendiamo ad esempio il database di esempio Sakila. Supponiamo di voler creare una tabella simile alla tabella degli affitti.

Possiamo utilizzare la tecnica precedente come mostrato nella seguente query di esempio:

CREATE TABLE rental_copy AS
SELEZIONARE * DAL noleggio;

Ciò dovrebbe creare una nuova tabella denominata 'rental_copy' che contiene la stessa struttura e gli stessi dati della tabella di noleggio.

Puoi verificare selezionando i dati dalla tabella come segue:

SELEZIONARE * DA noleggio_copia;

Questo dovrebbe contenere i dati esatti della tabella di noleggio.

Metodo 2: globale (utilizzando l'istruzione INSERT INTO)

Un altro metodo supportato a livello globale da un'ampia varietà di database SQL utilizza l'istruzione INSERT INTO.

Questa tecnica ci consente di copiare da una tabella all'altra. A differenza di CREATE TABLE e SELECT, questo metodo ci consente di recuperare selettivamente i dati.

Ciò è utile quando abbiamo bisogno di maggiore controllo nel processo di copia. Possiamo usare la sintassi come mostrato di seguito:

INSERT IN tabella_destinazione ( colonna1, colonna2, ... )
SELEZIONA colonna1, colonna2,...
DA tabella_origine;

In questo caso possiamo specificare le colonne che desideriamo includere nella nuova tabella senza recuperare tutto dalla tabella originale.

Prendiamo ad esempio la seguente query:

INSERIRE
IN
noleggio_copia ( noleggio_id,
data_noleggio,
data di ritorno )
SELEZIONARE
noleggio_id,
data_noleggio,
data di ritorno
DA
noleggio r;

Uno svantaggio di questo metodo è che potrebbe richiedere la creazione di una tabella simile con le colonne che desideri includere. Questo può essere ripetitivo ed efficiente quando si lavora con un set di dati di grandi dimensioni.

Metodo 3: copiare la struttura della tabella

In altri casi, potresti imbatterti in casi in cui sei interessato alla struttura della tabella senza aver bisogno dei dati archiviati nella tabella.

In uno scenario di questo tipo, puoi utilizzare l'istruzione CREATE TABLE insieme alla clausola LIKE come segue:

CREA TABELLA nuova_tabella ( MI PIACE tabella_origine ) ;

Questo dovrebbe creare una nuova tabella con il nome specificato e una struttura simile a 'source_table' senza effettivamente copiare i dati.

Copiare le tabelle tra database

Per copiare le tabelle tra diversi database, possiamo esportare i dati dal database di origine e importarli nel database di destinazione.

Ciò in genere comporta l'utilizzo di formati basati su file come CSV o strumenti specifici del database. Puoi fare riferimento alla documentazione del tuo database su come eseguire questa operazione poiché potrebbe variare a seconda del motore del database.

Metodo 4: utilizzo dei server collegati (SQL Server)

In SQL Server, possiamo copiare le tabelle tra database utilizzando i server collegati.

I server collegati ci consentono di stabilire una connessione a un database remoto e interrogare o trasferire i dati tra di loro.

La sintassi è la seguente:

INSERIRE [ NomeServerCollegato ] . [ Nome del database ] . [ NomeSchema ] . [ tabella_destinazione ]
SELEZIONARE * DA tabella_origine;

Ciò consente la connessione remota e il trasferimento di dati tra server remoti.

Conclusione

In questo tutorial abbiamo imparato come utilizzare e lavorare con vari metodi e tecniche per copiare una tabella in SQL.