違いはありません。
ただし、文字列を保存する場合は注意が必要です。
バイト配列またはストリームやファイルなどの他のバイナリデータのみを格納する場合は、バイナリ型を使用してください。
MySQLマニュアル からの引用 :
したがって、技術的には違いはありません。
ただし、文字列を格納するときは、文字セットを使用して文字列からバイト値に変換する必要があります。これは、MySQLサーバーの前に自分で行うか、MySQLに任せるかを決定します。 MySQLは、文字列を BINARY
にキャストすることで実行されます BIN文字セットを使用します。
エンコーディングを別の形式で保存する場合は、1文字あたり4バイトを使用する必要があるというビジネス要件があるとします(MySQLはデフォルトではこれを行いません)。次に、 CHARACTER SET BINARY コード> テキスト列に移動し、文字セットエンコーディングを自分で実行します。
BINARY
> およびVARBINARY
タイプ
パディングなどの重要な情報について詳しく説明しているMySQLマニュアルから。
概要: 一方は他方の同義語であるため、技術的な違いはありません。私の意見では、通常は CHARACTER SET BINARY
を使用して文字列を保持するデータ型にバイナリ文字列を格納することは論理的に理にかなっています。 バイト配列/ストリームなどをBINARY
に格納します 文字セットを介してデータを変換することによって表現できないフィールド。