sql >> データベース >  >> RDS >> Mysql

データベース、テーブル、列の照合の違い

    MySQLの文字セットと照合は、優先項目のトップダウンリストとして解釈できます。最上位が最も優先度が低く、最下位が最も優先度が高くなります。

    優先順位が最も高く、最も優先度が低い:

    • サーバー照合
    • 接続固有の照合
    • データベース照合
    • テーブル照合
    • 列の照合
    • クエリ照合(CASTを使用) またはCONVERT

    サーバー照合 my.cnf内のいずれかに設定されているサーバーによって設定されます またはサーバーがソースコードから構築されたとき。デフォルトでは、これは通常latin1になります またはutf8 、プラットフォームによって異なります。

    接続固有の照合 SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';のようなクエリを使用してクライアントによって設定されます 。ほとんどのクライアントは接続固有の照合を設定しないため、サーバーは上記で説明したように独自のデフォルトを使用します。

    データベース照合 データベースの作成時に設定するか、後で更新して手動で設定します。指定しない場合は、次に上位レベルの照合が使用されます。これは、接続固有の照合またはサーバーの照合のいずれかになります。

    テーブル照合 データベースの照合と同じですが、空白のままにすると、データベースがデフォルトとして使用され、次に接続固有、最後にサーバーの照合が使用されます。

    列の照合 テーブルの照合をデフォルトとして使用します。照合セットがない場合は、チェーンをたどって使用する照合を見つけ、他のすべてが設定されていない場合はサーバーで停止します。

    クエリ照合 CASTを使用してクエリで指定されます またはCONVERT 、ただし、それ以外の場合は、チェーン内で次に使用可能な照合を使用します。関数を使用しない限り、これを設定する方法はありません。

    マニュアルページ文字セットのサポート も参照してください。 。



    1. SQLでのMySQLのクラッシュ

    2. 定期的なセンサーデータを使用したデータベースの設計

    3. MySQLlatin1データをUTF8に変換します

    4. 新しい行を挿入するときの列のデフォルト値