Considere as seguintes tabelas (com seus campos)Tabela1(cod_...

Próximas questões
Com base no mesmo assunto
Q1121279 Banco de Dados
Considere as seguintes tabelas (com seus campos)

Tabela1(cod_tab1, nome,depto)

Tabela2(cod_tab2, local)

No qual, cod_tab1 é chave primária da Tabela1,
cod_tab2 é chave primária da Tabela2 e depto é chave estrangeira da Tabela1, cujos valores estãoassociados à Tabela2.

A consulta SQL que devolve só os elementos da
Tabela2 que não se relacionam com nenhuma tupla da Tabela1 é:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D

O tema desta questão envolve o conhecimento sobre SQL, mais especificamente, consultas que utilizam o conceito de subquery e a cláusula NOT IN. A questão pede para que seja retornada uma lista de elementos de uma tabela (Tabela2) que não possuem relação com outra tabela (Tabela1), o que é um cenário comum em bancos de dados relacionais onde queremos identificar registros órfãos ou exclusivos de uma tabela.

A alternativa correta (D) faz uso da cláusula WHERE NOT IN, que é uma maneira eficaz de selecionar todos os registros de uma tabela que não correspondem a nenhum registro em um conjunto de resultados especificado. Neste caso, o conjunto de resultados é fornecido pela subconsulta que seleciona todos os valores de 'depto' da Tabela1:


SELECT Tabela2.cod_tab2
FROM Tabela2
WHERE Tabela2.cod_tab2 NOT IN
  (SELECT Tabela1.depto
   FROM Tabela1
   WHERE Tabela1.depto = Tabela2.cod_tab2);

Essa consulta irá retornar todos os 'cod_tab2' da Tabela2 que não são encontrados na lista de 'depto' da Tabela1, que é exatamente o que a questão pede.

É importante notar que o último WHERE na subconsulta é desnecessário e pode ser removido, simplificando a consulta para:


SELECT Tabela2.cod_tab2
FROM Tabela2
WHERE Tabela2.cod_tab2 NOT IN
  (SELECT Tabela1.depto FROM Tabela1);

Esta versão simplificada ainda mantém a lógica necessária para responder corretamente à questão.

É essencial compreender bem como as subqueries funcionam e como podemos utilizá-las com cláusulas como IN e NOT IN para relacionar dados de diferentes tabelas, atendendo a critérios específicos de seleção.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo