SóProvas


ID
1452616
Banca
CESPE / CEBRASPE
Órgão
TRE-GO
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Julgue o item a seguir, a respeito da linguagem SQL.

Um dos qualificadores para o OUTER JOIN previstos na sintaxe SQL ANSI é o FULL OUTER JOIN, em que são incluídas todas as linhas que satisfaçam a expressão tanto da primeira, quanto da segunda tabela

Alternativas
Comentários
  • Alguém sabe onde está o erro na questão? No site do CESPE ainda não saiu o gabarito oficial.

  • Em todas as literaturas a descrição que encontrei sobre o FULL OUTER JOIN o define como uma cláusula que retorna todas as linhas de ambas as tabelas, inclusive as linhas que satisfaçam a expressão do join. Portanto, acredito que o erro esteja em dizer que são incluídas todas as linhas "que satisfaçam a expressão tanto da primeira, quanto da segunda tabela".

  • Também cai nessa...

    mas analisando melhor me parece que o trecho "que satisfaçam a expressão tanto da primeira, quanto da segunda tabela " está mais para o INNER JOIN

    The INNER JOIN keyword selects all rows from both tables as long as there is a match between the columns in both tables.

    The FULL OUTER JOIN keyword combines the result of both LEFT and RIGHT joins.

    fonte: W3school  http://www.w3schools.com/sql/sql_join_full.asp

  • INNER JOIN é uma junção de duas ou mais tabelas que retorna somente as tuplas que satisfazem à condição de junção. (INTERSEÇÃO)

    FULL OUTER JOIN retorna todas as tuplas, independente de correspondência. (UNIÃO)

  • Ele retorna todas as tuplas, então não está errado afirmar que a consulta retorna todas as tuplas que correspondem as duas tabelas. Acredito que estaria errado se afirmasse "somente" as tuplas que correspondem. 

  • Também caí na pegadinha por não ter feito uma leitura mais cuidadosa.

    Pessoal, creio que o erro está justamente na afirmação "satisfaçam a expressão tanto da primeira, quanto da segunda tabela", porque isso é realmente INNER JOIN. No INNER JOIN se em qualquer uma das tabelas houver um valor que na comparação não seja igual, será excluído da consulta (incluindo o NULL).

    Por exemplo, se em uma tabela o campo tiver valor NULL e na outra não, o registro não virá no retorno da consulta.

    Já no FULL JOIN não, mesmo que o registro seja NULL ele virá no retorno da consulta. Ou seja, ele trará todas as linhas, AINDA QUE NÃO SATISFAÇAM a comparação entre as tabelas.