Um desenvolvedor está desenvolvendo um sistema web utilizand...
Um desenvolvedor está desenvolvendo um sistema web utilizando PHP e MySQL para avaliar os serviços prestados por uma hamburgueria. O banco de dados é chamado de “DBAvalia” e é composto por uma tabela chamada “avaliacao”, com as colunas “id, servico e nota”. Para os testes do sistema, o desenvolvedor fez registros hipotéticos para 3 serviços: atendimento, comida e ambiente, com a devida avaliação, sendo atribuída uma nota. Assinale a alternativa que representa a forma correta para o desenvolvedor fazer uma consulta SQL para contar quantos registros foram realizados para o serviço “ambiente”.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - SELECT COUNT(*) FROM avaliacao WHERE servico = “ambiente”
A questão aborda um cenário comum no desenvolvimento de sistemas web, onde o desenvolvedor precisa interagir com um banco de dados MySQL para obter informações específicas. A tabela "avaliacao" contém os campos "id", "servico" e "nota", e a tarefa é contar quantos registros existem para o serviço "ambiente". Este tipo de consulta é fundamental para quem deseja manipular e extrair dados de um banco de dados de forma eficiente.
CONHECIMENTOS NECESSÁRIOS:
Para resolver essa questão, é essencial entender os conceitos de consultas SQL, especialmente as funções de agregação como COUNT() e SUM(), bem como a cláusula WHERE, que filtra registros com base em condições específicas.
JUSTIFICATIVA DA ALTERNATIVA CORRETA:
A alternativa D utiliza a função COUNT(*) para contar o número de registros na tabela "avaliacao" onde o campo "servico" é igual a "ambiente". Esta é a forma correta de contar registros que atendem a uma condição específica em SQL:
SELECT COUNT(*) FROM avaliacao WHERE servico = "ambiente"
A cláusula WHERE servico = "ambiente" garante que apenas os registros com o serviço "ambiente" sejam contados. A função COUNT(*) conta todos os registros que atendem a essa condição.
ANÁLISE DAS ALTERNATIVAS INCORRETAS:
A - SELECT SUM(nota) as soma FROM avaliacao WHERE servico = “ambiente”
Esta alternativa usa a função SUM(nota), que soma os valores da coluna "nota" para registros onde "servico" é "ambiente". No entanto, a questão pede o número de registros, não a soma das notas.
B - SELECT COUNT(nota) FROM avaliacao
A consulta conta o número de registros que possuem um valor na coluna "nota" em toda a tabela "avaliacao", sem considerar a condição "onde servico = 'ambiente'". Então, não filtra especificamente pelos registros de "ambiente".
C - SELECT SUM(nota) as media FROM avaliacao WHERE servico = “ambiente”
Semelhante à alternativa A, essa consulta soma os valores na coluna "nota" para registros onde "servico" é "ambiente", mas atribui o resultado ao alias "media". Novamente, a questão não pede a soma das notas, mas sim a contagem dos registros.
E - SELECT COUNT(*) FROM avaliacao
Embora esta consulta conte todos os registros na tabela "avaliacao", ela não aplica a cláusula WHERE para filtrar por "servico = 'ambiente'", portanto não atende ao requisito da questão.
Espero que essa explicação tenha ajudado a entender a lógica por trás da seleção da alternativa correta e a importância de cada consulta SQL. Se tiver mais dúvidas ou precisar de mais esclarecimentos, estou à disposição!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo