Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — Avança SP 2025

Banco de DadosMySQL
Código
qg412870
Banca
Avança SP
Órgão
FUSAM de Caçapava - SP
Ano
2025
Nível
Superior
Cargo
Analista de Suporte
Indique a alternativa que apresenta a ordem correta de declaração dos elementos no comando DECLARE do MySQL.
  1. AVariáveis, condições, cursores, handlers.
  2. BHandlers, cursores, condições, variáveis.
  3. CCursores, handlers, variáveis, condições.
  4. DCondições, variáveis, handlers, cursores.
  5. ECursores, variáveis, handlers, condições.
Revelar gabarito e comentário

GabaritoA — Variáveis, condições, cursores, handlers.

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

Ordem de declaração no comando DECLARE do MySQL

Gabarito: letra A. No MySQL, a ordem correta de declaração dos elementos dentro de um bloco composto (BEGIN...END) é: variáveis, condições, cursores e, por último, handlers. Essa sequência é obrigatória porque cada elemento pode referenciar os anteriores — um handler pode referenciar um cursor, que por sua vez pode depender de uma condição, que pode usar uma variável. A documentação oficial do MySQL estabelece essa ordem, e é exatamente ela que a alternativa A reproduz.

O comando DECLARE é usado para declarar diversos itens dentro de um bloco composto em stored programs (procedures, functions, triggers e events). A ordem em que esses itens devem ser declarados não é arbitrária: ela segue uma lógica de dependência. Primeiro, declaramos as variáveis locais, que são a base para qualquer lógica. Em seguida, declaramos as condições, que são nomes simbólicos para erros ou condições específicas (como NOT FOUND ou SQLEXCEPTION). Depois, declaramos os cursores, que são estruturas que percorrem um conjunto de resultados de uma consulta. Por fim, declaramos os handlers, que são rotinas de tratamento de exceções que podem referenciar os cursores e as condições previamente declarados.

A razão para essa ordem é que o MySQL processa as declarações de forma sequencial. Um handler, por exemplo, pode conter uma ação que usa um cursor; para que isso seja válido, o cursor já deve ter sido declarado. Da mesma forma, um cursor pode ser definido para uma condição específica, que precisa existir antes. E uma condição pode ser baseada em um código de erro ou em uma condição nomeada, mas não depende de cursores ou handlers. Portanto, a hierarquia natural é: variáveis → condições → cursores → handlers.

Na prática, um exemplo de bloco composto seria:

BEGIN
  DECLARE v_total INT DEFAULT 0;
  DECLARE v_id INT;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_total = -1;
  DECLARE cur CURSOR FOR SELECT id FROM tabela;
  -- ...
END;

Neste exemplo, a variável v_total é declarada primeiro, depois a condição NOT FOUND (implícita), depois o handler que a utiliza, e por fim o cursor. A ordem apresentada na alternativa A é a única que respeita essa sequência lógica.

A pegadinha desta questão é que muitos candidatos confundem a ordem de declaração com a ordem de execução ou com a ordem alfabética. A banca explora exatamente essa confusão, apresentando alternativas que invertem a sequência correta. Guarde a sequência: variáveis, condições, cursores, handlers — é a ordem que o MySQL exige.

  1. 1Variáveis
  2. 2Condições
  3. 3Cursores
  4. 4Handlers
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Esta alternativa apresenta a ordem exata exigida pelo MySQL: variáveis, condições, cursores e handlers. É a sequência lógica de dependência, onde cada elemento pode referenciar os anteriores. A documentação oficial do MySQL especifica essa ordem para a declaração dentro de um bloco composto.

Alternativa B — ❌ Incorreta

Inverte completamente a ordem, começando pelos handlers, que são os últimos a serem declarados. Handlers dependem de cursores e condições, portanto não podem vir primeiro.

Alternativa C — ❌ Incorreta

Começa pelos cursores, que dependem de variáveis e condições. A ordem correta exige que variáveis e condições venham antes dos cursores.

Alternativa D — ❌ Incorreta

Coloca as condições antes das variáveis, mas a ordem correta é variáveis primeiro. Além disso, handlers devem vir por último, não antes dos cursores.

Alternativa E — ❌ Incorreta

Começa pelos cursores, que dependem de variáveis e condições. A ordem correta é variáveis, condições, cursores e handlers.

Gabarito: letra A

Link permanente: /questoes/qg412870