Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — FURB 2025

Banco de DadosBanco 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:
  1. AI, II, III e IV.
  2. BII, III e IV, apenas.
  3. CIII, apenas.
  4. DI, apenas.
  5. 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.

Link permanente: /questoes/qg496993