FC ConcursosFC Concursos

Questão FC372856

Considere as duas tabelas Tab1 e Tab2 de um banco de dados PostgreSQL 9 aberto e funcionando em condições ideais. Tab1: cod | tipo 1 | Guarda 2 | Tutela 3 | Adoção Tab2: cod | idad

Linguagem SQL

FCC · 2018

Considere as duas tabelas Tab1 e Tab2 de um banco de dados PostgreSQL 9 aberto e funcionando em condições ideais. 

 

Tab1:

cod  | tipo

     1 | Guarda

     2 | Tutela

     3 | Adoção 

 

Tab2:

 cod | idadedomenor

     1 | 5

     3 | 2

     5 | 7 

 

Um Técnico Programador fez uma consulta que resultou em: 

 

  cod | tipo         | idadedomenor

      1 | Guarda   | 5

      3 | Adoção   | 2 

 

O comando utilizado pelo Técnico que produziu o resultado apresentado foi 

  1. SELECT ∗ FROM Tab1 INNER JOIN Tab2 USING (cod);
  2. SELECT ∗ FROM Tab1 IN JOIN Tab2 ON Tab1.cod = Tab2.cod;
  3. SELECT ∗ FROM Tab1 RIGHT JOIN Tab2 IN Tab1.cod = Tab2.cod;
  4. SELECT ∗ FROM Tab1 FULL JOIN Tab2 IN Tab1.cod = Tab2.cod;
  5. SELECT ∗ FROM Tab1 CROSS JOIN Tab2;
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

O comando SELECT * FROM Tab1 INNER JOIN Tab2 USING (cod); realiza uma junção do tipo INNER JOIN, isto é, retorna apenas as linhas que existem em ambas as tabelas — a interseção Tab1 \( \cap \) Tab2.

O qualificador USING (cod) indica a coluna comum usada na junção. Para funcionar, a coluna cod deve existir em ambas as tabelas; o resultado terá essa coluna uma única vez (não haverá duplicação de cod como Tab1.cod e Tab2.cod).

No exemplo, somente os códigos 1 e 3 existem nas duas tabelas, por isso são retornados com suas respectivas colunas tipo e idadedomenor, na ordem apresentada: cod, tipo, idadedomenor. Equivale semanticamente a usar ON Tab1.cod = Tab2.cod, porém a sintaxe USING simplifica o resultado evitando colunas repetidas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo