MySQL字符集与校对

一、什么是字符集与校对

1.字符集与校对

字符集是指一种从二进制编码到某种字符符号的映射。

校队是指一组用于某个字符集的配许规则。

2.utf8与utf8mb4

标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言。
MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有。例如emoji和一些不常用的汉字,如“墅”,这些需要四个字节才能编码的就不支持。

MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。建议选用utf8mb4的编码。

二、如何设置字符集与校队

数据库默认字符集设置:character_set_server

表的字符集设置:将根据数据库的字符集设置来指定这个表的字符集

列的字符集设置:将根据表的设置来指定列的字符集设置

注意:真正存放数据的是列,所以更高“阶梯”的设置只是制定默认值。一个表的默认字符集设置,无法影响存储在这个表中某个列的值。只有当创建列,而没为列有指定字符集的时候,表的默认字符集才会在列上生效。

1.查看、修改数据库字符集与校对

1)查看

SHOW VARIABLES WHERE Variable_name LIKE ‘character\_set\_%‘ OR Variable_name LIKE ‘collation%‘;

2)修改

在配置文件中修改

character_set_server = utf8mb4

collation_server         = utf8mb4_unicode_ci

2.查看、修改指定数据库的字符集与校对

1)查看

SHOW CREATE DATABASE dbname;

2)修改

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

3.查看、修改表的字符集与校对

1)查看

SHOW CREATE TABLE tbl_name;

2)修改

修改表的字符集与校队

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];

修改表与列的字符集与校对

ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] ;

4.查看、修改列的字符集与校对

1)查看

SHOW FULL COLUMNS FROM tbl_name;

2)修改

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];

原文地址:https://www.cnblogs.com/xibuhaohao/p/9927992.html

时间: 2024-10-12 17:01:44

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字符集以及校对规则

编码:计算机都是二进制存储,因此需要将显示符号转换成二进制数才能存储,每个字符所转换成的二进制数,就是字符编码. 字符集 字符用于显示的抽象符号.字符集是一套字符与字符编码的集合. 常见的字符集编码: Ascii字符集,GB2312字符集,gbk字符集,latin1字符集,unicode字符集等. show character set;可以获得MySQL支持的所有字符集. 修改数据库字符集 alter database liguodong character set utf8; MySQL可以使

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

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

mysql之字符集与校对集

一.字符集 1.mysql的字符集设置非常灵活 可以设置服务器默认字符集: 数据库默认字符集: 表默认字符集: 列字符集: 如果某一级别没有指定字符集,则继承上一级. 查看所有字符集语句:show character set; 2.以表声明为utf-8为例,最终存储在表中的数据为utf-8 ①我们要告诉服务器,我给你发送的数据是什么编码?character_set_client ②告诉字符集转换器,转换成什么编码?character_set_connection ③查询的结果用什么编码?char

mysql之全球化和本地化:字符集、校对集、中文编码问题

本文内容: 什么是字符集?什么是校对集? 查看字符集和校对集 设置字符集和校对集 mysql中的中文数据问题 首发日期:2018-04-19 什么是字符集?什么是校对集? 字符集是字母和符号的集合,每一个字符编码都由字符集决定. 校对集是字母和符号的校对标准.校对集影响着字符的排序和搜索. 查看字符集和校对集: 查看mysql支持的字符集:show character set; 查看mysql支持的校对集:show collation; 查看服务端默认的字符集:show variables li

MySQL字符集

一. 选择合适的字符集 二. MySQL支持的字符集 MySQL服务器可以支持多种字符集,在同一台服务器.同一个数据库甚至同一个表的不同字段都可以指定使用不同的字符集. 查看所有可用的字符集命令是show character set; 或者查看information_schema.character_set,可以显示所有的字符集和该字符集默认的校对规则.desc information_schema.character_sets; MySQL的字符集包括字符集(CHARACTER)和校对规则(C

mysql字符集调整总结

mysql字符集调整总结 --http://xjsunjie.blog.51cto.com/999372/1355013 字符集是一套符号和编码的规则,不论是在oracle数据库还是在mysql数据库,都存在字符集的选择问题.对于数据库来说,字符集又是比较重要的,因为数据库存储的数据大部分都是各种文字,字符集对于数据库的存储.处理性能以及数据迁移都有重要的影响. 如果在数据库创建阶段没有正确选择字符集,那么可能在后期需要更换字符集,而字符集的更换是代价比较高的操作,也存在一定的风险,所以我们建议

MySQL字符集编码

MySQL字符集编码总结 之前内部博客上凯哥分享了一篇关于mysql字符集的文章,之前我对mysql字符集一块基本没有深究过,看到凯哥文章后有些地方有点疑惑,遂自己去看了mysql的官方文档,并参考了凯哥的文章,总结了这篇博文.本文主要是对mysql常见的字符集问题进行整理,如有错误,请大家指正. 1.MySQL字符集编码简介 谈到字符集,总会跟编码扯上关系,有关字符集和编码的理论知识请参见我之前的文章.MySQL内部是支持多种字符集的,这里就不再严格区分字符集和编码的概念了.同时,MySQL中

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

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