02 | MySQL字符集和校对顺序

全球化与本地化

本文主要介绍mysql处理不同字符语言的基础知识

字符集和校对顺序

由于不同的语言和字符集需要以不同的方式存储和检索MySQL,因此需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。

重要术语

术语 含义
字符集 字母和符号的集合
编码 某个字符集成员的内部表示
校对 规定如何比较字符集的指令

使用字符集和校对顺序

查看所支持的字符集的完整列表

-- 查看所有的可支持的字符集
SHOW CHARACTER SET;
-- 查看所有可支持的校对顺序
SHOW COLLATION;

查看目前所使用的字符集和校对顺序

SHOW VARIABLES LIKE 'character%';

SHOW VARIABLES LIKE 'collation%';

不同的表,甚至不同的列都可能需要不同的字符集,而且两者都可以在创建表时指定

给表指定字符集和校对

CREATE TABLE mytable
(
    column1 INT,
    column2 VARCHAR(10)
) DEFAULT CHARACTER SET hebrew
  COLLATE hebrew_general_ci;

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

MySQL可使用如下方式确定使用什么样的字符集和校对:

  • 如果指定CHARACTER SETCOLLATE两者,则使用这些值。
  • 如果只指定CHARACTER SET,则使用此字符集及其默认的校对(如SHOW CHARACTER SET的结果中所示)。
  • 如果既不指定CHARACTER SET,也不指定COLLATE,则使用数据库默认。

给每个列指定字符集和校对顺序

CREATE TABLE mytable(
    column1 INT,
    column2 VARCHAR(10),
    column3 VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_danish_ci
)DEFAULT CHARACTER SET hebrew
COLLATE hebrew_general_ci;

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

SELECT * FROM customers
ORDER BY CAST(cust_name AS ) ,cust_address COLLATE latin1_general_cs;

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

原文地址:https://www.cnblogs.com/xm08030623/p/12407529.html

时间: 2024-11-05 14:39:02

02 | MySQL字符集和校对顺序的相关文章

mysql字符集和校对规则(Mysql校对集)

字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下简要说明 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则. MySql在collation提供较强的支持,oracel在这方面没查到相应的资料. 不同字符集有不同的校对规则,命名约定:以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)._cs(大小写敏感)或_bin(二元)结束 校对规则一般分为两类: binary

MySQL字符集和校对规则

一.字符集 字符集:就是一对文字符号及其编码比较的集合 二.常用字符集: ASCII:主要用于显示英语和其他西欧语言.长度为一个字节UTF-8:互联网广泛支持的Unicode字符集,长度为一到四个字节 GBK:主要用于显示汉字,长度为二个字节 三.查看MySQL的字符集和校对规则 1.查看MySQL服务器的字符集 show charsetset/character set 2.查看字符集的校对规则 show collation; 3.查看当前数据库的字符集 mysql> show variabl

mysql中的字符集和校对规则(mysql校对集)

1.简要说明介绍 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则. MySql在collation提供较强的支持,oracel在这方面没查到相应的资料. 不同字符集有不同的校对规则,命名约定:以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)._cs(大小写敏感)或_bin(二元)结束 校对规则一般分为两类: binary collation,二元法,直接比较字符的编码,可以认为是区分大小写的,因为字符集中'A'和'a'的编码显然不同.

mysql中字符集和校对规则

首先,明确一下字符集和校对规则的概念:    字符集(charset):是一套符号和编码    校对规则(collation):是在字符集内用于比较字符的一套规则,比如有的规则区分大小写,有的则无视 mysql服务器能够支持多种字符集,可以使用SHOW CHARACTER SET语句列出可用的字符集.如果希望列出一个字符集的校对规则,可以使用SHOW COLLATION语句.例如,如果希望查询以latin1开头的校对规则,可以使用如下语句SHOW COLLATION LIKE 'latin1%'

MySQL学习笔记(7)之字符集和校对规则

字符集和校对规则 1.字符集:一套符号和字符编码的集合. 2.校对规则:在字符集内用于比较字符的一套规则. 3.安装数据库时最好用我们定好的编码. 4.建立表时可指定字符集:.....charset=[gdk/utf8]: 5.查看编码变量:show varchar like '%char%'; – character_set_server:默认的内部操作字符集 – character_set_client:客户端来源数据使用的字符集 – character_set_connection:连接层

MySQL学习笔记(5)之字符集和校对规则

字符集和校对规则 1.字符集:一套符号和字符编码的集合. 2.校对规则:在字符集内用于比较字符的一套规则. 3.安装数据库时最好用我们定好的编码. 4.建立表时可指定字符集:.....charset=[gdk/utf8]: 5.查看编码变量:show varchar like '%char%'; – character_set_server:默认的内部操作字符集 – character_set_client:客户端来源数据使用的字符集 – character_set_connection:连接层

数据库的字符集和校对集

1.概念介绍 字符集(CHARACTER)和校对规则(COLLATION). 字符集是用来定义mysql存储字符串的方式,校对规则则是定义了比较字符串的方式. 字符集和校对规则是一对多的关系, MySQL支持30多种字符集的70多种校对规则. 2.如何选择? 建议在能够完全满足应用的前提下,尽量使用小的字符集.因为更小的字符集意味着能够节省空间.减少网络传输字节数,同时由于存储空间的较小间接的提高了系统的性能.有很多字符集可以保存汉字,比如utf8.gb2312.gbk.latin1等等,但是常

mysql概要(九)字符集和校对集

1.mysql 字符集有细致设置: 2.mysql字符处理机制是:数据库和客户端之间存在一个字符集转换器(后文简称转换器)将客户端字符编码(必须告诉服务端的)转换成一种中间编码的数据(可自定义的但保证转换不会丢失数据),然后再转换成数据库定义的编码,取数据时,转换器将中间编码转换为需要的返回编码(可自定义). 设置通知服务端客户端的字符编码类型 3.出现乱码和丢失的情况 其实上面的所说编码,包括编码和解码. 查询支持的字符集种类: 4.校对集:对字符进行排序规则.一种字符集可有多种校对集. 4.

mysql字符集与校对规则---大小写敏感那点事

在关系型数据库中,oracle/sql_server/db2都有对数据进行区分大小写,不过mysql有点奇怪,对数据不区分大小写,详细情况请看下面解析. MySQL在Linux下数据库名.表名.列名.别名大小写的默认规则是这样的: 1.数据库名与表名是严格区分大小写的. 2.表的别名是严格区分大小写的. 3.列名与列的别名在所有的情况下均是忽略大小写的. 4.字段内容(即数据)默认情况下是大小写不敏感的. 5.变量名(函数和存储过程)也是严格区分大小写的. 所以不禁我们就会想去修改,而控制这些的