Questão de Banco de Dados — SQL — Quadrix 2025
- Código
- qg602051
- Banca
- Quadrix
- Órgão
- CRP - SP
- Ano
- 2025
- Nível
- Médio
- Cargo
- Técnico Especializado em Suporte Administrativo - Técnico em Tecnologia da Informação e Comunicação
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: CERTO (letra C). O comando SELECT nome FROM pacientes WHERE diagnostico = 'ansiedade'; está sintaticamente correto e semanticamente adequado: ele projeta a coluna nome da tabela pacientes, filtrando apenas as linhas em que o valor da coluna diagnostico é exatamente a string 'ansiedade'. A cláusula WHERE é exatamente o mecanismo do SQL para filtrar linhas com base em uma condição, e a comparação de igualdade com uma string literal entre aspas simples é a forma padrão de expressar essa condição.
O comando SELECT é a instrução fundamental de consulta em SQL, responsável por recuperar dados de uma ou mais tabelas. Sua sintaxe básica é SELECT colunas FROM tabela WHERE condição;. Cada parte tem um papel específico: a lista de colunas após SELECT define quais atributos (colunas) serão retornados — no caso, apenas nome; a cláusula FROM indica a tabela de onde os dados serão lidos — pacientes; e a cláusula WHERE estabelece a condição de filtragem das linhas — diagnostico = 'ansiedade'. Essa estrutura é universal e independe do SGBD (MySQL, PostgreSQL, Oracle, SQL Server etc.).
Na prática, imagine que a tabela pacientes contenha os registros: (1, 'Ana', 'ansiedade'), (2, 'Bruno', 'depressão'), (3, 'Carla', 'ansiedade'). Ao executar o comando, o banco percorre todas as linhas, verifica a condição diagnostico = 'ansiedade' e retorna apenas os nomes das linhas que a satisfazem: 'Ana' e 'Carla'. O resultado é uma tabela com uma única coluna nome, contendo esses dois valores. Se nenhum paciente tiver esse diagnóstico, o resultado será um conjunto vazio — mas o comando em si permanece válido.
É importante distinguir o papel de cada cláusula, pois é uma confusão clássica em provas. O SELECT corresponde à operação de projeção da álgebra relacional (escolhe colunas), enquanto o WHERE corresponde à operação de seleção (escolhe linhas). O FROM define a(s) tabela(s) de origem. Essa distinção é frequentemente cobrada e aparece em questões de bancas como CESPE e VUNESP. No comando em análise, a projeção é sobre nome e a seleção é sobre diagnostico = 'ansiedade'.
A pegadinha que a banca poderia explorar aqui seria inverter os papéis — afirmar que o WHERE projeta colunas ou que o SELECT filtra linhas. Mas o enunciado descreve exatamente o comportamento correto: o comando retorna os nomes dos pacientes cujo diagnóstico é 'ansiedade'. Não há qualquer erro de sintaxe (as aspas simples delimitam a string corretamente) nem de semântica. A condição de igualdade = é a forma adequada para comparar valores exatos, e o valor 'ansiedade' está entre aspas simples, como exige a sintaxe SQL para literais de texto.
Guarde o critério decisivo: WHERE filtra linhas; SELECT projeta colunas. É exatamente essa distinção que separa o comando correto de qualquer distrator que a banca possa criar.
O comando SELECT nome FROM pacientes WHERE diagnostico = 'ansiedade'; está correto e cumpre exatamente o que o enunciado afirma. A cláusula WHERE filtra as linhas da tabela pacientes cuja coluna diagnostico seja igual à string 'ansiedade', e o SELECT nome projeta apenas a coluna nome dessas linhas. O resultado é, portanto, a lista de nomes dos pacientes com esse diagnóstico registrado. Não há erro de sintaxe: as aspas simples delimitam corretamente o literal de texto, e a comparação de igualdade é a forma adequada para essa condição.
Gabarito: letra C (CERTO).
Link permanente: /questoes/qg602051