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
- cadastrados na tabela “editora”.
- ligados a editoras sem ramal cadastrado.
- localizados ao lado esquerdo das editoras.
- não vinculados a uma editora.
- 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