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, que realiza diversas ações quando combinado a outros operadores. Com o 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. 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.

Sintaxe de SELECT INTO

A sintaxe simples de SELECT INTO é a seguinte:

SELECT  * 
INTO  nova_tabela_destino 
FROM tabela_existente;
sql

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, 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 da IONOS e obtenha ofertas personalizadas de servidores e de hospedagem.

vServer (VPS) da IONOS

Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.

  • Armazenamento 100% SSD
  • Pronto em 55 segundos
  • Certificado SSL

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:

SELECT DISTINCT NomeCliente
INTO PedidosNovo
FROM Pedidos;
sql

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:

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

MySQL, PostgreSQL, SQlite:

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

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, 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, você pode criar uma nova tabela. Em combinação com 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, 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.
Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top