varchar(100)はどれだけの中国語の文字を保存することができます

948 ワード

具体的にはバージョンを見てみましょう
4.0以降、varchar(100)は、100バイトを指し、UTF 8漢字が格納されている場合、33個しか保存できません(漢字1文字あたり3バイト)
5.0バージョン以上、varchar(100)は、100文字を指し、数字、アルファベット、UTF 8漢字(漢字3バイトあたり)が格納されていても100文字を格納できます.
自分でデータベースの中で1つの表を建ててテストして下でどれだけの漢字を置くことができます.
例:5.0以上のバージョンを例に挙げます.新しいテーブル:
CREATE TABLE varchar_test ( id int(11) NOT NULL , string varchar(20) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8COLLATE=utf8_general_ci挿入テーブル
INSERT INTO varchar_test(id,string)VALuES(1,‘一二三四五六七八九十’);INSERT INTO varchar_test(id,string)VALuES(2,『一二三四五六七八九十一二三四五六七八九』);INSERT INTO varchar_test (id, string) VALUES (3, ‘12345678901234567890’); テスト結果:
1:一二三四五六七八九十
2:一二三四五六七八九十一二三四五六七八九
3:12345678901234567890
挿入文字が21文字を超えると、エラーが発生します.
INSERT INTO varchar_test (id, string) VALUES (3, ‘123456789012345678901’); [Err]1406-Data too long for column’string’at row 1 MySQLのvarchar(n)が格納できる中国語文字数と英語文字数が一致しており、いずれもn文字であることがわかります