一、字符集
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 存储引擎;