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.
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;sqlEsses são os parâmetros que devem ser utilizados:
SELECT: O comandoSELECTdefine 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 SQLWHERE, 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.
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.
Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.
- Save 50% or more vs leading hosts
- Unlimited traffic & no setup fees
- 99.99% uptime guaranteed
- Free 24/7 premium support
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;sqlTransferir 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';sqlMySQL, PostgreSQL, SQlite:
INSERT INTO PedidosNovo (NomeCliente, Pais)
SELECT NomeCliente, Pais
FROM Pedidos
WHERE Pais = 'Brasil';sqlAlternativas 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 SQLINSERT INTO SELECT, você também copia e transfere registros selecionados ou resultados em combinação comSELECTde uma tabela para uma tabela já existente. A diferença está no fato de que comSELECT INTOé possível criar uma nova tabela para a cópia e transferência.CREATE TABLE AS: Com a instrução SQLCREATE TABLE, você pode criar uma nova tabela. Em combinação com SQLSELECTeAS, você pode definir adicionalmente que a nova tabela seja baseada nos resultados da instruçãoSELECT, contendo assim os dados selecionados de uma tabela existente.UNIONouUNION ALL: Com o operador SQLUNION, você combina registros de tabelas e colunas selecionadas em uma nova tabela de saída sem duplicatas. Em combinação com o operador lógicoALL, você especifica que todos os registros de uma tabela, incluindo duplicatas, sejam considerados.IMPORT TABLE: A instruçãoIMPORT 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 comoIMPORT 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.

