具體還是要看版本的
4.0版本以下,varchar(100),指的是100位元組,如果存放utf8漢字時,只能存33個(每個漢字3位元組)
5.0版本以上,varchar(100),指的是100字元,無論存放的是數字、字母還是utf8漢字(每個漢字3位元組),都可以存放100個。
自己在資料庫中建個表測試下可以放多少個漢字。
示例:以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個字元
char和varchar2 varchar的區別
char和varchar2 varchar的區別 1 char是長度固定的型別,varchar2是動態變化的,譬如 存在字串 abcde 對於乙個大小為char 20 而言,它將儲存20個字元,但是有15個是空字元,而varchar 20 則是占用3個位元組的長度,20只是能儲存的最大值。2 cha...
varchar和varchar2的區別
varchar是標準sql裡面的。varchar2是oracle提供的獨有的資料型別。varchar對於漢字佔兩個位元組,對於英文是乙個位元組,佔的記憶體小,varchar2都是佔兩個位元組。varchar對空串不處理,varchar2將空串當做null來處理。varchar存放固定長度的字串,最大...
varchar和varchar2還有char的區別
varchar,varchar2 聯絡 1.varchar varchar2用於儲存可變長度的字串 比如varchar 20 存入字串 abc 則資料庫中該字段只佔3個位元組,而不是20個位元組 2.size 的最大值是 4000,而最小值是 1,其值表示位元組數,比如 varchar 20 表示最...