FC ConcursosFC Concursos

Questão FC369424

O código DDL abaixo cria três tabelas em um banco de dados relacional: CREATE TABLE Velejadores ( vid INTEGER PRIMARY KEY, nome VARCHAR(100), idade INTEGER ); CREATE TABLE Barcos (

Linguagem SQL

FGV · 2025

O código DDL abaixo cria três tabelas em um banco de dados relacional:

 

CREATE TABLE Velejadores (

         vid INTEGER PRIMARY KEY,

         nome VARCHAR(100),

         idade INTEGER

);

CREATE TABLE Barcos (

         bid INTEGER PRIMARY KEY,

         nome VARCHAR(50),

         modelo VARCHAR(50)

);

CREATE TABLE Reservas (

         vid INTEGER,

         bid INTEGER,

         data DATE,

         PRIMARY KEY (vid, bid),

         FOREIGN KEY (vid) REFERENCES Velejadores(vid),

         FOREIGN KEY (bid) REFERENCES Barcos(bid)

);

 

Considerando as tabelas acima, a seguinte consulta foi realizada:

 

SELECT V.nome FROM Velejadores V

WHERE NOT EXISTS (

          (SELECT B.bid FROM Barcos B)

           EXCEPT

           (SELECT R.bid FROM Reservas R

           WHERE R.vid = V.vid)

);

 

O retorno da consulta foram os nomes

  1. dos velejadores que possuem reservas para todos os barcos.
  2. dos barcos que não possuem reservas.
  3. dos velejadores que não possuem reservas.
  4. dos velejadores que possuem reserva para mais de um barco.
  5. dos barcos que possuem reservas feitas por todos os velejadores.
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A consulta retorna os nomes de velejadores que têm reserva para todos os barcos. Isso ocorre porque a subconsulta interna usa EXCEPT para calcular a diferença entre o conjunto de todos os identificadores de barcos e o conjunto de barcos reservados pelo velejador atual.

Ou seja, para cada linha de Velejadores (V), avalia-se:

\( \{bid\;de\;Barcos\} \setminus \{bid\;de\;Reservas\;onde\;vid=V.vid\} \).

Se esse conjunto diferença for vazio (NOT EXISTS), não existe barco sem reserva por aquele velejador; portanto ele reservou todos os barcos.

O SELECT final retorna V.nome desses velejadores satisfazendo a condição.

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

Continue aprendendo