视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL使用字符集和校对顺序使用教程
2020-11-09 09:00:31 责编:小采
文档


使用字符集和校对顺序

MySQL支持众多的字符集。为查看所支持的字符集完整列表,使用以下语句:

输入:

show character set;

分析:这条语句显示所有可用的字符集以及每个字符集的描述和默认校对。

为了查看所支持校对的完整列表,使用以下语句:

输入:

show collation;

分析:此语句显示所有可用的校对,以及它们适用的字符集。可以看到有的字符集具有不止一种校对。例如, latin1 对不同的欧洲语言有几种校对,而且许多校对出现两次,一次区分大小写(由 _cs 表示),一次不区分大小写(由 _ci 表示)。

通常系统管理在安装时定义一个默认的字符集和校对。此外,也可以在创建数据库时,指定默认的字符集和校对。为了确定所用的字符集和校对,可以使用以下语句:

输入:

show variables like 'character%';
show variables like 'collation%';

实际上,字符集很少是服务器范围(甚至数据库范围)的设置。不同的表,甚至不同的列都可能需要不同的字符集,而且两者都可以在创建表时指定。

为了给表指定字符集和校对,可使用带子句的 CREATE TABLE:

输入:

create table mytable
(
columnn1 int,
columnn2 varchar(10)
)default character set hebrew collate hebrew_general_ci;

分析:此语句创建一个包含两列的表,并且指定一个字符集和一个校对顺序。

这个例子中指定了 CHARACTER SET 和 COLLATE 两者。一般,MySQL如下确定使用什么样的字符集和校对。

1.如果指定 CHARACTER SET 和 COLLATE 两者,则使用这些值。

2.如果只指定 CHARACTER SET ,则使用此字符集及其默认的校对(如SHOW CHARACTER SET 的结果中所示)。

3.如果既不指定 CHARACTER SET ,也不指定 COLLATE ,则使用数据库默认。

除了能指定字符集和校对的表范围外,MySQL还允许对每个列设置它们,如下所示:

输入:

create table mytable
(
columnn1 int,
columnn2 varchar(10),
columnn3 varchar(10) character set latin1 collate latin1_general_ci
latin_grneral_ci
)default character set hebrew collate hebrew_general_ci;

分析:这里对整个表以及一个特定的列指定了 CHARACTER SET 和COLLATE 。

如前所述,校对在对用 ORDER BY子句检索出来的数据排序时起重要的作用。如果你需要用与创建表时不同的校对顺序排序特定的 SELECT 语句,可以在 SELECT 语句自身中进行:

输入:

select * from customers order by lastname,firstname collate latin1_general_cs;

分析:此 SELECT 使用 COLLATE 指定一个备用的校对顺序(在这个例子中,为区分大小写的校对)。这显然将会影响到结果排序的次序。

临时区分大小写 上面的 SELECT 语句演示了在通常不区分大小写的表上进行区分大小写搜索的一种技术。当然,反过来也是可以的。

SELECT 的其他 COLLATE 子句 除了这里看到的在 ORDER BY子句 中使用以外, COLLATE 还可以用于 GROUP BY 、 HAVING 、聚集函数、别名等。

最后,值得注意的是,如果绝对需要,串可以在字符集之间进行转换。为此,使用 Cast() 或 Convert ()函数。

【相关推荐】

1. mysql免费视频教程

2. MySQL字符集和校对顺序简介

3. MySQL事务-使用保留点、更改默认的提交行为详解

4. MySQL事务-ROLLBACK,COMMIT用法详解

5. MySQL事务处理实例讲解

下载本文
显示全文
专题