FC ConcursosFC Concursos

Questão FC369457

Considere o seguinte script SQL de um banco de dados relacional: create table fornecedor ( id integer primary key, nome varchar(30) not null ); create table produto ( id integer pr

Linguagem SQL

FGV · 2024

Considere o seguinte script SQL de um banco de dados relacional:

 

create table fornecedor

( id integer primary key,

  nome varchar(30) not null );

create table produto

( id integer primary key,

  descricao varchar(40) not null );

create table fornecimento

( id_fornecedor integer references fornecedor,

  id_produto integer references produto,

  primary key(id_fornecedor,id_produto) );

 

Assinale a consulta que imprime a descrição dos produtos que não são fornecidos por nenhum fornecedor

  1. select produto.descricao from produto join

    fornecimento on produto.id !=

    fornecimento.id_produto

  2. select produto.descricao from produto join

    fornecimento

    on produto.id = fornecimento.id_produto where id_fornecedor > all

    (select id from fornecedor)

  3. select produto.descricao from produto join

    fornecimento on produto.id =

    fornecimento.id_produto

  4. select produto.descricao from produto left join

    fornecimento on produto.id =

    fornecimento.id_produto where

    fornecimento.id_fornecedor is null

  5. select produto.descricao from produto right join

    fornecimento on produto.id =

    fornecimento.id_produto join fornecedor on

    fornecedor.id = fornecimento.id_fornecedor

Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A consulta usa LEFT JOIN entre produto (tabela à esquerda) e fornecimento (à direita) com a condição produto.id = fornecimento.id_produto. O LEFT JOIN retorna todas as linhas de produto, combinando‑as com linhas de fornecimento quando houver correspondência.

Quando não existe correspondência, os campos da tabela fornecimento ficam com valor NULL. Assim, a cláusula WHERE fornecimento.id_fornecedor IS NULL filtra exatamente os produtos que não aparecem em nenhuma linha de fornecimento — ou seja, não são fornecidos por nenhum fornecedor.

O SELECT então projeta produto.descricao, retornando apenas as descrições desses produtos sem fornecedor.

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

Continue aprendendo