Mesclar duas tabelas em SQL

Mesclar Duas Tabelas Em Sql



Em SQL, a fusão de tabelas refere-se ao processo de combinar os dados de duas tabelas separadas em um determinado banco de dados em uma única unidade com base em uma coluna ou critério comum. Sim, se parece uma mesa, é exatamente isso.

Uma junção ou mesclagem de tabelas é um recurso renomado de bancos de dados relacionais e é incrivelmente poderoso. Permite-nos consolidar as informações de múltiplas fontes para criar insights de dados mais coerentes e significativos. Também permite que os bancos de dados relacionais sejam altamente escaláveis ​​(não flexíveis), pois podemos dividir os dados em pedaços menores e gerenciáveis ​​que podemos consultar posteriormente.

Neste tutorial, abordaremos os fundamentos das junções ou mesclagens de tabelas. Vejamos os exemplos de tabelas do mundo real para solidificar nosso conhecimento.







Tabela de amostra

Antes de entrarmos no mundo das junções de tabelas, vamos configurar as tabelas básicas que usaremos para fins de demonstração.



Considere duas tabelas que contêm informações sobre funcionários e salários, conforme mostrado nos exemplos de consultas a seguir:



CREATE TABLE funcionários (

Employee_id INT CHAVE PRIMÁRIA AUTO_INCREMENT,

nome_nome VARCHAR( cinquenta ),

sobrenome VARCHAR( cinquenta ),

departamento VARCHAR( cinquenta )

);

Podemos então inserir os dados de amostra na tabela do funcionário, conforme mostrado nas seguintes consultas:





INSERT INTO funcionários (nome, sobrenome, departamento) VALORES

( 'Alice' , 'Smith' , 'Recursos Humanos' ),

( 'Prumo' , 'Johnson' , 'Marketing' ),

( 'Charlie' , 'Wilson' , 'Finança' ),

( 'Davi' , 'Marrom' , 'Vendas' ),

( 'Eva' , 'Davis' , 'Engenharia' );

Vamos prosseguir e criar uma nova tabela para armazenar as informações salariais da seguinte forma:

CRIAR TABELA salários (

salário_id INT CHAVE PRIMÁRIA AUTO_INCREMENT,

funcionário_id INT,

salário DECIMAL( 10 , 2 ),

data_inicial DATA,

data_final DATA,

CHAVE ESTRANGEIRA (employee_id) REFERÊNCIAS funcionários (employee_id)

);

Adicione os dados de amostra de inserção à tabela da seguinte forma:



INSERT INTO salários (employee_id, salário, data_inicial, data_final) VALUES
( 1 , 60.000,00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55.000,00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65.000,00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58.000,00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70.000,00 , '2023-01-01' , '2023-12-31' );

Isso deve nos fornecer duas tabelas que podem nos ajudar a demonstrar o conceito de junção/mesclagem de tabelas em SQL.

Mesclagem/junções de tabelas SQL

Vamos explorar os vários tipos de mesclagem de tabelas que podemos fazer. Abordaremos os fundamentais à medida que avançamos para os mais avançados.

JUNÇÃO INTERNA

O primeiro e mais comum tipo de junção de tabela em SQL é INNER JOIN. Um INNER JOIN nos permite combinar as linhas de duas tabelas com base em uma condição específica. Esse tipo retorna apenas as linhas onde há correspondência entre as tabelas.

Tomemos como exemplos as tabelas de “funcionários” e “salários” que criamos anteriormente. Para realizar um INNER JOIN em SQL, usamos a cláusula INNER JOIN da seguinte forma:

SELECIONAR

e.employee_id,

e.primeiro_nome,

e.último_nome,

e.departamento,

salário

DE

funcionários e

Salários INNER JOIN SOBRE

e.employee_id = s.employee_id;

Na consulta de exemplo fornecida, usamos um INNER JOIN para mesclar as tabelas “funcionários” e “salários” na coluna “employee_id” que existe em ambas as tabelas. O conjunto resultante contém apenas as linhas correspondentes de ambas as tabelas.

Um exemplo de saída é o seguinte:

JUNÇÃO EXTERIOR ESQUERDA

Também temos um LEFT OUTER JOIN que combina todas as linhas da tabela esquerda e as linhas correspondentes da tabela direita. Se não houver correspondência na tabela correta, a junção usa o valor NULL.

SELECIONAR

e.employee_id,

e.primeiro_nome,

e.último_nome,

e.departamento,

salário

DE

funcionários e

LEFT JOIN salários

SOBRE

e.employee_id = s.employee_id;

Neste exemplo, realizamos um LEFT OUTER JOIN para mesclar as tabelas “funcionários” e “salários”. Todas as linhas da tabela “funcionários” são incluídas e as linhas correspondentes da tabela “salários” são adicionadas. No entanto, os valores NULL são incluídos na coluna “salário” para linhas não correspondentes.

UNIÃO SQL

Outro método de unir tabelas em SQL é usar o operador UNION. Este operador nos permite combinar os resultados de duas ou mais instruções select em um único conjunto de resultados.

As colunas em cada instrução SELECT devem ter o mesmo tipo de dados para que a união seja aplicável.

Um exemplo é o seguinte:

SELECT Employee_id, first_name, last_name, departamento, NULL AS salário

A PARTIR DE funcionários e

UNIÃO

SELECT Employee_id, NULL AS first_name, NULL AS last_name, NULL AS departamento, salário

A PARTIR DE salários s ;

Neste caso, um UNION mescla as tabelas “funcionários” e “salários”. Em seguida, criamos as colunas NULL em cada instrução SELECT para garantir que ambas as tabelas tenham um número semelhante de colunas.

UNIONS são tecnicamente comuns, mas podem ser úteis especialmente quando você precisa mesclar tabelas com estruturas diferentes.

Conclusão

Neste tutorial, exploramos os fundamentos da união/mesclagem de duas tabelas em um único conjunto de resultados. É bom ter em mente que há muitas junções mais avançadas que são discutidas neste post.