Questão de Banco de Dados — SQL — INSTITUTO AOCP 2025
Banco de Dados›SQL
Código
qg542703
Banca
INSTITUTO AOCP
Órgão
SANESUL
Ano
2025
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Como analista de tecnologia da informação da Sanesul, você recebeu do setor de Recursos Humanos uma solicitação para criar um banco de dados com as informações de todos os servidores da empresa. Para isso, você utilizou a seguinte estrutura de tabela e inserção de dados:CREATE TABLE servidores(id INTEGER PRIMARY KEY,nome TEXT NOT NULL,genero TEXT NOT NULL);INSERT INTO servidores VALUES (1, 'Alexandre', 'M');INSERT INTO servidores VALUES (2, 'Joana', 'F');INSERT INTO servidores VALUES (3, 'Marina', 'F');INSERT INTO servidores VALUES (4, 'Carol', 'F');INSERT INTO servidores VALUES (5, 'Lucas', 'M');Durante o mês de outubro, mês da conscientização para o controle do câncer de mama, o setor de RH solicitou um relatório segmentado por gênero, somente do feminino, para obter os nomes das servidoras. Qual comando você deverá utilizar para gerar esse relatório?
ASELECT * FROM servidores WHERE genero = 'M';
BSELECT nome FROM servidores WHERE genero = 'F';
CSELECT nome, genero FROM servidores GROUP BY genero;
DSELECT nome FROM servidores ORDER BY genero = 'F';
ESELECT * FROM servidores WHERE nome = 'F';
Revelar gabarito e comentário▾
GabaritoB — SELECT nome FROM servidores WHERE genero = 'F';
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Comandos SQL: SELECT com filtro WHERE
Gabarito: letra B. O comando SELECT nome FROM servidores WHERE genero = 'F'; retorna exatamente os nomes das servidoras, pois seleciona a coluna nome e filtra as linhas em que a coluna genero é igual a 'F'. As demais alternativas ou filtram pelo gênero errado, ou usam cláusulas inadequadas para a filtragem.
A linguagem SQL (Structured Query Language) é a linguagem padrão para manipulação de bancos de dados relacionais. O comando SELECT é utilizado para consultar dados, e sua estrutura básica é: SELECT colunas FROM tabela WHERE condição. A cláusula WHERE é responsável por filtrar as linhas que atendem a uma condição específica, comparando valores de colunas com literais ou expressões. No caso, a condição genero = 'F' seleciona apenas os registros cujo valor da coluna genero seja exatamente a letra 'F', que representa o gênero feminino.
A tabela servidores foi criada com três colunas: id (chave primária), nome e genero. Os dados inseridos incluem cinco servidores, sendo três do gênero feminino (Joana, Marina e Carol) e dois do masculino (Alexandre e Lucas). Para gerar o relatório solicitado, é necessário retornar apenas os nomes das servidoras, ou seja, aqueles cujo genero é 'F'. A consulta correta deve selecionar a coluna nome e aplicar o filtro WHERE genero = 'F'.
A banca explora a confusão entre os valores da coluna genero ('M' e 'F') e os nomes das pessoas. É comum o candidato trocar o filtro, selecionando genero = 'M' (masculino) ou confundir a coluna nome com a coluna genero. Além disso, cláusulas como GROUP BY e ORDER BY não são usadas para filtrar linhas, mas sim para agrupar e ordenar resultados, respectivamente.
Guarde a estrutura fundamental do SELECT com WHERE: a cláusula WHERE é o filtro de linhas, e a lista de colunas após SELECT define quais colunas aparecem no resultado. É nessa distinção que as alternativas se dividem.
Alternativa A — ❌ Incorreta
O comando SELECT * FROM servidores WHERE genero = 'M'; retorna todos os servidores do gênero masculino, não as servidoras. O filtro genero = 'M' seleciona apenas os registros masculinos (Alexandre e Lucas), o que contraria a solicitação do relatório feminino.
Alternativa B — ✅ Correta ⟵ GABARITO
O comando SELECT nome FROM servidores WHERE genero = 'F'; seleciona a coluna nome e filtra as linhas em que genero é igual a 'F'. Isso retorna exatamente os nomes das servidoras: Joana, Marina e Carol. A sintaxe está correta e atende plenamente ao pedido.
Alternativa C — ❌ Incorreta
O comando SELECT nome, genero FROM servidores GROUP BY genero; agrupa os registros por gênero, mas não filtra apenas o feminino. Além disso, a consulta retornaria uma linha por grupo (masculino e feminino), e não os nomes individuais das servidoras. A cláusula GROUP BY é usada para agrupar linhas com valores iguais em colunas específicas, geralmente com funções de agregação, não para filtrar.
Alternativa D — ❌ Incorreta
O comando SELECT nome FROM servidores ORDER BY genero = 'F'; está sintaticamente incorreto. A cláusula ORDER BY é usada para ordenar resultados, não para filtrar. A expressão genero = 'F' dentro de ORDER BY não é uma condição válida de filtragem; ela seria avaliada como um valor booleano (verdadeiro ou falso) para ordenação, mas não retornaria apenas as servidoras.
Alternativa E — ❌ Incorreta
O comando SELECT * FROM servidores WHERE nome = 'F'; filtra pela coluna nome, comparando com o valor 'F'. Como nenhum nome é igual a 'F', a consulta retornaria um conjunto vazio. A confusão aqui é trocar a coluna genero pela coluna nome.
Gabarito: letra B — a única consulta que retorna corretamente os nomes das servidoras.