MySQL007:字符集和校对集
作者:互联网
一,什么是字符集和校对集:
打开E:MySQL>data>xx>db.opt(我的位置)
可以看到
字符集是指一种从二进制编码到某类字符符号的映射,校对是指一组用于某个字符集的排序规则。并且每一类编码字符都有其对应的字符集合校对规则。
二,查询MySQL支持的字符集:
SHOW CHARACTER SET
可以看到MySQL所支持的这么多编码表。
MySQL 服务器可以支持多种字符集,在同一台服务器、同一个数据库、甚至同一个表的不同字段都可以指定使用不同的字符集,相比Oracle 等其他数据库管理系统,在同一个
数据库只能使用相同的字符集,MySQL 明显存在更大的灵活性。
校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元,即比较是基于字符编码的值而与language
无关)结束
三,校对集
校对集:指字符集的排序规则。
根据是否区分大小写可以分两种,如下图:一种以ci结尾,不区分大小写,剩下的一种区分大小写。
查看所有校对集:
SHOW COLLATION;
A比如:现在用gbk_chinese_ci,查看它如何排序
CREATE TABLE f1(
a VARCHAR(20)
)COLLATE gbk_chinese_ci
先添加数据:
INSERT INTO f1 VALUES('a'),('C'),('b'),('d')
查询:后面的ASC可以不写,它代表升序,不写就默认升序
SELECT * FROM f1 ORDER BY a ASC
查看:
通过降序查看:
SELECT * FROM f1 ORDER BY a DESC
可以看到ci结尾的升序降序都不会区分大小写。
B现在用gbk_bin看它怎么排序
CREATE TABLE f2(
a VARCHAR(20)
)COLLATE gbk_bin
添加数据:
INSERT INTO f2 VALUES('a'),('C'),('b'),('d')
按照升序查找:
SELECT * FROM f2 ORDER BY a
可以看到它区分大小写了
按照降序查找:
SELECT * FROM f2 ORDER BY a DESC
结果:
标签:ci,字符集,升序,大小写,MySQL,校对,MySQL007 来源: https://blog.csdn.net/weixin_44699728/article/details/90270406