Database
 sql >> Base de Dados >  >> RDS >> Database

Diferença entre junção interna e junção externa no SQL


A junção interna e a junção externa são duas maneiras úteis de unir tabelas de banco de dados e consultar dados de várias tabelas. Neste artigo, veremos a diferença entre junção interna e junção externa no SQL.



Junto Interno


A junção interna retorna linhas de duas ou mais tabelas em que pelo menos uma coluna tem o mesmo valor em todas as tabelas. Se não houver valores comuns, nenhuma linha será retornada.

Aqui está a sintaxe da junção interna:
select *  from table1 INNER JOIN table2 
on table1.column_name = table2.column_name;

OR

select * from table1 JOIN table2 
on table1.column_name = table2.column_name;



Junta Externa


A junção externa retorna linhas de duas ou mais tabelas em que pelo menos uma coluna tem valor comum, bem como linhas em que a condição de junção falha. Existem 3 tipos de junções externas:



União Externa Esquerda


Nesse caso, todas as linhas da tabela à esquerda são mantidas no resultado, caso suas condições de junção coincidam com outras tabelas, seus valores de coluna são retornados, caso contrário, valores nulos são retornados para essas colunas. Aqui está a sintaxe da junção externa esquerda.
select * from table1 
LEFT OUTER JOIN table2 
on table1.column_name = table2.column_name;



Junta Externa Direita


Nesse caso, todas as linhas da tabela à direita são mantidas no resultado, caso suas condições de junção coincidam com outras tabelas, seus valores de coluna são retornados, caso contrário, valores nulos são retornados para essas colunas.

Aqui está a sintaxe da junção externa direita
select * from table1 
RIGHT OUTER JOIN table2 
on table1.column_name = table2.column_name;



União Externa Completa


Nesse caso, todas as linhas de ambas as tabelas são retornadas. Se a condição de junção for satisfeita, as colunas serão preenchidas usando valores de ambas as tabelas. Se a condição de junção falhar, os valores de uma das tabelas serão preenchidos em colunas e o restante será preenchido como nulo.



Diferença entre junção interna e junção externa no SQL


Aqui estão as principais diferenças entre a junção interna e a junção externa.

Junto Interno

  • Ele retorna apenas linhas com valores de coluna comuns.
  • Você pode usar a cláusula INNER JOIN ou JOIN. Ambos têm o mesmo efeito
  • Retorna nulo quando não há valores de coluna correspondentes entre duas (ou mais) tabelas
  • Inner Join é mais rápido que o Outer Join
  • É útil fazer pesquisas em várias tabelas
  • Em termos matemáticos, retorna a interseção de dois conjuntos (tabelas)



Junta Externa

  • Ele retorna valores de uma ou mais tabelas, mesmo que não haja valores de coluna correspondentes
  • Para linhas sem atributos correspondentes, retorna nulo para as colunas restantes
  • Full Outer Join e Full Join têm o mesmo efeito.
  • É mais lento que a junção interna
  • É usado para obter informações completas em duas ou mais tabelas
  • A junção externa completa não é suportada no MySQL. Está disponível em PostgreSQL, SQL Server, Oracle e outros bancos de dados populares.




Precisa de uma ferramenta de relatório para MySQL? A Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!