mysql 字符集说明

一、字符集

1.什么是字符集

#常用的字符集
	gbk: 两字节
	utf8:三个字节
	utf8mb4:四个字节

#字符集转换
	只有包含关系的字符集能够互相转换
	
#查看支持的字符集
	mysql> show charset;

2.校验规则

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

#检验规则种类
| latin1_bin
| latin1_general_ci
| latin1_general_cs

#区别
	bin和cs区分大小写
	ci不区分大小写

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;

补充

最近在部署应用服务时,有的应用对于数据库的字符集与校验规则有要求,
以下语句就可以在创建库时就设置好字符集与校验规则。

CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
其中utf8是字符集编码,utf8_general_ci是校验规则。数据库中有哪些校验规则,
可以通过 show collation; 命令来查看。部分校验规则:

utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。

utf8_genera_ci 不区分大小写,ci为case insensitive的缩写,即大小写不敏感。

utf8_general_cs 区分大小写,cs为case sensitive的缩写,即大小写敏感。

如果是想在创建表的时候单独设置这张表的字符集与校验规则

CREATE TABLE table_name (
    field1 datatype,
    field2 datatype,
    field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
posted @ 2020-10-27 15:36  nick_xm  阅读(134)  评论(0编辑  收藏  举报