MySqlデータベースのvarcharとjavastring length()の長さの違いは何ですか?

Javaの文字列はUnicodeでエンコードされ、その長さは通常文字数として計算され、1つの中国語文字も1文字としてカウントされます。

MySqlのvarchar(n)タイプフィールドでは、nはバイト数ではなく文字数も表すため、フィールドは<= n文字を挿入できます。文字が占めるバイト数は、使用する文字エンコーディングによって異なります。通常、私はUTF-8を使用し、MysqlのUTF-8でエンコードされた文字は3バイトを占めます。

CREATE TABLE `group_space` (
  `GROUP_ID` decimal(16,0) NOT NULL,
  `USER_FILE_ID` decimal(18,0) DEFAULT NULL,
  `USER_ID` decimal(20,0) DEFAULT NULL,
  `GROUP_SIZE` decimal(10,0) DEFAULT NULL,
  `CREATE_TIME` timestamp NULL DEFAULT NULL,
  `REVIEW_STATUS` decimal(1,0) DEFAULT NULL,
  `GROUP_NAME` varchar(5) DEFAULT NULL,
  `LAST_OPTIME` timestamp NULL DEFAULT NULL,
  `PUBLIC_LEVEL` decimal(1,0) DEFAULT NULL,
  `ENTER_LEVEL` decimal(1,0) DEFAULT NULL,
  `GROUP_NUMBER` varchar(20) DEFAULT NULL,
  `GROUP_MODEL` decimal(3,0) DEFAULT NULL,
  `GROUP_STATUS` decimal(1,0) DEFAULT NULL,
  `UNI_CONTACT_ID` decimal(20,0) DEFAULT NULL,
  PRIMARY KEY (`GROUP_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


GROUP_NAMEフィールドの長さは5です。つまり、5文字を挿入でき、utf8コードは最大15バイトで格納できます。

おすすめ

転載: blog.csdn.net/LOVE_Me__/article/details/108869578