varchar(100)可以存多少中文字元

2021-09-12 02:15:13 字數 993 閱讀 6875

具體還是要看版本的

4.0版本以下,varchar(100),指的是100位元組,如果存放utf8漢字時,只能存33個(每個漢字3位元組)

5.0版本以上,varchar(100),指的是100字元,無論存放的是數字、字母還是utf8漢字(每個漢字3位元組),都可以存放100個。

自己在資料庫中建個表測試下可以放多少個漢字。

示例:以5.0以上版本為例。

新建表:

create table varchar_test (

idint(11) not null ,

stringvarchar(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 表示最...