SóProvas


ID
946966
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de SQL, julgue os itens a seguir.

A sentença SQL abaixo retorna todas as linhas da tabela Tab1 e da tabela Tab2, inclusive aquelas em que não haja correspondência entre os campos C3 das duas tabelas.

SELECT Tab1 . C 1, Tab1 . C 2, Tab2 . C 3

FROM Tab 1

FULL JOIN Tab 2

ON Tab 1 . C 3 = Tab 2 . C 3

ORDER BY Tab1 . C 2


Alternativas
Comentários
  • As palavras INNER e OUTER (full outer join) são opcionais, uma vez que os nomes dos demais tipos de junções nos permitem deduzir se se trata de uma junção interna ou externa. (Silberchatz pg 135)
  • Certo. FULL OUTER JOIN retorna todas as correspondencias pois mescla LEFT e RIGHT joins. Desta forma mesmo os registros que não tenham correspondência entre os campos "C3" seriam apresentados. Lembrando que não foi executado um INNER JOIN pois esse sim apresentaria so os correspondentes a C3.
    http://www.w3schools.com/sql/sql_join_full.asp
  • DEFINIÇÃO:

    FULL JOIN – Todas as linhas de dados da tabela à esquerda de JOIN e da tabela à direita serão retornadas pela cláusula FULL JOIN ou FULL OUTER JOIN. Caso uma linha de dados não esteja associada a qualquer linha da outra tabela, os valores das colunas a lista de seleção serão nulos. Caso contrário, os valores obtidos serão baseados nas tabelas usadas como referência.

    RESPOSTA:

    questão certa, percebam que o select chama tab1.c1, tab1.c2, tab2.c3, porém na cláusula "ON" tab1.c3 = tab2.c3, logo somente retornará linhas que satisfaça.


    Leia mais em: Cláusulas FULL JOIN, CROSS JOIN, UPDATE e DELETE - Associação de Tabelas: SQL Server 2008 - Parte 3 http://www.devmedia.com.br/clausulas-full-join-cross-join-update-e-delete-associacao-de-tabelas-sql-server-2008-parte-3/18931#ixzz3CMciIdAk

    http://www.devmedia.com.br/clausulas-full-join-cross-join-update-e-delete-associacao-de-tabelas-sql-server-2008-parte-3/18931

  • Mais uma vez faltou especificar qual o SGBD a ser considerado, pois muda a sintaxe SQL a cada tipo de SGBD

  • Renato, quando a banca não especifica o banco, deve-se considerar ANSI SQL, ou seja, o sql padrão.

  • Como ela retorna todas as linhas da tabela Tab1 e da tabela Tab2 se existe um campo " Tab 1 . C 3 " que não está no SELECT?

    Pra mim a questão está errada.

  • Como ela retorna todas as linhas da tabela Tab1 e da tabela Tab2 se existe um campo " Tab 1 . C 3 " que não está no SELECT?

    Pra mim a questão está errada.