web-dev-qa-db-ja.com

MySQLの同等のデータ型

私はSQL Serverのバックグラウンドを持っています。 MySQLでの同等のデータ型は次のようになります。

NVARCHAR-すべての言語で国際的なマルチバイト文字をサポートします

NVARCHAR(max)-非常に長いテキストドキュメントを許可します

23
Blankman

http://msdn.Microsoft.com/en-us/library/ms186939.aspx で行くと、私はそれを言うでしょう

VARCHAR(n) CHARSET ucs2

最も近いものです。しかし、私は多くの人がこれを使用しているのを見ていません。

VARCHAR(n) CHARSET utf8

私の知る限り、utf8とucs2の両方の文字セットで同じ文字を使用できますが、エンコーディングだけが異なります。したがって、どちらかが機能するはずです。後者がより頻繁に使用されるため、おそらく後者を選択します。

MySQLのユニコードサポートには、ユースケースに適用される場合と適用されない場合があるいくつかの制限があります。 MySQLのユニコードサポートの詳細については、 http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html を参照してください。

14
Roland Bouman

同等のものはVARCHARまたはTEXT

MySqlはncharとnvarcharをサポートしていますが、方法は異なります。これは、文字セットと照合を使用して実装されます(これは、文字セットを使用した文字列の比較に使用される一連のルールで、比較で大文字と小文字を区別するかどうかなど)。

MySqlは4レベルで文字セットを定義します。

サーバ
データベース
テーブル
カラム

文字セットを指定しない場合、文字セットはすぐ上のトップレベルから継承されます。あなたがする必要があるのは、タイプnvarcharにしたい列に、「文字セット」が任意のUnicode文字セットに設定されていることを確認することです(utf8が私が信じる最良の選択です)明示的または継承によって。

列レベルでは、次のように「文字セット」を設定できます。

create table nvarchar_test
(
_id varchar(10) character set utf8,
_name varchar(200) character set ascii
)

上記の例では、_idは10のユニコード文字を使用でき、_nameは100のユニコード文字を使用できます(各ユニコード文字は2つのASCII文字に評価されます)。

詳細については、MySqlリファレンスを参照してください。

13
Pentium10

MySQL 5では、NVARCHAR(National Varcharの省略形)がサポートされ、事前定義された文字セットとしてutf8を使用します。

http://dev.mysql.com/doc/refman/5.0/en/charset-national.html

6
CoryC