前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >理解MySql字符集

理解MySql字符集

作者头像
用户1175783
发布2019-09-18 10:09:05
1.9K0
发布2019-09-18 10:09:05
举报

# 理解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
复制
# 两种方法查看支持的字符集
方法一: 
show character set;
//方法二:
use information_schema;
select * from character_sets;

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

查看MySql字符集

代码语言:javascript
复制
# 查看字符集
show variables like 'character_set_server';

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

查看数据库字符集

代码语言:javascript
复制
show create database [dbname];

查看表字符集

代码语言:javascript
复制
show create table [table]

查看列字符集

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 理解MySql字符集
    • # 字符集
      • # 字符序
        • # MySql中的字符集
          • # 设置修改MySql中的字符集
            • # 其它帮助项
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档