Questão de Banco de Dados — SQL — Quadrix 2025
- Código
- qg594439
- Banca
- Quadrix
- Órgão
- CAU-MA
- Ano
- 2025
- Nível
- Médio
- Cargo
- Assistente de Tecnologia da Informação
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: CERTO (letra C). A consulta SELECT * FROM projetos WHERE cidade = 'São Luís'; está sintaticamente correta e, ao filtrar as linhas da tabela projetos cujo valor da coluna cidade seja exatamente a string 'São Luís', retorna todos os projetos realizados nessa cidade. 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 entre aspas simples é a forma padrão de expressar esse filtro.
A linguagem SQL (Structured Query Language) é a linguagem padrão para manipular bancos de dados relacionais. Uma consulta SELECT é composta por cláusulas que definem o que será retornado. A cláusula SELECT * indica que todas as colunas da tabela serão projetadas no resultado. A cláusula FROM projetos define a tabela de origem dos dados. E a cláusula WHERE cidade = 'São Luís' é o filtro que restringe as linhas retornadas àquelas em que o valor da coluna cidade é exatamente a string 'São Luís'. É importante notar que, em SQL, strings são delimitadas por aspas simples ('), e a comparação de igualdade é feita com o operador =. Portanto, a consulta retorna todas as linhas da tabela projetos que possuem o valor 'São Luís' na coluna cidade, ou seja, todos os projetos realizados nessa cidade.
A cláusula WHERE é o coração da filtragem de linhas em SQL. Ela é aplicada linha a linha, e apenas as linhas que satisfazem a condição especificada são incluídas no resultado. No contexto da álgebra relacional, o WHERE corresponde à operação de seleção (σ), que escolhe um subconjunto de tuplas de uma relação. Já o SELECT (a lista de colunas) corresponde à operação de projeção (π), que escolhe um subconjunto de atributos. Essa distinção é fundamental e frequentemente cobrada em provas: o SELECT define as colunas, o WHERE define as linhas.
Um ponto que pode gerar confusão é a diferença entre WHERE e HAVING. O WHERE filtra linhas individuais antes de qualquer agrupamento ou agregação. O HAVING, por sua vez, é usado para filtrar grupos de linhas depois que o GROUP BY é aplicado. Nesta questão, não há agrupamento, então o WHERE é a cláusula correta e suficiente para o filtro desejado.
Outra distinção importante é entre WHERE e JOIN. O JOIN combina colunas de duas ou mais tabelas com base em uma condição de relacionamento, enquanto o WHERE filtra linhas de uma única tabela (ou do resultado de um JOIN). Nesta questão, a consulta envolve apenas uma tabela (projetos), então o WHERE é a ferramenta adequada.
A banca explora aqui um conceito básico, mas fundamental: a função da cláusula WHERE em uma consulta SQL. O candidato que domina esse conceito identifica imediatamente que a consulta está correta. A pegadinha, se houvesse, seria confundir WHERE com HAVING, ou achar que a comparação de strings exigiria o operador LIKE (que é usado para correspondência de padrões, não para igualdade exata). Nenhuma dessas armadilhas está presente, tornando a questão direta.
A consulta SELECT * FROM projetos WHERE cidade = 'São Luís'; está correta. Ela seleciona todas as colunas (*) da tabela projetos e filtra as linhas onde o valor da coluna cidade é igual à string 'São Luís'. A sintaxe está perfeita: a cláusula WHERE é usada para filtrar linhas, o operador = compara igualdade, e a string está entre aspas simples, como exige o padrão SQL. Portanto, o resultado será exatamente todos os projetos realizados na cidade de São Luís.
Gabarito: CERTO (letra C).
Link permanente: /questoes/qg594439