Mysql字符集以及校对规则

编码:计算机都是二进制存储,因此需要将显示符号转换成二进制数才能存储,每个字符所转换成的二进制数,就是字符编码。

字符集

字符用于显示的抽象符号。字符集是一套字符与字符编码的集合。

常见的字符集编码:

Ascii字符集,GB2312字符集,gbk字符集,latin1字符集,unicode字符集等。

show character set;可以获得MySQL支持的所有字符集。

修改数据库字符集

alter database liguodong character set utf8;

MySQL可以使用多种字符集保存数据。

MySQL可以针对字段,表,数据库,服务器进行字符集的设置,还可以设定连接字符集(客户端与服务器端交互时)。

编码相关变量的含义:

可以在my.ini中:character-set-server=utf8修改服务器的编码设置。

服务器字符集:

连接字符集:

校对规则:

每一套编码字符集都有与之相关的校对规则。校对规则指的是当前字符集内,字符之间的比较关系。

每个字符集都提供一个或多个校对规则。

通常的命名规则是:字符集_语言名_ci|cs|bin

常见的ci不区分大小写。cs区分大小写,bin字节比较。

查看校对规则指令:

show collation;

show collation like ‘gbk%‘;

在设置字符集的时候,可以设置当前字符集所采用的校对规则。不过不设置校对规则,那么每一个字符集,都有一个默认的校对规则。

以gbk为例,比较chinese_ci,bin之间的区别

create table tab3(
name varchar(10)
) character set gbk collate gbk_chinese_ci;

create table tab4(
name varchar(10)
) character set gbk collate gbk_bin;

默认是gbk_chinese_ci,所以不会显示字符集。

show create table tab3\G
show create table tab4\G

insert into tab3 values(‘a‘);
insert into tab3 values(‘B‘);
insert into tab3 values(‘c‘);
insert into tab4 values(‘a‘);
insert into tab4 values(‘B‘);
insert into tab4 values(‘c‘);

影响数据的保存,字符集。

影像数据的比较,校对集。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 14:24:37

Mysql字符集以及校对规则的相关文章

Mysql字符集与校对规则

字符集是一套字符和编码的集合,校对规则是用于比较字符集的一套规则. 所以字符集有两部分组成字符集合和对应的编码集合.比如说,现在有这几个字符:A B a b, 假设它们对应的编码分别是00, 01, 10, 11,那么ABab和[00,01,10,11]就组成了一套字符集.那么校对规则的作用就是规则A<B还是A>B.假设我们规定A<B,A=a,B=b,这个规定就组成了一个校对规则.当然我们也可以规定A>B,A>a,a>b这样也是一套校对规则.所以一个字符集可以有多套的校

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

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

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过程中,可能会遇到类似一下的问题: [email protected] 07:42:00>select * from test where c1 like 'ab%'; +-----+ | c1 | +-----+ | abc | | ABD | +-----+ 模糊匹配 ab%,结果以AB开头的字符串也出现在结果集中,大家很自然的认为是大小写敏感的问题.那么mysql中大小写敏感是如何控制的:数据库名,表名,字段名这些字典对象以及字段值的大小敏感是如何控制的:以及校验规则与

MySQL字符集与校对

一.什么是字符集与校对 1.字符集与校对 字符集是指一种从二进制编码到某种字符符号的映射. 校队是指一组用于某个字符集的配许规则. 2.utf8与utf8mb4 标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言.MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有.例如emoji和一些不常用的汉字,如"墅",这些需要四个字节才能编码的就不支持. MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是

MySQL字符集与排序规则 北京MySQL DBA学习

MySQL提供了多种字符集和排序规则选择,其中字符集设置和数据存储以及客户端与MySQL实例的交互相关,排序规则和字符串的对比规则相关. 字符集的设置可以在MySQL实例.数据库.表.列四个级别.MySQL设置字符集支持在InnoDB.MyISAM.Memory三个存储引擎.查看当前MySQL支持的字符集的方式有两种,一种是通过查看information_schema.character_set系统表,一种是通过命令show character set查看每个指定的字符集都会有一个或多个支持的排

MySQL之字符集-校对规则

一.字符集(Character set) 是多个字符(英文字符,汉字字符,或者其他国家语言字符)的集合,字符集种类较多,每个字符集包含的字符个数不同. 特点: ①字符编码方式是用一个或多个字节表示字符集中的一个字符 ②每种字符集都有自己特有的编码方式,因此同一个字符,在不同字符集的编码方式下,会产生不同的二进制 常见字符集: ASCII字符集:基于罗马字母表的一套字符集,它采用1个字节的低7位表示字符,高位始终为0. LATIN1字符集:相对于ASCII字符集做了扩展,仍然使用一个字节表示字符,

mysql中字符集和校对规则

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