Abaixo comentamos as questões de banco de dados da prova do Hemocentro deste último final de semana. São duas questões de SQL, vamos aos comentários. Lembrando que doar sangue pode ajudar a salvar vidas!
QUESTÃO 26 – Considere as tabelas aluno (matricula INT, nome CHAR, cod_curso INT) e curso (cod_curso INT, curso CHAR, área CHAR), apresentadas a seguir.
Qual dos comandos Structured Query Language (SQL) pode ser utilizado para listar somente os alunos que cursam História?
(A) select aluno.Nome from aluno, curso where aluno.cod_curso = curso.cod_curso AND curso.curso = 'Historia';
(B) select aluno.Nome from aluno,curso where curso.curso = 'Historia';
(C) select aluno.Nome from aluno,curso where aluno.cod_curso = 'Historia';
(D) select curso.curso from aluno,curso where aluno.cod_curso = curso.cod_curso AND curso.curso = 'Historia';
(E) select aluno.Nome from aluno,curso where curso.curso = 'Historia' and aluno.cod_curso != curso.cod_curso;
Comentário: Vamos analisar cada uma das alternativas acima.
Na alternativa A temos uma seleção que é feita sobre um produto cartesiano das tabelas aluno e curso. Em seguida é feita uma seleção com um predicado composto por duas partes, a primeira serve para limitar as colunas onde os atributos cod_curso das duas tabelas são iguais, vejam que isso faz com que o produto cartesiano se transforme em uma junção. A segunda parte limita as linhas aos atributos que possuem o valor “historia” associado ao campo curso. Vejam que é exatamente isso que é solicitado no enunciado, sendo, portanto, a nossa resposta.
Agora vamos avaliar os erros da demais alternativas. Na letra B temos um produto cartesiano sem a igualdade entre os códigos do curso na cláusula WHERE. Perceba que esse fato vai fazer com que o retorno seja bem maior em termos de linhas e que os pares obtidos não possuem um relacionamento, que seria obtido com a igualdade.
Na alternativa C o erro é ainda mais grosseiro, observe que o campo aluno.cod_curso é um atributo numérico e está sendo comparado com uma string de caracteres.
A alternativa D apresenta como resulta a coluna incorreta na cláusula select. Já a alternativa E utiliza o comparador de desigualdade na cláusula where. Em ambos os casos o resultado obtido é divergente do solicitado na questão.
Gabarito: A.
QUESTÃO 28 – Considere as tabelas aluno (id INT, nome CHAR, curso INT) e curso (id INT, nome CHAR), apresentadas a seguir.
Após a execução de uma consulta Structured Query Language (SQL), produziu-se exatamente o seguinte resultado:
Qual dos comandos SQL a seguir foi utilizado?
(A) SELECT a.nome, c.nome FROM aluno a RIGHT JOIN curso c ON a.curso = c.id;
(B) SELECT a.nome, c.nome FROM aluno a LEFT JOIN curso c ON a.curso = c.id UNION SELECT a.nome, c.nome FROM aluno a RIGHT JOIN curso c ON a.curso = c.id;
(C) SELECT a.nome, c.nome FROM aluno a LEFT JOIN curso c ON a.curso = c.id;
(D) SELECT a.nome, c.nome FROM aluno a INNER JOIN curso c ON a.curso = c.id;
(E) SELECT a.nome, c.nome FROM aluno a RIGHT JOIN curso c ON a.curso = c.id UNION SELECT a.nome, c.nome FROM aluno a LEFT JOIN curso c ON a.curso = c.id;
Comentário: Quando observamos as tabelas e os resultados podemos perceber que uma junção interna (INNER JOIN) foi executada sobre as tabelas aluno e curso para se obter o resultado esperado. Desta forma, a única alternativa que apresenta INNER JOIN no comando é a alternativa D, que é a resposta correta.
Gabarito: D.
Foram apenas essas duas questões.
Qualquer dúvida estou às ordens,
Thiago
Confira neste artigo a correção ao vivo e o gabarito extraoficial da prova do concurso…
Atenção, corujas: o Estratégia Concursos terá os simulados especiais do TJ SC para os cargos…
O novo concurso TJ SC (Tribunal de Justiça de Santa Catarina) oferece vagas imediatas e cadastro reserva, com…
O concurso PM AL (Polícia Militar do Estado de Alagoas) oferece 530 vagas imediatas e…
Olá, futuro servidor! Um dos temas mais comentados e inovadores da Reforma Tributária (EC 132/2023…
Olá, nobre coruja!! Neste presente artigo do Estratégia Concursos vamos analisar um assunto muito importante para a prova de Auditor Fiscal de Goiás: início do processo administrativo tributário para…