Geral Múltipla Escolha

Em um relatório solicitado pela coordenação, é necessário listar o nome e a data de nascimento dos alunos do sexo feminino, ordenando os resultados pelo mês de nascimento e, dentro de cada mês, em ordem alfabética. Qual consulta SQL atende corretamente esse critério?

Em um relatório solicitado pela coordenação, é necessário listar o nome e a data de nascimento dos alunos do sexo feminino, ordenando os resultados pelo mês de nascimento e, dentro de cada mês, em ordem alfabética. Qual consulta SQL atende corretamente esse critério?

  1. SELECT NOME, DTNASCIMENTO FROM ALUNO WHERE SEXO='F' ORDER BY NOME, DTNASCIMENTO;
  2. SELECT NOME, DTNASCIMENTO FROM ALUNO WHERE SEXO='F' ORDER BY DTNASCIMENTO;
  3. SELECT NOME, DTNASCIMENTO FROM ALUNO ORDER BY EXTRACT(MONTH FROM DTNASCIMENTO), NOME;
  4. SELECT NOME, DTNASCIMENTO FROM ALUNO WHERE SEXO='F' ORDER BY EXTRACT(MONTH FROM DTNASCIMENTO), NOME;
  5. SELECT * FROM ALUNO WHERE SEXO='F' ORDER BY EXTRACT(DAY FROM DTNASCIMENTO), NOME;

Resolução completa

Explicação passo a passo

D
Alternativa D

Alternativa D

Para atender aos requisitos solicitados no relatório, a consulta SQL deve combinar três elementos fundamentais: seleção específica de colunas, filtragem de dados e ordenação lógica. Vamos analisar ponto a ponto o que a questão exige:

  1. Seleção de Colunas: O enunciado pede explicitamente "nome e data de nascimento".
  • A cláusula correta é SELECT NOME, DTNASCIMENTO.
  • A alternativa E utiliza SELECT *, o que retorna todas as colunas da tabela, não atendendo ao pedido de especificidade.
  1. Filtro (Cláusula WHERE): É necessário listar apenas "alunos do sexo feminino".
  • Isso exige a condição WHERE SEXO = 'F'.
  • A alternativa C omite essa cláusula, retornando dados de todos os alunos, independentemente do sexo.
  1. Ordenação (Cláusula ORDER BY): Os resultados devem ser organizados em duas etapas:
  • Primeiro critério: Pelo mês de nascimento. Para isso, precisamos extrair o mês da data. A função EXTRACT(MONTH FROM DTNASCIMENTO) é a forma padrão de fazer isso em muitas linguagens SQL (como PostgreSQL e Oracle).
  • Segundo critério: Dentro do mesmo mês, em ordem alfabética. Isso significa ordenar pela coluna NOME.
  • A sintaxe correta seria: ORDER BY EXTRACT(MONTH FROM DTNASCIMENTO), NOME.

Análise Detalhada das Alternativas

AlternativaAvaliação dos RequisitosVeredito
AOrdena por Nome primeiro, depois Data. Não filtra por mês.❌ Errada
BOrdena pela data completa (dia/mês/ano). Não separa apenas pelo mês.❌ Errada
COrdena corretamente, mas falta o filtro WHERE SEXO='F'.❌ Errada
DSeleciona colunas corretas, filtra por sexo e ordena por mês + nome.Correta
EOrdena pelo dia (DAY) e usa SELECT *.❌ Errada

A alternativa D é a única que executa a extração do mês para a ordenação principal, aplica o filtro de gênero correto e finaliza com a ordenação alfabética secundária.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Geral

Ver mais Geral resolvidas

Tem outra questão de Geral?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.