Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >理解MySql字符集

理解MySql字符集

作者头像
用户1175783
发布于 2019-09-18 02:09:05
发布于 2019-09-18 02:09:05
2.1K00
代码可运行
举报
运行总次数:0
代码可运行

# 理解MySql字符集

# 字符集

字符集即为字符编码的集合。

常用的编码格式为:ASCII Unicode-8 Unicode-16 Unicode-32 GB2312 等 ,

其中GB2312主要用于【简体汉字】的编码,而BIG5是【繁体汉字】的编码格式,不同的语言文字都有自己的编码格式,其中Unicode编码是一种通用的编码格式,目的是为了同时兼容不同的语言文字编码。

# 字符序

字符序即字符编码集合中每个字符的顺序。

例如:A的十进制可以表示为65,a为97,其中65<97也就是说在字符集中A的顺序在a的前面,但这只是对计算机而言的,因为计算机认识的是二进制语言,对于人来说我们可以理解为A=a,只是书写的形式不同而已。

在字符集中每一个字符都有它自己的顺序,不存在两个字符拥有相同的字符编码。但在数据库中不同,mysql也是如此,所以才会定义出字符序的概念,A与a编码不同,但在数据库中我们可以按照字符序把这两个字符看做相同的,那么也就是说当你选择了不同的字符序时可能A与a表现出来的大小关系也会随着变化。

# MySql中的字符集

MySql是一款关系型数据库,它存储的数据不应该受限于特定的语言文字,所以它支持不同字符集。

通常在数据的存储过程中,为了管理的方便,会将数据不同的数据集合做一下归类,比如:一个数据库是有一个或多个database构成,那么多个table又构成了一个database,table又是由行构成,行的最小单位又为列,列才是我们真正存储数据的地方:要储存必然离不开编码的问题。所以MySQL中我们可以按照这种虚拟关系对:database,table,column分别设置字符集,而它们使用字符集的优先关系为:column > table > database。

# 设置修改MySql中的字符集

  1. MySql默认字符集 在安装MySql的时候我们可以通过源码编译的方式设置字符集,当然这种安装方式比较难就不做说明了,真实的环境中这么做的好处并不明显。
  2. 修改MySql默认字符集 通过配置文件修改默认字符集,如果在创建database的时候我们没有指定字符集,则该设置会默认应用于database上。 # 该配置项会修改默认的字符集编码格式 [mysqld] character-set-server=utf8
  3. 通过环境变量设置字符集 这种方式也不常用,更何况这个docker盛行的年代,如果需要请自行google一下吧。
  4. 设置database的字符集 CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci # 修改现有数据库的字符集 alter database test character set utf8 collate utf8_bin
  5. 这是table的字符集 CREATE TABLE [table]( id varchar(40), str varchar(40) ) CHARSET=utf8mb4 COLLATE=utf8mb4_bin # 修改现有表的字符集 alter table [table] CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin
  6. 设置column的字符集 CREATE TABLE [table]( id varchar(40), str varchar(40) charset utf8mb4 collate utf8mb4_bin ) # 修改现有列字符集 alter table [table] change str str varchar(100) character set utf8 collate utf8_bin

# 其它帮助项

查看支持的字符集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 两种方法查看支持的字符集
方法一: 
show character set;
//方法二:
use information_schema;
select * from character_sets;

# 两种方式查看支持的字符序
# 方式一:
show collation;
# 方式二:
use information_schema;
select * from collations;

查看MySql字符集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 查看字符集
show variables like 'character_set_server';

# 查看字符序
show variables like 'collation_server';

查看数据库字符集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show create database [dbname];

查看表字符集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show create table [table]

查看列字符集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show full columns from [table]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql字符集小结
字符集是英文,汉字或者其他语言字符的集合, 字符集种类有很多, 每个字符集包含的字符个数也不相同. 字符编码方式是用一个或多个字节表示字符集中的一个字符; 每种字符集都有自己编码方式, 因此同一个字符, 在不同字符集的编码方式下, 会产生不同的二进制值;
一个架构师
2022/06/20
3.3K0
不可忽视的MySQL字符集
墨墨导读:字符集是一组符号和编码。collation是一组用于比较字符集中的字符的规则。
数据和云
2021/03/30
2.2K0
不可忽视的MySQL字符集
开发实践|MySQL的字符集(二)
上一篇讲到字符、字符集、字符编码,粗略的一笔带过MySQL的编码,本篇想要讲讲字符编码在MySQL数据库中的应用。不仅仅是本篇文章,其他博主的文章也是,多多阅读他人的好文,才可以提升自己的水平。再次借用六一居士写的《卖油翁》来激励大家,多多阅读。
六月暴雪飞梨花
2023/12/31
3190
开发实践|MySQL的字符集(二)
从一个慢查询到MySQL字符集编码
最近在完成一个线上日志修复工作的过程中遇到了一个意想不到的慢查询。当时使用的SQL以及表结构其实都很简单,而且在关键的字段上也有索引,但是MySQL的执行计划就是跑出来了Range checked for each record (index map: 0x1)。如下为问题中的表结构定义和执行计划(删减了其他字段,留下了关键的部分):
DBA札记
2024/01/09
4810
从一个慢查询到MySQL字符集编码
MySQL从删库到跑路(二)——MySQL字符集与乱码解析
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。 字符编码(Character encoding)是把字符集中的某个字符编码为指定字符集中字符,以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成ASCII,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示。 字符序(collation)是指同一个字符集内字符之间的比较规则。只有确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系。一个字符可以包含多种字符序。MySQL字符序命名规则是:以字符序对应的字符集名称开头,以国家名居中(或以general居中),以ci、cs、或bin结尾。以ci结尾的字符序表示大小写不敏感,以cs结尾的字符序表示大小写敏感,以bin结尾的字符序表示按二进制编码值比较。
良月柒
2019/03/19
8920
MySQL字符集utf8mb4
Unicode是编码字符集,而UTF-8就是字符编码,即Unicode规则字库的一种实现形式。随着互联网的发展,对同一字库集的要求越来越迫切,Unicode标准也就自然而然的出现。它几乎涵盖了各个国家语言可能出现的符号和文字,并将为他们编号。
HLee
2021/07/23
1.6K0
MySQL字符集utf8mb4
再见乱码:5 分钟读懂 MySQL 字符集设置
作者: 程序猿小卡_casper 原文:https://segmentfault.com/a/1190000012775484 一、内容概述 在MySQL的使用过程中,了解字符集、字符序的概念,以及不同设置对数据存储、比较的影响非常重要。不少同学在日常工作中遇到的“乱码”问题,很有可能就是因为对字符集与字符序的理解不到位、设置错误造成的。 本文由浅入深,分别介绍了如下内容: 字符集、字符序的基本概念及联系 MySQL支持的字符集、字符序设置级,各设置级别之间的联系 server、database、tabl
前端教程
2018/03/05
5.3K0
网易MySQL微专业学习笔记(八)-MySQL字符集
这个系列属于个人学习网易云课堂MySQL数据库工程师微专业的相关课程过程中的笔记,本篇为其“MySQL数据库对象与应用”中的MySQL数据类型相关笔记。
WindCoder
2018/09/19
5540
网易MySQL微专业学习笔记(八)-MySQL字符集
MySQL字符集乱码总结
查看数据库编码: show create database db_name; 查看表编码: show create table tbl_name; 查看字段编码: show full columns from tbl_name; show full fields from tbl_name;
阳光岛主
2019/02/19
9.4K0
MySQL字符集
3、字符无需区分大小写时,采用默认的xx_ci校验集可以,否则选择xx_bin校验集(生产环境中,尽量不要修改校验集)
星哥玩云
2022/08/18
4K0
第06期:梳理 MySQL 字符集的相关概念
用途:用来映射简单的单字节字符,比如大小写英文字母、阿拉伯数字、常用的标点符、运算符、控制字符等。
爱可生开源社区
2020/06/15
1K0
MySQL字符集终极指南--进阶篇
以下配置项是Linux系统的本地化(localization)设置,用于控制系统在不同方面如何呈现和处理数据。下面是每个配置项的解释:
DBA成江东
2023/08/14
2.3K0
MySQL字符集终极指南--进阶篇
MySQL中的字符集与字符序
这篇文章详细介绍一下MySQL中的字符集和字符序相关的问题,里里外外地了解一下字符集和字符序的方方面面,同时重点说明一下开发中需要注意的问题。
valineliu
2022/08/27
3K1
MySQL中的字符集与字符序
MySQL字符集修改实战教程
在 MySQL 中,系统支持诸多字符集,不同字符集之间也略有区别。目前最常用的字符集应该是 utf8 和 utf8mb4 了,相比于 utf8 ,utf8mb4 支持存储 emoji 表情,使用范围更广。本篇文章将会介绍 utf8 修改成 utf8mb4 字符集的方法。
MySQL技术
2021/01/05
2.5K0
字符集详解
MySQL 字符编码集中有两套 UTF-8 编码实现:utf8 和 utf8mb4。
人不走空
2024/02/20
2250
MySQL修改字符集utf8mb4
MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4。简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符。
MySQL轻松学
2020/06/11
17.6K0
MySQL 字符集
MySQL 支持多种字符集,使您能够使用各种字符集存储数据,并根据给定排序规则执行比较。
恋喵大鲤鱼
2023/10/12
7130
第08期:有关 MySQL 字符集的注意事项
创建数据库时,显式指定字符集和排序规则,同时,当切换到当前数据库后,参数 character_set_database,collation_database 分别被覆盖为当前显式指定的字符集和排序规则。举个简单例子,创建数据库 ytt_new2,显式指定字符集为 latin1,同时排序规则为 latin1_bin。之后在切换到数据库 ytt_new2 后,对应的系统参数也被修改。
爱可生开源社区
2020/07/13
7500
mysql修改表、字段、库的字符集
来源:http://www.diannaowa.com/index.php/archives/233
东营浪人
2019/09/05
7.9K0
深入理解MySQL字符集及校对规则(二)
上一篇呢,从理论上介绍了MYSQL字符集和校对规则是什么以及如何正确的使用字符集;关于第一部分的内容可参考:深入理解MySQL字符集及校对规则(一)
SEian.G
2021/03/03
2.1K0
相关推荐
mysql字符集小结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验