Modifies a database, changing its overall characteristics.
 
Syntax
------ 
ALTER {DATABASE | SCHEMA} [db_name]
 alter_specification ...
ALTER {DATABASE | SCHEMA} db_name
 UPGRADE DATA DIRECTORY NAME
 
alter_specification:
 [DEFAULT] CHARACTER SET [=] charset_name
 | [DEFAULT] COLLATE [=] collation_name
 
Description
----------- 
ALTER DATABASE enables you to change the overall
characteristics of a
database. These characteristics are stored in the db.opt
file in the
database directory. To use ALTER DATABASE, you need the
ALTER
privilege on the database. ALTER SCHEMA is a synonym for
ALTER
DATABASE.
 
The CHARACTER SET clause changes the default database
character set.
The COLLATE clause changes the default database collation.
See Character Sets and Collations for more.
 
You can see what character sets and collations are available
using,
respectively, the SHOW CHARACTER SET and SHOW COLLATION
statements.
 
Changing the default character set/collation of a database
does not change the character set/collation of any stored
procedures or stored functions that were previously created,
and relied on the defaults. These need to be dropped and
recreated in order to apply the character set/collation
changes.
 
The database name can be omitted from the first syntax, in
which case
the statement applies to the default database.
 
The syntax that includes the UPGRADE DATA DIRECTORY NAME
clause was
added in MySQL 5.1.23. It updates the name of the directory
associated
with the database to use the encoding implemented in MySQL
5.1 for
mapping database names to database directory names (see
Identifier to File Name Mapping). This
clause is for use under these conditions:
It is intended when upgrading MySQL to 5.1 or later from
older versions.
It is intended to update a database directory name to the
current encoding format if the name contains special
characters that need encoding.
The statement is used by mysqlcheck (as invoked by
mysql_upgrade).
 
For example,if a database in MySQL 5.0 has a name of a-b-c,
the name
contains instance of the `-' character. In 5.0, the
database directory
is also named a-b-c, which is not necessarily safe for all
file
systems. In MySQL 5.1 and up, the same database name is
encoded as
a@002db@002dc to produce a file system-neutral directory
name.
 
When a MySQL installation is upgraded to MySQL 5.1 or later
from an
older version,the server displays a name such as a-b-c
(which is in
the old format) as #mysql50#a-b-c, and you must refer to the
name
using the #mysql50# prefix. Use UPGRADE DATA DIRECTORY NAME
in this
case to explicitly tell the server to re-encode the database
directory
name to the current encoding format:
 
ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
 
After executing this statement, you can refer to the
database as a-b-c
without the special #mysql50# prefix.
 
Examples
-------- 
ALTER DATABASE test CHARACTER SET = 'utf8' COLLATE =
'utf8_bin';
 


URL: https://mariadb.com/kb/en/alter-database/