Recomendado, 2024

Escolha Do Editor

Diferença entre esquerda, direita e total externa

Anteriormente, discutimos as diferenças entre Inner Join e Outer Join, onde temos uma visão geral dos tipos de Outer Join. Outer Join é aquele que preserva as tuplas no resultado que seria perdido durante a operação Join. Neste artigo; Vamos discutir as diferenças entre os tipos de associação externa. Existem três tipos de associação externa; Junção Externa Esquerda, Junção Externa Direita e Junção Externa Completa. O Left, Right e Full Outer Join difere em seu plano de execução e nos resultados obtidos. Podemos omitir uma palavra externa da esquerda, direita e completa externa. Vamos examinar as diferenças entre Left, Right e Full outer Join com a ajuda do gráfico de comparação mostrado abaixo.

Gráfico de comparação

Base para ComparaçãoJunção Externa à EsquerdaJunção Externa DireitaJunção Externa Completa
BasicTodas as tuplas da tabela da esquerda permanecem no resultado.Todas as tuplas da tabela da direita permanecem no resultado.Todas as tuplas da esquerda e da direita permanecem no resultado.
Extensão NULLAs tuplas da tabela da esquerda que não possuem uma tupla correspondente na tabela da direita são estendidas com o valor NULL para atributos da tabela da direita.As tuplas da tabela da direita que não possuem uma tupla correspondente na tabela da esquerda são estendidas com o valor NULL para atributos da tabela da esquerda.
As tuplas de esquerda, bem como a tabela da direita que não tem as tuplas correspondentes na tabela direita e esquerda, respectivamente, são estendidas com o valor NULL para atributos das tabelas direita e esquerda.

Definição de Junção Externa à Esquerda

Suponha que temos, “ Tabela_A Esquerda Externa Unir-se à Tabela_B “. Então Table_A é a nossa tabela da esquerda como aparece à esquerda da operação Left Outer Join e Table_B é a nossa tabela da direita .

Inicialmente, a junção interna seria aplicada em Table_A e Table_B, o que retornará toda a tupla correspondente da tabela A e B.

Em seguida, ele retornará todas as tuplas de Table_A que não possuem uma tupla correspondente em Table_B. Assim, as tuplas resultantes seriam preenchidas com valores NULL para os atributos da tabela da direita.

Portanto, o resultado obtido da Junção Externa à Esquerda retém todas as tuplas da tabela à esquerda e apenas tuplas correspondentes da tabela à direita.

Vamos discutir Left Outer Join com um exemplo; temos duas tabelas abaixo, Tabela do Aluno e Tabela do Departamento .

Agora, vamos aplicar Left Outer Join, na Student and Department Table.

SELECIONE * DO ALUNO LEFT OUTER JOIN Department
No aluno. Student_ID = Department.Student_ID

Na consulta acima, a tabela Aluno é a tabela e a tabela da esquerda O departamento é a tabela correta. Então, de acordo com o Left Outer Join, o resultado deve ter todas as tuplas da tabela Student, e apenas as tuplas correspondentes da tabela Department.

Observe o resultado obtido da junção externa esquerda; Ele tem todas as tuplas da tabela de Alunos juntamente com as tuplas correspondentes da tabela de Alunos e Departamentos. O student_id de Jimmy, Joseph Harry da tabela Student não estava presente na tabela Department. Portanto, os valores de atributo da tabela Department para Jimmy, Joseph Harry são estendidos para NULL.

Definição de junção externa direita

Suponha que temos, “ Tabela_A Junção Externa à Direita Tabela_B “. Então, Table_A é a nossa tabela à esquerda, como aparece à esquerda da operação Right Outer Join e a Table_B é a nossa tabela à direita .

Como em Left Outer Join, inicialmente, a junção interna seria aplicada em Table_A e Table_B, o que retornará toda a tupla correspondente da tabela A e B.

Em seguida, ele retornará todas as tuplas de Table_B que não possuem uma tupla correspondente em Table_A. Assim, as tuplas resultantes seriam preenchidas com valores NULL para os atributos da tabela esquerda.

Portanto, o resultado obtido da junção externa direita retém todas as tuplas da tabela da direita e apenas as correspondentes da tabela da esquerda.

Vamos discutir Right Outer Join com um exemplo; acima temos duas tabelas, Tabela do Aluno e Tabela do Departamento.

Agora, vamos aplicar Right Outer Join à tabela de alunos e de departamentos.

SELECT * FROM Student RIGHT OUTER JOIN Departamento
No aluno. Student_ID = Department.Student_ID

Na consulta acima, a Tabela do Aluno é a nossa Tabela da Esquerda e a Tabela do Departamento é a nossa tabela da direita. De acordo com a operação Right Outer Join, o resultado deve incluir todas as tuplas da tabela Department e apenas as tuplas correspondentes da Tabela de Alunos.

Observe o resultado obtido da junção externa direita; ela tem todas as tuplas da tabela Departamento junto com as tuplas correspondentes da tabela de Aluno e Departamento. O Student_ID 10536 e 00954, da tabela Department, não estão presentes na tabela Student. Portanto, o valor do atributo de Name para Student_ID 10536 e 00954 é estendido para NULL.

Definição de junção Outer Full

Suponha que tenhamos " Tabela_A Integração Externa Total Tabela_B ". Então Table_A é a nossa tabela da esquerda como aparece à esquerda da operação Full Outer Join e Table_B é a nossa tabela da direita .

Full Outer Join é a combinação de ambos, Left Outer Join e Right Outer Join . Inicialmente, ele aplica a junção interna em Table_A e Table_B para recuperar as tuplas correspondentes de ambas as tabelas. Em seguida, ele estende as tuplas de Table_A com NULL que não possuem uma tupla correspondente em Table_B. Além disso, ele estende as tuplas de Table_B com NULL que não possuem uma tupla correspondente em Table_A.

Portanto, Full Outer Join retém todas as tuplas da esquerda e da direita, juntamente com as tuplas correspondentes de ambas as tabelas.

Vamos discutir FULL Outer Join com um exemplo; temos duas tabelas acima, Tabela do Aluno e Tabela do Departamento .

Agora, aplicaremos Outerer Completo à tabela de alunos e de departamento.

SELECT * FROM Student FULL OUTER JUNTAR Departamento
No aluno. Student_ID = Department.Student_ID

Na consulta acima, a Tabela do Aluno é a nossa mesa à esquerda e a Tabela do Departamento é a nossa tabela à direita. De acordo com o Full Outer Join, o resultado deve incluir todas as tuplas de ambas as tabelas.

Observe o resultado obtido da junção externa completa; ela tem todas as tuplas da tabela de Alunos e Departamentos, juntamente com as tuplas correspondentes da tabela de Alunos e Departamentos. O student_id de Jimmy, Joseph Harry, ou seja, 10026, 02256, 56362, respectivamente, da tabela Student, não estava presente na tabela Department. Portanto, os valores de atributo da tabela Department para Jimmy, Joseph Harry são estendidos para NULL . Os valores de Student_ID 10536 e 00954, da tabela Department, não estão presentes na coluna Student_ID da tabela Student. Portanto, o valor de atributo do atributo Name para Student_ID 10536 e 00954 é estendido para NULL .

Principais diferenças entre junção externa esquerda, direita e total

  1. O resultado do Left Outer Join tem todas as tuplas da tabela da esquerda. Da mesma forma, o resultado de Right Outer Join possui todas as tuplas da tabela correta. E o resultado do Full Outer Join tem todas as tuplas da tabela esquerda e direita.
  2. Em Left Outer Join, as tuplas da tabela da esquerda que não possuem uma tupla correspondente na tabela da direita são estendidas com valores Nulos para os atributos da tabela da direita. Oposto é o caso do Right Outer Join. E em Full Outer Join, as tuplas das tabelas esquerda e direita que não têm uma correspondência de tuplas nas tabelas direita e esquerda, respectivamente, são estendidas com NULL para os atributos de tabela direita e esquerda, respectivamente.

Conclusão:

Cuide das posições dos nomes de tabelas em uma consulta. Como a posição do nome da tabela na consulta decide se a tabela seria considerada como tabela da esquerda ou da direita.

Top