# SQL SELECT INTO: Como copiar registros em tabelas

Com o operador SQL `SELECT INTO`, você **copia registros selecionados para novas tabelas ou áreas de armazenamento temporárias**. Essa é uma maneira rápida e confiável de se transferir dados, por manter a organização e a clareza dos registros.

## O que é SQL `SELECT INTO`?

A linguagem de programação para bancos de dados SQL oferece uma série de ferramentas profissionais de gerenciamento, análise e edição de bancos de dados. Entre elas estão comandos como o [SQL `SELECT`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-select/), que realiza diversas ações quando combinado a outros operadores. Com o [SQL `SELECT DISTINCT`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-select-distinct/), por exemplo, você consegue remover valores duplicados. O operador `SELECT INTO`, por sua vez, **copia registros de uma tabela e os transfere para outra**. Tecnicamente, `SELECT INTO` não é considerado uma função nem um comando SQL, [operadores SQL](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/operadores-sql/). Ele costuma ser considerado uma cláusula em uma instrução SQL.

Dica Conheça os fundamentos e funções mais importantes na nossa [introdução ao SQL com exemplos](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/aprender-sql-com-exemplos/).

## Sintaxe de `SELECT INTO`

A sintaxe simples de `SELECT INTO` é a seguinte:

```sql
SELECT  * 
INTO  nova_tabela_destino 
FROM tabela_existente;
```

Esses são os parâmetros que devem ser utilizados:

- `SELECT`: O comando `SELECT` define as colunas na tabela existente das quais você deseja copiar os dados. Você pode especificar nomes de colunas específicos ou usar o asterisco `*` para copiar todos os dados da tabela de origem.
- `INTO`: Define e nomeia a nova tabela de destino para os registros copiados.
- `FROM`: Seleciona a tabela existente da qual você deseja copiar os registros.
- `WHERE`: Com a cláusula opcional [SQL `WHERE`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-where/), você define condições adicionais específicas que os dados a serem copiados da tabela de origem devem cumprir.

## Quando usar o operador `SELECT INTO`

Basicamente, SQL `SELECT INTO` é adequado para transferir dados para uma nova tabela. Outras aplicações incluem **agregação, armazenamento temporário e extração** de registros ou subconjuntos. Removendo duplicatas com `DISTINCT`, por exemplo, você também conseguirá limpar e reduzir os dados obtidos.

Geralmente `SELECT INTO` é usado, de forma prática, nas seguintes situações:

- Copiar, extrair e transferir dados de clientes, pedidos, pacientes e produtos para novos projetos, estudos ou em migrações de dados.
- Análises de tendências e de marketing, por dados agregados de pedidos e vendas.
- Análises de dados financeiros por transferências de dados de transações.
- Limpeza de dados de clientes ou funcionários removendo duplicatas em novas tabelas.
- Coletas e análises de dados em armazéns de dados.
- Coletas de dados para modelos de aprendizado de máquina.

Dica Você está em busca de um sistema de gerenciamento de banco de dados escalável e seguro? Conheça o [SQL Server Hosting](https://www.ionos.com/cloud/sql-server-hosting "SQL Server Hosting — IONOS") da IONOS e obtenha ofertas personalizadas de servidores e de hospedagem.

## Exemplos práticos de SQL `SELECT INTO`

Para ilustrar como o SQL `SELECT INTO` funciona, elaboramos dois exemplos práticos.

### Selecionar e transferir clientes únicos

Na tabela “Pedidos”, você deseja selecionar toas as entradas únicas da coluna “NomeCliente” sem duplicatas, e transferi-las para uma nova tabela de nome “PedidosNovo”. Para fazer isso, proceda da seguinte forma:

```sql
SELECT DISTINCT NomeCliente
INTO PedidosNovo
FROM Pedidos;
```

### Transferir entradas de clientes de uma determinada região

Com a cláusula `WHERE`, você pode definir dados de clientes com condições adicionais. Se, por exemplo, você quiser transferir todas as entradas com nomes de clientes do Brasil, deve proceder da seguinte forma:

**SQL Server**:

```sql
SELECT NomeCliente, Pais
INTO PedidosNovo
FROM Pedidos
WHERE Pais = 'Brasil';
```

**MySQL, PostgreSQL, SQlite**:

```sql
INSERT INTO PedidosNovo (NomeCliente, Pais)
SELECT NomeCliente, Pais
FROM Pedidos
WHERE Pais = 'Brasil';
```

## Alternativas a SQL `SELECT INTO`

Além de `SELECT INTO`, existem outras opções em SQL para copiar e transferir dados entre tabelas. Abaixo estão as mais utilizadas:

- `INSERT INTO SELECT`: Com [SQL `INSERT INTO SELECT`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-insert-into-select/), você também copia e transfere registros selecionados ou resultados em combinação com `SELECT` de uma tabela para uma tabela já existente. A diferença está no fato de que com `SELECT INTO` é possível criar uma nova tabela para a cópia e transferência.
- `CREATE TABLE AS`: Com a instrução [SQL `CREATE TABLE`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-create-table/), você pode criar uma nova tabela. Em combinação com [SQL `SELECT`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-select/) e `AS`, você pode definir adicionalmente que a nova tabela seja baseada nos resultados da instrução `SELECT`, contendo assim os dados selecionados de uma tabela existente.
- `UNION` ou `UNION ALL`: Com o operador [SQL `UNION`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-union/), você combina registros de tabelas e colunas selecionadas em uma nova tabela de saída sem duplicatas. Em combinação com o operador lógico `ALL`, você especifica que todos os registros de uma tabela, incluindo duplicatas, sejam considerados.
- `IMPORT TABLE`: A instrução `IMPORT TABLE` é adequada apenas quando você deseja importar registros de tabelas e arquivos externos para uma tabela. A instrução está disponível principalmente em versões mais recentes do SQL.
- `LOAD DATA INFILE`: A instrução funciona basicamente como `IMPORT TABLE`, mas oferece uma aplicação mais flexível, embora mais complexa, e suporta mais formatos para fontes de dados externas. Está disponível em todas as versões do SQL.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-select-into/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-select-into/) for AI/LLM consumption.