MySQL字符集


1.字符集介绍

字符集:是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等

#最早的字符集:ASCII码
中国的字符集:gbk,utf8,utf8mb4,gbk2312,....
日本:shift-JIS
韩国:Euc-kr
万国编码:Unicode字符集

#数据库常用的字符集
    gbk: 一个汉字占用2个字节
    utf8: 一个汉字占用3个字节
    utf8mb4: 一个汉字占用4个字节
    
#字符集修改
    字符集有一个包含关系,修改时要注意小的范围可以修改为大范围的字符集

#数据库查看字符集
    mysql> show charset;

2.校验规则

#查看校验规则
mysql> show collation;

| latin1_bin               |
| latin1_general_ci        |
| latin1_general_cs        |

#校验规则区别
1.ci结尾的校验规则不区分大小写
2.bin和cs结尾的校验规则区分大小写

3.统一字符集

#1.xshell字符集

#2.linux系统的字符集
    #永久修改:
    1)centOS7:
    [root@db01 ~]# vim /etc/locale.conf
    LANG="zh_CN.UTF-8"
    2)centOS6:
    [root@db01 ~]# vim /etc/sysconfig/i18n
    LANG="zh_CN.UTF-8"
    #临时修改:
    [root@db01 ~]# LANG="zh_CN.UTF-8
    
#3.cmake阶段指定字符集
    #使用utf8字符集
    -DDEFAULT_CHARSET=utf8
    #校验规则
    -DDEFAULT_COLLATION=utf8_general_ci

#4.配置文件可以修改默认的字符集
    [root@db01 ~]# vim /etc/my.cnf
    [mysqld]
    character-set-server=utf8

#5.创建数据库时指定字符集
    mysql> create database zifuji3 charset gbk;
    
#6.在库下建表
    在库下面建表,表的字符集随着库走,不走默认与cmake的字符集
    
#7.建表时指定字符集
    mysql> create table test2(id int) charset utf8mb4;
    
#8.修改已有表的字符集
    mysql> alter table test charset utf8mb4;