_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优化原理,这一篇就够了!>文末给大家留有两个开放的问题: 有非常多的程序员在分享时都会抛出这样一个观点:尽可能不要使用存储过程,存储过程非常不容易维护, ...
随机推荐
- ios开发之--解决“Could not insert new outlet connection”的问题。
在Xcode中,我们能够在StoryBoard编辑界面或者是xib编辑界面中通过“Control键+拖拽“的方式将某个界面元素和相应的代码文件连接起来.在代码文件里创建outlet. 只是.假设你的运 ...
- Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置
Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置 >>>>>>>>>>>>&g ...
- Unity 蓝牙插件
1.新建一个Unity5.6.2f1工程,导入正版Bluetooth LE for iOS tvOS and Android.unitypackage2.用JD-GUI反编译工具查看unityandr ...
- U3D各键值说明
KeyCode :KeyCode是由Event.keyCode返回的.这些直接映射到键盘上的物理键. 值 对应键 Backspace 退格键 Delete Delete ...
- 关于GDI+的一些使用基础设置
一.新建一个MFC的单文档工程,例如工程名字叫GDIPLUSTEST1. 二.在工程的stdafx.h头文件中添加入 #include "gdiplus.h" using name ...
- nginx fastcgi.conf的参数
编写FastCGI程序的时候有很多像php一样的参数可以获取到,并利用起来,下面就是FastCGI的一些参数. fastcgi_param SCRIPT_FILENAME $do ...
- c++ 纯虚析构函数
; 这就是一个纯虚析构函数,这种定义是允许的. 一般纯虚函数都不允许有实体,但是因为析构一个类的过程中会把所有的父类全析构了,所以每个类必有一个析构函数. 所以.纯虚析构函数需要提供函数的实现,而一般 ...
- Shell find命令详解
查找文件find ./ -type f 查找目录find ./ -type d 查找名字为test的文件或目录find ./ -name test 查找名字符合正则表达式的文件,注意前面的‘.*’(查 ...
- 【Spring源码分析系列】加载Bean
/** * Create a new XmlBeanFactory with the given input stream, * which must be parsable using DOM. * ...
- css笔记 - 张鑫旭css课程笔记之 float 篇
https://www.imooc.com/t/197450float float的设计初衷/原本作用-是为了实现文字环绕效果如,一个图片和一段文字垂直放置,给图片加上浮动,文字就环绕图片展示了. 浮 ...