FC ConcursosFC Concursos

Questão FC369455

Considere o seguinte esquema de um banco de dados relacional, expresso em linguagem SQL: create table editora ( cod_editora integerprimary key, nome_editora varchar(30) not null, t

Linguagem SQL

FGV · 2024

Considere o seguinte esquema de um banco de dados relacional, expresso em linguagem SQL:

 

create table editora

(

cod_editora integerprimary key,

nome_editora varchar(30) not null,

telefone char(11)

);

create table livro

(

cod_livro integerprimary key,

num_isbn char(10) unique not null,

titulo varchar(20) not null,

edicao integerdefault 1 not null,

cod_editora integerreferences editora

);

 

A consulta

select titulo

from livro left join editora

on livro.cod_editora = editora.cod_editora

where editora.nome_editora is null

 

apresenta os títulos dos livros

  1. cadastrados na tabela “editora”.
  2. ligados a editoras sem ramal cadastrado.
  3. localizados ao lado esquerdo das editoras.
  4. não vinculados a uma editora.
  5. relacionados a editoras sem nome cadastrado (null).
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

O comando usa LEFT JOIN entre livro (tabela à esquerda) e editora, com a condição livro.cod_editora = editora.cod_editora. O LEFT JOIN retorna todas as linhas de livro e, quando não há correspondência, preenche os campos da tabela editora com NULL.

A cláusula WHERE editora.nome_editora IS NULL filtra exatamente essas linhas sem correspondência: ou seja, livros cujos dados de editora ficaram NULL no resultado da junção. Portanto, a consulta retorna os títulos dos livros não vinculados a uma editora.

Observação: como nome_editora é NOT NULL na definição da tabela editora, a condição só é satisfeita quando não existe editora correspondente (tipicamente porque livro.cod_editora é NULL).

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

Continue aprendendo