MySQL中校验规则的选取对数据的影响
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL中校验规则的选取对数据的影响,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2572字,纯文字阅读大概需要4分钟。
内容图文
![MySQL中校验规则的选取对数据的影响](/upload/InfoBanner/zyjiaocheng/477/f442cc85df894c9cba4aeee22877a96f.jpg)
在mysql中存在着各种utf8编码格式,如下表:
1)utf8_bin
2)utf8_general_ci
utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。
utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。
现在假设执行如下命令:
create table test_bin (
name varchar(32) not null primary key,
age int unsigned not null
) engine = InnoDB COLLATE=utf8_bin;
以上命令能够执行成功。
create table test_ci (
name varchar(32) not null primary key,
age int unsigned not null
) engine = InnoDB COLLATE=utf8_general_ci;
以上命令能够执行成功。
insert into test_bin values(‘Alice‘, 18);
以上命令能够执行成功。
insert into test_bin values(‘alice‘, 18);
以上命令能够执行成功,因为utf8_bin是以十六进制方式存储数据,两条记录的主键不重复。
insert into test_ci values(‘Alice‘, 18);
以上命令能够执行成功。
insert into test_ci values(‘alice‘, 20);
以上命令执行失败,因为utf8_general_ci不区分大小写,两条记录的主键重复。
因为校验规则不同,所以使用两种校验规则的非唯一列相同结果的排序结果也会不同。建议使用utf8_bin校验规则
mysql> select * from test_paixu_ci order by name desc; +----+------+---------+ | id | name | address | +----+------+---------+ | 1 | huzj | hunan | | 12 | huzj | hunan | | 13 | Huzj | hunan | | 14 | huzj | hunan | | 15 | Huzj | hunan | | 16 | huzj | hunan | | 17 | HuzJ | hunan | | 18 | huzj | hunan | | 19 | HUZJ | hunan | | 11 | hUzj | hunan | | 10 | hUZj | hunan | | 2 | huzJ | hunan | | 3 | huzj | hunan | | 4 | huZj | hunan | | 5 | hUzj | hunan | | 6 | huZj | hunan | | 7 | huzj | hunan | | 8 | huZj | hunan | | 9 | hUzj | hunan | | 20 | hUzj | hunan | +----+------+---------+ 20 rows in set (0.00 sec) mysql> select * from test_paixu_bin order by name desc; +----+------+---------+ | id | name | address | +----+------+---------+ | 1 | huzj | hunan | | 14 | huzj | hunan | | 16 | huzj | hunan | | 7 | huzj | hunan | | 12 | huzj | hunan | | 18 | huzj | hunan | | 3 | huzj | hunan | | 2 | huzJ | hunan | | 4 | huZj | hunan | | 8 | huZj | hunan | | 6 | huZj | hunan | | 11 | hUzj | hunan | | 9 | hUzj | hunan | | 5 | hUzj | hunan | | 20 | hUzj | hunan | | 10 | hUZj | hunan | | 13 | Huzj | hunan | | 15 | Huzj | hunan | | 17 | HuzJ | hunan | | 19 | HUZJ | hunan | +----+------+---------+ 20 rows in set (0.00 sec)
MySQL中校验规则的选取对数据的影响
标签:create 存储 var 成功 字符 使用 des sign 相同
本文系统来源:http://www.cnblogs.com/janehoo/p/6549776.html
内容总结
以上是互联网集市为您收集整理的MySQL中校验规则的选取对数据的影响全部内容,希望文章能够帮你解决MySQL中校验规则的选取对数据的影响所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。