Questão de Banco de Dados — MySQL — Quadrix 2024
- Código
- qg354214
- Banca
- Quadrix
- Órgão
- IBICT
- Ano
- 2024
- Nível
- Superior
- Cargo
- Tecnologista - Tecnologia da Informação

- CCerto
- EErrado

GabaritoC — Certo
Gabarito: CERTO (letra C). A consulta apresentada está correta: ela faz um INNER JOIN entre Autores e Autor_Artigo, agrupa pelo nome do autor e conta quantos artigos cada um publicou, usando COUNT(*). A sintaxe está válida no MySQL e produz exatamente o resultado pedido.
O comando SELECT com GROUP BY é a forma padrão de agregar dados em SQL. Aqui, a consulta segue a estrutura clássica: seleciona a coluna Nome da tabela Autores e a função de agregação COUNT(*), que conta o número de linhas de cada grupo. O INNER JOIN com a tabela associativa Autor_Artigo garante que só sejam considerados os autores que possuem pelo menos um artigo vinculado — autores sem artigos não aparecem no resultado, pois não há correspondência na tabela de junção.
O GROUP BY Autores.Nome agrupa os registros pelo nome do autor. Como cada linha resultante do JOIN representa um vínculo entre um autor e um artigo, o COUNT(*) conta exatamente quantos artigos cada autor publicou. O apelido AS NumeroArtigos apenas dá um nome à coluna de contagem, sem afetar o resultado.
Um ponto importante: a consulta agrupa por Nome, não por AutorID. Se dois autores distintos tiverem o mesmo nome, eles seriam agrupados juntos, o que poderia distorcer a contagem. Em um banco bem modelado, o ideal seria agrupar por AutorID (a chave primária), mas a questão não menciona essa possibilidade, e a consulta apresentada atende ao que foi pedido: mostrar o número de artigos por autor.
A pegadinha aqui é sutil: a banca pode tentar confundir o candidato sugerindo que seria necessário usar LEFT JOIN para incluir autores sem artigos, ou que o COUNT(*) contaria algo errado. Mas, para o objetivo declarado — mostrar o número de artigos publicados por cada autor —, o INNER JOIN é suficiente e correto, pois autores sem publicações não têm artigos para contar.
Critério |
|
|
|---|---|---|
Autores sem artigos | Excluídos do resultado | Incluídos com contagem |
Contagem por autor |
|
|
Uso no contexto da questão | Correto — atende ao pedido de "artigos publicados por cada autor" | Desnecessário — incluiria autores sem publicações, o que não é solicitado |
Risco de distorção | Agrupa por | Mesmo risco de agrupamento por |
A consulta está correta. O INNER JOIN entre Autores e Autor_Artigo combina cada autor com seus artigos, e o GROUP BY Autores.Nome agrupa os resultados por autor. O COUNT(*) conta as linhas de cada grupo, ou seja, o número de artigos de cada autor. A sintaxe é válida no MySQL e produz o resultado esperado.
A consulta agrupa por Nome, não por AutorID. Se houver autores homônimos, eles seriam agrupados juntos. Em um banco bem modelado, o ideal seria agrupar pela chave primária, mas a questão não aborda essa possibilidade.
Gabarito: letra C (CERTO).
Link permanente: /questoes/qg354214