Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2025

Banco de DadosSQL
Código
qg594437
Banca
Quadrix
Órgão
CAU-MA
Ano
2025
Nível
Médio
Cargo
Assistente de Tecnologia da Informação
A empresa ArqUrban de São Luís‑MA, especializada em projetos de arquitetura e urbanismo, mantém um banco de dados para armazenar informações sobre projetos, clientes e equipes de trabalho. Foi solicitado a um técnico de TI que analisasse algumas consultas SQL básicas feitas por um estagiário e verificar se estão corretas para obter as informações desejadas. 
Com base nessa situação hipotética, julgue o item seguinte.A consulta SELECT * FROM projetos WHERE status = ‘Em Andamento’ OR cidade = ‘São Luís’; retorna apenas os projetos que estão “Em Andamento” na cidade de São Luís.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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”.

SQL: operador OR e a semântica da consulta

Gabarito: ERRADO (letra E). A consulta SELECT * FROM projetos WHERE status = 'Em Andamento' OR cidade = 'São Luís'; retorna os projetos que estão "Em Andamento" OU os projetos da cidade de São Luís, ou seja, a união dos dois conjuntos — não apenas os projetos que estão "Em Andamento" E são de São Luís. O erro está na interpretação do operador OR, que amplia o resultado, enquanto a afirmação do enunciado descreve uma interseção, que seria obtida com o operador AND.

O comando SELECT com a cláusula WHERE é a forma de filtrar linhas de uma tabela no SQL. A cláusula WHERE aceita condições que podem ser combinadas com os operadores lógicos AND, OR e NOT. O operador AND exige que todas as condições sejam verdadeiras simultaneamente para que a linha seja retornada — é a interseção. Já o operador OR retorna a linha se pelo menos uma das condições for verdadeira — é a união. Essa distinção é fundamental e é exatamente o que a banca explora nesta questão.

Vamos aplicar isso ao caso concreto. A tabela projetos tem, entre outras, as colunas status e cidade. A consulta pede linhas onde status = 'Em Andamento' OU cidade = 'São Luís'. Isso significa que serão retornados:

  • Projetos em andamento, independentemente da cidade (inclusive os de São Luís);

  • Projetos de São Luís, independentemente do status (inclusive os em andamento);

  • Projetos que atendem às duas condições (em andamento E em São Luís) — estes aparecem uma única vez, pois o OR não duplica linhas.

Portanto, o resultado inclui projetos que não estão em andamento (mas são de São Luís) e projetos que não são de São Luís (mas estão em andamento). A afirmação do enunciado diz que a consulta retorna "apenas" os projetos que estão "Em Andamento" na cidade de São Luís — isso seria o resultado de WHERE status = 'Em Andamento' AND cidade = 'São Luís', que é a interseção. Como o OR foi usado, o resultado é mais amplo.

A pegadinha clássica é confundir OR com AND. O candidato que lê a frase "Em Andamento na cidade de São Luís" e associa ao OR comete o erro de achar que a condição composta exige as duas coisas. Na verdade, o OR é inclusivo: basta uma das condições ser verdadeira. Para exigir ambas, o operador correto é o AND. Guarde essa fronteira: AND = interseção (restrição), OR = união (ampliação). É exatamente nela que esta questão se decide.

Em AndamentoSão LuísEm Andamento (fora SL)São Luís (não em andamento)Em Andamento e São LuísLEVELsoulevel.com.br
Projetos por status e cidade — só Em Andamento: Em Andamento (fora SL); só São Luís: São Luís (não em andamento); Em Andamento∩São Luís: Em Andamento e São Luís

Alternativa E — ❌ Incorreta (gabarito)

A afirmação está errada porque descreve o resultado de uma consulta com AND, não com OR. A consulta com OR retorna a união dos projetos em andamento com os projetos de São Luís, incluindo projetos que não atendem simultaneamente às duas condições. Para retornar "apenas" os projetos em andamento na cidade de São Luís, a consulta correta seria SELECT * FROM projetos WHERE status = 'Em Andamento' AND cidade = 'São Luís';. O OR amplia o conjunto de resultados, enquanto a frase do enunciado descreve uma restrição — exatamente o oposto do que o operador faz.

NÃO CAIA NESSA!

A banca troca o operador lógico na interpretação: o enunciado descreve uma interseção ("Em Andamento" e São Luís), mas a consulta usa OR, que é uma união. O candidato que lê a frase e não confere o operador cai na armadilha. Lembre-se: OR basta uma condição; AND exige todas.

PEGA ESSA DICA!

Na prova, ao analisar uma consulta com WHERE, sublinhe os operadores AND/OR e pergunte: "o resultado é a interseção ou a união dos conjuntos?". Se a frase do enunciado diz "e", o operador deve ser AND; se diz "ou", deve ser OR. Essa checagem rápida evita o erro mais comum em questões de SQL.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qg594437