Copiar una tabla en SQL

Copiar Una Tabla En Sql



En la superficie, la duplicación de datos puede parecer ineficiente; A veces puede desempeñar un papel muy importante en los casos en los que es necesario tener una copia casi exacta de la misma tabla.

En SQL podemos utilizar varios métodos y técnicas para copiar una tabla existente y tener la nueva tabla con un nuevo nombre pero con los mismos datos. Esto puede resultar muy útil en determinadas tareas como copias de seguridad, transformación de datos, alteraciones temporales de datos sin afectar la tabla principal, etc.







En esta guía, exploraremos estos métodos y aprenderemos cómo podemos copiar una tabla en bases de datos SQL. Debido a las diferencias en cómo los distintos motores de bases de datos SQL manejan la copia de tablas, no cubriremos todos los métodos para cada base de datos.



Intentaremos cubrir al menos uno para cada motor de base de datos, siempre que sea compatible, para mostrarle cómo puede copiar una tabla para cada uno de sus motores de base de datos compatibles.



Método 1: Global (usando la instrucción CREATE TABLE)

El método más común y simplista para copiar una tabla es utilizar la instrucción CREATE TABLE.





A diferencia de una instrucción CREATE TABLE normal, pasamos una instrucción SELECT que contiene la estructura y los datos de la tabla fuente.

La sintaxis es la siguiente:



CREAR TABLA new_table AS
SELECCIONAR * DESDE source_table;

 

Esto nos permite crear una nueva tabla con el nombre especificado de la tabla fuente.

Tomemos, por ejemplo, la base de datos de muestra de Sakila. Supongamos que queremos crear una tabla similar a la tabla de alquileres.

Podemos utilizar la técnica anterior como se muestra en la siguiente consulta de ejemplo:

CREAR TABLA alquiler_copiar AS
SELECCIONAR * DE alquiler;

 

Esto debería crear una nueva tabla llamada 'rental_copy' que contiene la misma estructura y datos que la tabla de alquiler.

Puede verificar seleccionando los datos de la tabla de la siguiente manera:

SELECCIONAR * DESDE alquiler_copia;

 

Este debe contener los datos exactos que figuran en la tabla de alquiler.

Método 2: Global (usando la instrucción INSERT INTO)

Otro método que es compatible globalmente con una amplia variedad de bases de datos SQL es utilizar la instrucción INSERT INTO.

Esta técnica nos permite copiar de una tabla a otra. A diferencia de CREATE TABLE y SELECT, este método nos permite recuperar los datos de forma selectiva.

Esto resulta útil cuando necesitamos más control en el proceso de copia. Podemos utilizar la sintaxis como se muestra a continuación:

INSERTAR EN la tabla_objetivo ( columna1, columna2, ... )
SELECCIONAR columna1, columna2, ...
DESDE source_table;

 

En este caso, podemos especificar las columnas que deseamos incluir en la nueva tabla sin tener que recuperar todo de la tabla original.

Tome la siguiente consulta, por ejemplo:

INSERTAR
EN
alquiler_copia ( id_alquiler,
fecha_alquiler,
Fecha de regreso )
SELECCIONAR
id_alquiler,
fecha_alquiler,
Fecha de regreso
DE
alquiler r;

 

Un inconveniente de este método es que puede requerir que cree una tabla similar con las columnas que desea incluir. Esto puede resultar repetitivo y eficiente cuando se trabaja con un gran conjunto de datos.

Método 3: copiar la estructura de la tabla

En otros casos, puede encontrarse con casos en los que esté interesado en la estructura de la tabla sin necesidad de los datos almacenados en la tabla.

En tal escenario, puede utilizar la declaración CREATE TABLE junto con la cláusula LIKE de la siguiente manera:

CREAR TABLA nueva_tabla ( ME GUSTA source_table ) ;

 

Esto debería crear una nueva tabla con el nombre especificado y una estructura similar a la 'tabla_fuente' sin copiar realmente los datos.

Copiar las tablas entre bases de datos

Para copiar las tablas entre diferentes bases de datos, podemos exportar los datos de la base de datos de origen e importarlos a la base de datos de destino.

Por lo general, esto implica el uso de formatos basados ​​en archivos como CSV o herramientas específicas de bases de datos. Puede consultar la documentación de su base de datos sobre cómo lograr esto, ya que puede variar según el motor de la base de datos.

Método 4: uso de los servidores vinculados (SQL Server)

En SQL Server, podemos copiar las tablas entre bases de datos usando servidores vinculados.

Los Servidores Enlazados nos permiten establecer una conexión a una base de datos remota y consultar o transferir los datos entre ellos.

La sintaxis es la siguiente:

INSERTAR EN [ Nombre del servidor vinculado ] . [ Nombre de la base de datos ] . [ Nombre del esquema ] . [ tabla_objetivo ]
SELECCIONAR * DESDE source_table;

 

Esto permite la conexión remota y la transferencia de datos entre servidores remotos.

Conclusión

En este tutorial, aprendimos cómo usar y trabajar con varios métodos y técnicas para copiar una tabla en SQL.