Syntax:
DECLARE var_name [, var_name] ... type [DEFAULT value]

This statement declares local variables within stored programs. To
provide a default value for a variable, include a DEFAULT clause. The
value can be specified as an expression; it need not be a constant. If
the DEFAULT clause is missing, the initial value is NULL.

Local variables are treated like stored routine parameters with respect
to data type and overflow checking. See [HELP CREATE PROCEDURE].

Variable declarations must appear before cursor or handler
declarations.

Local variable names are not case-sensitive. Permissible characters and
quoting rules are the same as for other identifiers, as described in
https://dev.mysql.com/doc/refman/5.7/en/identifiers.html.

The scope of a local variable is the BEGIN ... END block within which
it is declared. The variable can be referred to in blocks nested within
the declaring block, except those blocks that declare a variable with
the same name.

For examples of variable declarations, see
https://dev.mysql.com/doc/refman/5.7/en/local-variable-scope.html.

URL: https://dev.mysql.com/doc/refman/5.7/en/declare-local-variable.html

