MySql数据库varchar和java字符串length()长度的区别?

Java 中字符串以 Unicode 方式编码的, 其长度通常计算的是字符数,一个中文也算一个字符。

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