测试了下 varchar(64) ,64 就是代表字符长度,就是说可以存储(insert into) 64 个字符(无论中文还是英文)。 汉字的话,占用了 64 * 3 个字节,英文的话占用了 64 * 1 个字节。 使用CHAR_LENGTH() 和 LENGTH() 验证结果 创建表 插入9 个英文字符时 插入10 个英文字符时 插入9 个汉字时 插入10 个汉字...
id INT AUTO_INCREMENT PRIMARY KEY, chinese_text VARCHAR(64) -- 创建一个字段,设置最大长度为64字节 ); 1. 2. 3. 4. 5. 6. 7. 8. 3. 插入数据 ```markdown ```sql INSERT INTO chinese_table (chinese_text) VALUES ('你好'); -- 插入一个汉字,占用3字节 1. 2. 3. 4. 5. 4. 查...
首先要理解varchar(M)的M是说字符个数,而不是字节。 为什么不能varchar(20000)之类的,是20000个字符放不下吗? 为什么提示只能最大16383个字符呢?这个数字是怎么算出来的? 这个我就得和你好好唠嗑了! varchar是变长的,varchar(64)能存放0~64个字符不等,并不一定是存了最大64个字符,谁知道这个类型到底存了几...
字段非空时候:varchar(65535) -2 bytes (存储长度,按2个算) - 1byte (latin1类型) - 1 (null byte)=65531 字节可以用 减1的原因是实际行存储从第二个字节开始’; 字段可以空时候:varchar(65535) -2 bytes (存储长度,按2个算) - 1byte (latin1类型) =65532 字节可以用 根据这个最大字节数,以及编码...
5.0版本以上,比如varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。 通过查看,我使用的是5.0版本以上 的数据库,所以说一个varchar长度对应一个汉字或者一个数字 以为的版本为例做了如下测试: 新建表: ...
当编码形式为utf8时varchar最大可以存(65535字节-2字节 )/3字节=21844字符余1,大概21844个汉字,也就是说可以设置的最大长度为21844 当编码形式为GBK时varchar最大可以存(65535字节-2字节)/2字节=32766字符余1,大概32766个汉字,也就是说可以设置的最大长度为32766...
在UTF8状态下mediumtext: 16777215/3=5592405个汉字,约560万,存储空间占用:16777215/1024/1024=16M的数据; 在UTF8状态下text: 65535/3=21845个汉字,约20000,存储空间占用:65535/1024=64K的数据; 在UTF8状态下的varchar,最大只能到 (65535 - 2) / 3 = 21844个汉字,英文也为 21844个字符串 ...
在MySQL 5.0以下版本中,数字n表示VARCHAR可以存储的最大字节数。例如,`VARCHAR(100)`可以存储最多100个字节的数据。因为一个汉字通常需要3个字节的存储空间,所以用字节表示的VARCHAR最大存储的汉字数量可以通过字节数除以3来计算。以此类推,`VARCHAR(100)`理论上最多可以存储33个汉字。对于MySQL 5....
如果使用UTF-8编码,每个汉字通常需要3个字节,因此varchar(20)在这样的环境下实际上只能存储大约6个汉字(因为20 / 3 ≈ 6.67,实际存储时无法存储部分字节)。 MySQL 5.0及以上版本:从5.0版本开始,varchar(N) 表示的是N个字符的长度,而不再是字节。这意味着无论存放的是数字、字母还是UTF-8编码的汉字,varchar(...
varchar存储规则 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 。 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 。 Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小...