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
        ALTER DATABASE
        でデータベースの全体的な特徴を変更することができます。これらの特徴は、データベースディレクトリの
        db.opt
        ファイルに格納されています。ALTER
        DATABASE
        を利用するためには、データベース上の
        ALTER
        権限が必要です。ALTER
        SCHEMA は ALTER
        DATABASE の同義語です。
      
        CHARACTER SET
        節はデフォルトデータベースのキャラクタセットを変更します。COLLATE
        節はデフォルトデータベースの照合を変更します。Character Set Supportはキャラクタセットと照合名を検討します。
      
        SHOW CHARACTER
        SET ステートメントと
        SHOW COLLATION
        ステートメントを使用することで、それぞれ、どのようなキャラクタセットとの照合が使用できるかがわかります。詳しくは、項8.5.5.4. 「SHOW CHARACTER SET 構文」および項8.5.5.5. 「SHOW COLLATION 構文」を参照してください。
      
最初の構文から、データベース名を省略できます。その場合、このステートメントはデフォルトデータベースに適用されます。
        UPGRADE DATA DIRECTORY NAME
        節を含む構文は、MySQL 5.1.23
        で追加されました。これは、データベース名をデータベースディレクトリ名にマッピングするための
        MySQL 5.1
        で実装されたエンコーディングを使用するように、データベースに関連付けられたディレクトリの名前を更新します
        (項5.2.3. 「識別子からファイル名へのマッピング」
        を参照)。この節は、次の条件の下で使用されます。
      
MySQL を旧バージョンから 5.1 以降にアップグレードする場合を対象にしています。
名前にエンコーディングが必要な特殊な文字が含まれている場合に、データベースディレクトリ名を現在のコード化形式に更新することを目的にしています。
このステートメントは、mysqlcheck で使用されます (mysql_upgrade によって呼び出されたとき)。
        たとえば、MySQL 5.0 のデータベースの名前が
        a-b-c
        の場合、その名前には
        '-'
        文字のインスタンスが含まれています。5.0
        では、データベースディレクトリにも
        a-b-c
        という名前が付けられますが、必ずしもすべてのファイルシステムで安全とはいえません。MySQL
        5.1
        以降では、ファイルシステムに依存しないディレクトリ名を生成するために、同じデータベース名が
        a@002db@002dc
        としてエンコードされます。
      
        MySQL インストールが旧バージョンから MySQL 5.1
        以降にアップグレードされると、サーバーでは
        a-b-c
        などの古い形式の名前が
        #mysql50#a-b-c
        として表示されるため、#mysql50#
        の接頭辞を付けて名前を参照する必要があります。この場合は、UPGRADE
        DATA DIRECTORY NAME
        を使用して、データベースディレクトリ名を現在のコード化形式に再エンコードするようサーバーに明示的に指示します。
      
ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
        このステートメントを実行したあと、特有の
        #mysql50#
        の接頭辞を使用することなくデータベースを
        a-b-c
        として参照できます。
      
