Curso
Syntax
Abaixo está o caso de uso normal de "INSERT INTO", em que você insere valores manualmente. Ele é seguido pelo nome da tabela e por uma lista opcional de colunas que devem ser preenchidas com os dados. Em seguida, vem a palavra-chave "VALUES" e os valores reais que você deseja inserir.
INSERT INTO table_name (column_a, column_b)
VALUES ("value_a", "value_b");
INSERT DISTINCT Records INTO New Tables (inserir registros distintos em novas tabelas)
Para copiar dados de uma tabela existente para uma nova, você pode usar o padrão "INSERT INTO SELECT DISTINCT". Após "INSERT INTO", você especifica o nome da tabela de destino - organizations no caso abaixo.
Em seguida, você seleciona as colunas que devem ser copiadas da tabela de origem - unviversity_professors, neste caso. Você usa a palavra-chave "DISTINCT" para copiar apenas organizações distintas.
INSERT INTO organizations
SELECT DISTINCT organization,
organization_sector
FROM university_professors;
Output: INSERT 0 1287
A saída acima mostra que apenas 1287 registros são inseridos na tabela "organizations".
Por outro lado, se você usar "INSERT INTO SELECT", sem a palavra-chave "DISTINCT", os registros duplicados também serão copiados.
INSERT INTO organizations
SELECT organization,
organization_sector
FROM university_professors;
Output: INSERT 0 1377
Migração de dados para uma nova tabela
Vamos migrar os dados para novas tabelas. Você usará o seguinte padrão:
INSERT INTO ...
SELECT DISTINCT ...
FROM ...;
Ela pode ser dividida em duas partes:
Primeira parte:
SELECT DISTINCT column_name1, column_name2, ...
FROM table_a;
Isso seleciona todos os valores distintos na tabela table_a - nada de novo para você.
-- Insert unique professors into the new table
INSERT INTO professors
SELECT DISTINCT firstname, lastname, university_shortname
FROM university_professors;
-- Doublecheck the contents of professors
SELECT *
FROM professors;
Segunda parte:
INSERT INTO table_b ...;
Pegue essa parte e acrescente-a à primeira, de modo que ela insira todas as linhas distintas de table_a em table_b.
Uma última coisa: É importante que você execute todo o código ao mesmo tempo depois de preencher os espaços em branco.
-- Insert unique affiliations into the new table
INSERT INTO affiliations
SELECT DISTINCT firstname, lastname, function, organization
FROM university_professors;
-- Doublecheck the contents of affiliations
SELECT *
FROM affiliations;
Para saber mais sobre bancos de dados relacionais em SQL, assista a este vídeo do nosso curso Introdução aos bancos de dados relacionais em SQL.
Este conteúdo foi extraído do curso Introdução aos bancos de dados relacionais em SQL da DataCamp, ministrado por Timo Grossenbacher.

