当前位置:Gxlcms > 数据库问题 > MySQL_编码utf8_bin和utf8_general_ci的区别

MySQL_编码utf8_bin和utf8_general_ci的区别

时间:2021-07-01 10:21:17 帮助过:18人阅读

int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, UNIQUE KEY `uk_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; CREATE TABLE `t_ci` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, UNIQUE KEY `uk_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; CREATE TABLE `t_default` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, UNIQUE KEY `uk_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

执行以下语句

insert into t_bin values (1, Alex);
insert into t_bin values (2, alex);

insert into t_ci values (1, Alex);
insert into t_ci values (2, alex);

insert into t_default values (1, Alex);
insert into t_default values (2, alex);

结果如下:

insert into t_bin values (1, Alex)
> Affected rows: 1
> 时间: 0.067s


insert into t_bin values (2, alex)
> Affected rows: 1
> 时间: 0.031s


insert into t_ci values (1, Alex)
> Affected rows: 1
> 时间: 0.098s


insert into t_ci values (2, alex)
> 1062 - Duplicate entry alex for key uk_name
> 时间: 0.024s
> 

结果分析

编码为utf8_bin时,Alex和alex被认为是两个不同的值,区分大小写;
编码为utf8_general_ci时,即默认的编码时,Alex和alex被认为是相同的值,不区分大小写。
所以在选择编码的时候应该注意区分。

 

MySQL_编码utf8_bin和utf8_general_ci的区别

标签:general   一句话   create   mysql   cat   creat   存储   选择   red   

人气教程排行