数据库
首页 > 数据库> > MySQL007:字符集和校对集

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