This question is about existing tables. Changing the default for a database is well covered.
Most questions here on Stack Overflow seems to assume that you want to change both the character set and the collation - say from latin1_general_ci to utf8_spanish_ci. The answers typically recommends:
ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8 COLLATE utf8_spanish_ci;
This seems like a waste when the character set is unchanged - only the collation should be updated - but maybe MySQL is clever enough so it discovers that the character set is the same and no resources are wasted?
The question becomes: If only the collation is changing, what is the recommended procedure to update it for existing tables (and their columns)?