Gabarito: d)
Para resolver essa questão, Pedro precisa utilizar o comando SELECT da linguagem SQL para fazer a consulta e gerar o relatório solicitado. Vamos analisar cada opção apresentada:
a) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS ON (CODIGO_CONTEUDO = CODIGO_CONTEUDO) INNER JOIN FUNCIONARIOS ON (MATRICULA = MATRICULA);
Nesta opção, há um erro na cláusula INNER JOIN, pois não está especificando corretamente a relação entre as tabelas.
b) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES, CONTEUDOS, FUNCIONARIOS WHERE (CODIGO_CONTEUDO = CODIGO_CONTEUDO) AND (MATRICULA = MATRICULA);
Nesta opção, também há um erro na cláusula WHERE, pois não está especificando corretamente a relação entre as tabelas.
c) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS INNER JOIN FUNCIONARIOS ON (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) ON (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
Nesta opção, há um erro na forma como os INNER JOIN estão sendo utilizados, pois não estão corretamente estruturados.
d) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS ON (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) INNER JOIN FUNCIONARIOS ON (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
Esta é a opção correta. Aqui, os INNER JOIN estão corretamente estruturados, especificando a relação entre as tabelas MALOTES, CONTEUDOS e FUNCIONARIOS de acordo com as chaves primárias e estrangeiras.
e) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES, CONTEUDOS, FUNCIONARIOS INNER JOIN WHERE (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) AND (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
Nesta opção, há um erro na forma como o INNER JOIN está sendo utilizado, pois não está corretamente estruturado.
Portanto, a opção correta é a letra d), que apresenta o comando SELECT corretamente estruturado para a consulta solicitada por Pedro.
Para resolver essa questão, Pedro precisa utilizar o comando SELECT da linguagem SQL para fazer a consulta e gerar o relatório solicitado. Vamos analisar cada opção apresentada:
a) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS ON (CODIGO_CONTEUDO = CODIGO_CONTEUDO) INNER JOIN FUNCIONARIOS ON (MATRICULA = MATRICULA);
Nesta opção, há um erro na cláusula INNER JOIN, pois não está especificando corretamente a relação entre as tabelas.
b) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES, CONTEUDOS, FUNCIONARIOS WHERE (CODIGO_CONTEUDO = CODIGO_CONTEUDO) AND (MATRICULA = MATRICULA);
Nesta opção, também há um erro na cláusula WHERE, pois não está especificando corretamente a relação entre as tabelas.
c) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS INNER JOIN FUNCIONARIOS ON (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) ON (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
Nesta opção, há um erro na forma como os INNER JOIN estão sendo utilizados, pois não estão corretamente estruturados.
d) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES INNER JOIN CONTEUDOS ON (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) INNER JOIN FUNCIONARIOS ON (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
Esta é a opção correta. Aqui, os INNER JOIN estão corretamente estruturados, especificando a relação entre as tabelas MALOTES, CONTEUDOS e FUNCIONARIOS de acordo com as chaves primárias e estrangeiras.
e) SELECT NOME, CODIGO_MALOTE, DESCRICAO, SITUACAO_MALOTE FROM MALOTES, CONTEUDOS, FUNCIONARIOS INNER JOIN WHERE (MALOTES.CODIGO_CONTEUDO = CONTEUDOS.CODIGO_CONTEUDO) AND (MALOTES.MATRICULA = FUNCIONARIOS.MATRICULA);
Nesta opção, há um erro na forma como o INNER JOIN está sendo utilizado, pois não está corretamente estruturado.
Portanto, a opção correta é a letra d), que apresenta o comando SELECT corretamente estruturado para a consulta solicitada por Pedro.