# SQL SELECT INTO – cómo copiar conjuntos de datos en tablas

Con SQL `SELECT INTO` puedes **copiar los conjuntos de datos que quieras y pegarlos en una tabla nueva o dejarlos en el portapapeles**. Su ventaja principal es que permite una transmisión de datos rápida y fiable con la que puedes organizar, actualizar y ordenar datos.

## ¿Qué es SQL `SELECT INTO`?

El lenguaje de programación y bases de datos SQL ofrece diversas herramientas para gestionar, analizar y procesar de manera profesional tus bases de datos. Entre ellas están comandos como [SQL SELECT](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-select/), que puede combinarse con otros operadores para llevar a cabo diversas acciones. Por ejemplo, con [SQL SELECT DISTINCT](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-select-distinct/) puedes eliminar duplicados, mientras que con el operador de SQL `SELECT INTO` puedes **copiar los datos de una tabla a otra**. `SELECT INTO` no es uno de los [comandos](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/comandos-sql/), [operadores](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-operators/) ni funciones clásicas de SQL, sino que funciona como cláusula en los statements de SQL.

Consejo Aprende los fundamentos y funciones más importantes de [SQL](https://www.ionos.com/es-us/digitalguide/servidores/know-how/que-es-sql/) – uno de los lenguajes de programación y bases de datos más populares y solicitados en todos los sectores. Con nuestra [guía SQL con ejemplos](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-introduccion-con-ejemplos/) podrás iniciarte en el programa rápidamente.

## Sintaxis de `SELECT INTO`

La sintaxis `SELECT INTO` es sencilla:

```sql
SELECT  *
INTO  nueva_tablameta
FROM tabla_existente;
```

Utiliza los parámetros:

- `SELECT`: El comando `SELECT` define las columnas de la tabla ya existente de la que quieres copiar los datos. Puedes indicar los nombres concretos de las columnas o usar un asterisco `*` para copiar todos los datos de la tabla de origen.
- `INTO`: Define y nombra la nueva tabla meta para los datos copiados.
- `FROM`: Elige la tabla ya existente de la que quieres copiar los datos.
- `WHERE`: Con la cláusula opcional [SQL WHERE](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-where/) puedes especificar condiciones concretas que deben reunir los datos que vas a copiar de la tabla de origen.

## Para qué sirve el operador `SELECT INTO`

SQL `SELECT INTO` sirve principalmente para trasladar datos a una tabla nueva, pero también vale para **agregar, almacenar temporalmente en la caché o extraer** conjuntos de datos o parte de ellos. Eliminando además los duplicados, por ejemplo con `DISTINCT`, puedes limpiar y reducir tus datos.

He a continuación algunos usos prácticos de distintas ramas:

- Copiar, extraer y trasladar datos de productos, clientes, pedidos o pacientes para proyectos nuevos, estudios o para la migración de datos
- Analizar datos de tendencias y marketing mediante datos de pedidos y ventas
- Analizar datos financieros trasladando datos de transacciones
- Limpiar datos de clientes o trabajadores eliminando los duplicados en una tabla nueva
- Recabar y analizar datos en Data Warehouses
- Recoger datos para modelos de aprendizaje automático

Consejo ¿Buscas un sistema de gestión de bases de datos seguro y escalable? Con [Hosting SQL Server](https://www.ionos.es/cloud/sql-server-hosting/ "Hosting SQL Server de IONOS") de IONOS accederás a una oferta única de servidor y alojamiento con una protección de datos según estándares alemanes.

## Ejemplos prácticos de SQL `SELECT INTO`

Te explicamos cómo funciona SQL SELECT INTO con dos ejemplos prácticos.

### Seleccionar y transferir clientes únicos

En la tabla “Pedidos”, quieres seleccionar todos los resultados de la columna “Nombre de cliente” y transferir sin duplicar las filas por pedidos varios a una tabla nueva llamada “Pedidos nuevos”.

```sql
SELECT DISTINCT nombre cliente
INTO pedidos nuevos
FROM pedidos;
```

### Transferir las entradas de clientes de una determinada región

Con la cláusula `WHERE` puedes elegir los datos de cliente que cumplen ciertas condiciones. Por ejemplo, así es como puedes transferir las entradas de clientes que vienen de Alemania:

**SQL Server**:

```sql
SELECT nombre cliente, país
INTO pedidos nuevos
FROM pedidos
WHERE país = 'Alemania';
```

**MySQL, PostgreSQL, SQlite**:

```sql
INSERT INTO Pedidos nuevos (nombre cliente, país)
SELECT nombre cliente, país
FROM pedidos
WHERE país = 'Alemania';
```

## Alternativas a SQL `SELECT INTO`

Para copiar y transferir datos entre tablas, hay varias opciones además de `SELECT INTO`. Estas son las más importantes:

- `INSERT INTO SELECT`: [SQL INSERT INTO SELECT](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-insert-into-select/) permite copiar y pegar conjuntos de datos o resultados de una tabla a otra ya existente. La principal diferencia es que con `SELECT INTO` se crea una tabla nueva donde pegar los datos.
- `CREATE TABLE AS`: Con la asignación [SQL CREATE TABLE](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-create-table/) puedes crear una tabla nueva. Combinándola con [SQL SELECT](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-select/) y AS puedes elegir que la tabla nueva se base en los resultados de la orden `SELECT` y por tanto debe contener los datos elegidos de una tabla existente.
- `UNION` o `UNION ALL`: Con el operador [SQL UNION](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-union/) puedes unificar los datos de las tablas y columnas que quieras en una nueva tabla meta sin duplicados. Si se combina con el operador ALL, puedes decidir que se tengan en cuenta que todos los conjuntos de datos de una tabla, incluyendo los duplicados.
- `IMPORT TABLE`: La instrucción `IMPORT TABLE` solo es adecuada para importar datos de una tabla externa y archivos de una tabla. El comando está disponible sobre todo en las versiones más nuevas de SQL.
- `LOAD DATA INFILE`: Esta instrucción funciona como `IMPORT TABLE`, pero es más flexible, también más compleja en uso, y soporta más formatos de fuentes externas. Además está disponible en todas las versiones de SQL.


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-select-into/](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-select-into/) for AI/LLM consumption.