Questão de Banco de Dados — Banco de Dados Relacionais — FURB 2025
Banco de Dados›Banco de Dados Relacionais
Código
qg496993
Banca
FURB
Órgão
Prefeitura de Florianópolis - SC
Ano
2025
Nível
Superior
Cargo
Auditor Fiscal de Tributos Municipais - Auditoria e Fiscalização - 2º Dia
Avalie as afirmativas a seguir sobre operadores e cláusulas da linguagem SQL:I. O operador OUTER JOIN garante que todos os registros da tabela base sejam incluídos no resultado, mesmo que não haja correspondência com a tabela associada, preenchendo com NULL os campos não emparelhados.II. O operador IN retorna TRUE se ao menos uma das comparações for satisfeita; já o operador ALL retorna TRUE somente se todas as comparações forem verdadeiras.III. A cláusula WHERE pode ser utilizada para filtrar resultados agregados desde que esteja posicionada após o GROUP BY.IV. A cláusula HAVING pode ser usada para filtrar grupos de resultados gerados por funções agregadas, enquanto WHERE atua apenas sobre linhas individuais antes do agrupamento.É correto o que se afirma em:
AI, II, III e IV.
BII, III e IV, apenas.
CIII, apenas.
DI, apenas.
EI, II e IV apenas.
Revelar gabarito e comentário▾
GabaritoE — I, II e IV apenas.
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”.
Operadores e cláusulas SQL: OUTER JOIN, IN, ALL, WHERE e HAVING
Gabarito: letra E. Estão corretas as afirmativas I, II e IV. A afirmativa III é falsa porque a cláusula WHERE não pode filtrar resultados agregados (deve ser usada antes do GROUP BY); essa função é da cláusula HAVING, que atua após o agrupamento. (Padrão SQL/ANSI)
A banca testa o domínio de operadores de junção (OUTER JOIN), operadores lógicos (IN e ALL) e o posicionamento correto das cláusulas WHERE e HAVING. Vejamos cada afirmativa.
Afirmativa
Status
Justificativa
I – OUTER JOIN
✅ Correta
Garante todos os registros da tabela base no resultado, mesmo sem correspondência, preenchendo com NULL os campos não emparelhados.
II – IN e ALL
✅ Correta
IN retorna TRUE se ao menos uma comparação for satisfeita; ALL retorna TRUE somente se todas as comparações forem verdadeiras.
III – WHERE após GROUP BY
❌ Incorreta
WHERE deve ser usada antes do GROUP BY; não pode filtrar resultados agregados (função do HAVING).
IV – WHERE vs HAVING
✅ Correta
WHERE filtra linhas individuais antes do agrupamento; HAVING filtra grupos após o GROUP BY, podendo usar funções agregadas.
Cláusulas SQL
1WHERE
Antes do GROUP BY
Filtra linhas individuais
Não aceita funções agregadas
2HAVING
Após o GROUP BY
Filtra grupos
Aceita funções agregadas
3Ordem de execução
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
LEVEL · soulevel.com.br
Afirmativa I — ✅ Correta
O OUTER JOIN (LEFT, RIGHT ou FULL) assegura que todos os registros da tabela especificada como base sejam mantidos no resultado, mesmo sem correspondência na tabela associada, preenchendo com NULL os campos não emparelhados. É um conceito fundamental de junção externa.
Afirmativa II — ✅ Correta
O operador IN retorna TRUE quando o valor testado corresponde a pelo menos um dos elementos da lista fornecida. O operador ALL, usado em subconsultas (ex.: WHERE valor > ALL (subconsulta)), retorna TRUE se a condição for satisfeita para todos os valores retornados pela subconsulta. A descrição está precisa.
Afirmativa III — ❌ Incorreta ⟵ GABARITO (a incorreta entre as assertivas)
A cláusula WHERE é aplicada antes do agrupamento (GROUP BY) e não pode conter funções de agregação (como SUM, AVG) para filtrar resultados agregados; isso geraria erro de execução. Para filtrar grupos já formados, utiliza-se a cláusula HAVING, que vem após o GROUP BY. Portanto, a afirmação de que WHERE pode filtrar resultados agregados desde que posicionada após GROUP BY é falsa.
Afirmativa IV — ✅ Correta
A função de HAVING é exatamente essa: impor condições sobre os grupos gerados pelo GROUP BY, podendo usar funções de agregação. WHERE, por outro lado, atua sobre linhas individuais (registros) antes do agrupamento. A distinção está correta.
NÃO CAIA NESSA!
Para lembrar a ordem de execução: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. WHERE filtra linhas; HAVING filtra grupos. Decore essa sequência — a banca adora trocar WHERE por HAVING.
Corretas: I, II e IV → portanto, o gabarito é a letra E.