DECLARE cursor_name CURSOR FOR select_statement
        This statement declares a cursor and associates it with a
        SELECT statement that retrieves
        the rows to be traversed by the cursor. To fetch the rows later,
        use a FETCH statement. The number
        of columns retrieved by the
        SELECT statement must match the
        number of output variables specified in the
        FETCH statement.
      
        The SELECT statement cannot have
        an INTO clause.
      
Cursor declarations must appear before handler declarations and after variable and condition declarations.
A stored program may contain multiple cursor declarations, but each cursor declared in a given block must have a unique name. For an example, see Section 15.6.6, “Cursors”.
        For information available through
        SHOW statements, it is possible
        in many cases to obtain equivalent information by using a cursor
        with an INFORMATION_SCHEMA table.