In Oracle there is PL/SQL, a powerful imperative language. Is there anything similar for MySQL?
Some relational database vendors follow the traditional definition of SQL, which defines it as a declarative language. Examples of these vendors include PostgreSQL, IBM, Oracle. For these databases vendors you write procedural code in their own procedural languages they provide which may or may not make available SQL.
Some vendors though see their procedural language as an extension to SQL. These vendors don't have any such differentiation. For example, in MySQL a "Stored Program" is declared with LANGUAGE SQL even though it provides different language-features (like LEAVE, REPEAT and UNTIL that are not provided elsewhere). So you have essentially a different "SQL Language" in a "SQL Routine" then you have in a query expression. Other vendors like Microsoft call everything they do with just one term -- "T-SQL". This dropping of a term makes it hard to find equivalent features in other databases, or to know what features are likely to be different.
The procedural features being entirely standardized are likely to be different. While the declarative query syntax is likely to be similar because there is a spec on it.