_cs, _ci, or _bin,
DROP TABLE IF EXISTS `w_ci_bin_cs`;
CREATE TABLE `w_ci_bin_cs` (
`pkey` int(11) NOT NULL AUTO_INCREMENT,
`w` char(255) NOT NULL DEFAULT 'W',
`w_ci` char(255) NOT NULL DEFAULT 'a',
`w_bin` char(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'bin',
`w_ci_bin` char(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 'ci_bin',
`w__bin` char(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '__bin',
PRIMARY KEY (`pkey`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of w_ci_bin_cs
-- ----------------------------
INSERT INTO `w_ci_bin_cs` VALUES ('', 'w', 'a', 'bin', 'ci_bin', '__bin');
INSERT INTO `w_ci_bin_cs` VALUES ('', 'W', 'A', 'BIN', 'CI_BIN', 'BIN');
mysql> SELECT * FROM w_ci_bin_cs;
+------+---+------+-------+----------+--------+
| pkey | w | w_ci | w_bin | w_ci_bin | w__bin |
+------+---+------+-------+----------+--------+
| 1 | w | a | bin | ci_bin | __bin |
| 2 | W | A | BIN | CI_BIN | BIN |
+------+---+------+-------+----------+--------+
2 rows in set (0.00 sec) mysql> SELECT * FROM w_ci_bin_cs WHERE w='w';
+------+---+------+-------+----------+--------+
| pkey | w | w_ci | w_bin | w_ci_bin | w__bin |
+------+---+------+-------+----------+--------+
| 1 | w | a | bin | ci_bin | __bin |
| 2 | W | A | BIN | CI_BIN | BIN |
+------+---+------+-------+----------+--------+
2 rows in set (0.00 sec) mysql> SELECT * FROM w_ci_bin_cs WHERE w_ci='a';
+------+---+------+-------+----------+--------+
| pkey | w | w_ci | w_bin | w_ci_bin | w__bin |
+------+---+------+-------+----------+--------+
| 1 | w | a | bin | ci_bin | __bin |
| 2 | W | A | BIN | CI_BIN | BIN |
+------+---+------+-------+----------+--------+
2 rows in set (0.00 sec) mysql> SELECT * FROM w_ci_bin_cs WHERE w_bin='BIN';
+------+---+------+-------+----------+--------+
| pkey | w | w_ci | w_bin | w_ci_bin | w__bin |
+------+---+------+-------+----------+--------+
| 2 | W | A | BIN | CI_BIN | BIN |
+------+---+------+-------+----------+--------+
1 row in set (0.00 sec) mysql>
11.1.1 Character Sets and Collations in General
A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set. Let's make the distinction clear with an example of an imaginary character set.
Suppose that we have an alphabet with four letters:         A, B,         a, b. We give each letter        a number: A = 0, B = 1,         a = 2, b = 3. The letter         A is a symbol, the number 0 is the         encoding for         A, and the combination of all four letters        and their encodings is a character        set.
Suppose that we want to compare two string values,         A and B. The simplest way        to do this is to look at the encodings: 0 for         A and 1 for B. Because 0        is less than 1, we say A is less than         B. What we've just done is apply a collation        to our character set. The collation is a set of rules (only one        rule in this case): “compare the encodings.” We        call this simplest of all possible collations a         binary collation.
But what if we want to say that the lowercase and uppercase        letters are equivalent? Then we would have at least two rules:        (1) treat the lowercase letters a and         b as equivalent to A and         B; (2) then compare the encodings. We call        this a case-insensitive        collation. It is a little more complex than a binary collation.
In real life, most character sets have many characters: not just         A and B but whole        alphabets, sometimes multiple alphabets or eastern writing        systems with thousands of characters, along with many special        symbols and punctuation marks. Also in real life, most        collations have many rules, not just for whether to distinguish        lettercase, but also for whether to distinguish accents (an         “accent” is a mark attached to a character as in        German Ö), and for multiple-character        mappings (such as the rule that Ö =         OE in one of the two German collations).
MySQL can do these things for you:
Store strings using a variety of character sets.
Compare strings using a variety of collations.
Mix strings with different character sets or collations in the same server, the same database, or even the same table.
Enable specification of character set and collation at any level.
To use these features effectively, you must know what character sets and collations are available, how to change the defaults, and how they affect the behavior of string operators and functions.
//极简原则 KEEP IT SIMPLE
_cs, _ci, or _bin,的更多相关文章
- MySQL字符集
		
字符集的选择 1.如果数据库只需要支持中文,数据量很大,性能要求也很高,应该选择双字节定长编码的中文字符集(如GBK).因为相对于UTF-8而言,GBK"较小",每个汉字只占2个字 ...
 - [MySQL Reference Manual] 10 全球化
		
10.全球化 本章主要介绍全球化,包含国际化和本地化,的一些问题: · MySQL在语句中支持的字符集 · 如何为服务配置不同的字符集 · 选择错误信息 ...
 - mysql笔记04  MySQL高级特性
		
MySQL高级特性 1. 分区表:分区表是一种粗粒度的.简易的索引策略,适用于大数据量的过滤场景.最适合的场景是,在没有合适的索引时,对几个分区进行全表扫描,或者是只有一个分区和索引是热点,而且这个分 ...
 - 9.Mysql字符集
		
9.字符集9.1 字符集概述 字符集就是一套文字符号及其编码.比较规则的集合. ASCII(American Standard Code for Information Interchange)字符集 ...
 - MySQL 支持utf8mb4
		
utf8mb4 utf8mb3 utf8 Refer to The utf8mb4 Character Set The utf8 Character Set (Alias for utf8mb3) M ...
 - mysql字符集和字符排序
		
mysql的字符集和字符序: 字符序:字符序(Collation)是指在同一字符集内字符之间的比较规则 一个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序,其中有一个是默认字符序 ...
 - Mysql系列-字符集
		
字符集 怎样选择合适的字符集 如果应用程序需要发布到很多国家和地区,需要支持各种各样的文字,则选择Unicode编码,Mysql中即UTF-8.q如果需要将数据导入数据库,这时候要注意数据库字符集对数 ...
 - 数据库_11_1~10总结回顾+奇怪的NULL
		
校对集问题: 比较规则:_bin,_cs,_ci利用排序(order by) 另外两种登录方式: 奇怪的NULL: NULL的特殊性:
 - 干货:鲜为人用的MySQL高级特性与玩法!
		
上一篇文章<万字总结:学习MySQL优化原理,这一篇就够了!>文末给大家留有两个开放的问题: 有非常多的程序员在分享时都会抛出这样一个观点:尽可能不要使用存储过程,存储过程非常不容易维护, ...
 
随机推荐
- Tomcat修改favicon.ico图标,Linux下Tomcat修改favicon.ico图标,Tomcat更换favicon.ico图标
			
Tomcat修改favicon.ico图标,Linux下Tomcat修改favicon.ico图标,Tomcat更换favicon.ico图标 >>>>>>> ...
 - yii 前端js动态添加验证规则
			
在使用 activeForm 生成表单及验证时,默认是按照 model 里的 rules 生成js验证,model 验证在加载完页面后生效,不可修改,如果需要扩展.动态验证,需要使用js来配合 直接上 ...
 - 【代码审计】LaySNS_v2.2.0 前台XSS跨站脚本漏洞
			
0x00 环境准备 LaySNS官网:http://www.laysns.com/ 网站源码版本:LaySNS_v2.2.0 程序源码下载:https://pan.lanzou.com/i0l38 ...
 - mysql5.7 服务无法启动的问题解决方法
			
解决办法: 1.把MySQL文件低下的data文件删掉,如果没有的话,就不用管了: 2.在mysql安装路径下,执行mysqld --initialize命令进行初始化,mysql会自动帮你重新创建d ...
 - Selenium 切换 Frame
			
我们知道网页中有一种节点叫作 iframe ,也就是子 Frame ,相当于页面的子页面,它的结构和外部网页的结构完全一致. Selenium 打开页面后,它默认是在父级 Frame 里面操作,而此时 ...
 - Python迭代器笔记
			
python中的三大器有迭代器,生成器,装饰器,本文重点讲解下迭代器的概念,使用,自定义迭代器等的介绍. 1.概念: 迭代器是一个对象,一个可以记住遍历位置的对象,迭代器对象从集合的第一个元素开始访问 ...
 - Ubuntu下Eclipse的安装方法
			
1. 下载jre,eclipse,cdt 其中jre是java运行环境,eclipse需要先装jre,才可能运行,cdt是在eclipse中运行c\c++程序的插件. 1.1 下载jre 网址是:ja ...
 - nginx+php-fpm 报“File not found.”
			
找网上找了很多帖子,大都是说nginx中的$document_root$换成绝对路径,但是依然不能解决问题 后再把php-fpm配置文件中的 [www]下边的 usr = apache group = ...
 - 《转》python学习(11)-表达式和语句
			
转自 http://www.cnblogs.com/BeginMan/p/3164600.html 一.Python语句 if语句.else语句.elif语句.条件表达式.while语句.for语句. ...
 - 【Mac】安装MAMP的PHPredis扩展
			
1 下载phpredis扩展安装包 cd /usr/local git clone https://github.com/nicolasff/phpredis.git 2 依次执行以下操作完成安装 $ ...