Mysql基础学习Day06
- 一、MySQL字符集
- 1.默认字符集
- 2.修改字符集
- 二、字符集和比较规则
- 1.MySQL有4个级别的字符集和比较规则,分别是:
- 2.utf8与utf8mb4:
- 3.比较规则
- 4.服务器级别
- 5.数据库级别
- 6.表级别
- 7.列级别
- 8.请求到响应过程中字符集的变化
- 三、sql_mode的合理设置
- 1. 介绍
- 2.宽松模式、严格模式
一、MySQL字符集
1.默认字符集
①MySQL8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。
②在数据库设计的时候往往需要将默认的字符集编码修改为utf8字符集,如果忘记了修改默认的字符集,就会出现乱码问题
③从MySQL8.0开始,数据库的默认编码为utf8mb4,从而避免了上述乱码问题。
2.修改字符集
①修改MySQL5的默认字符集:
vi /etc/my.cnf
在[mysqld]下添加:
character_set_server=utf8
重启MySQL服务:
systemctl restart mysqld
之后再创建新的数据库、新的表,在不指定字符集的情况下,就会使用默认的utf8编码
②修改已有的数据库、表的字符集
虽然修改了MySQL5的默认字符集,但是,之前创建的已有的数据库、表的字符集是不会改变的。
使用如下命令修改数据库字符集:
alter database 数据库名 character set ‘utf8’;
修改表字符集:
alter table 表名 convert to character set ‘utf8’;
二、字符集和比较规则
1.MySQL有4个级别的字符集和比较规则,分别是:
服务器级别(MySQL server 级别)
数据库级别
表级别
列级别
执行:show variables like ‘character%’;
mysql> show variables like ‘character%’;
±-------------------------±-------------------------------+
| Variable_name | Value |
±-------------------------±-------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
±-------------------------±-------------------------------+
2.utf8与utf8mb4:
3.比较规则
常用操作
4.服务器级别
5.数据库级别
6.表级别
7.列级别
8.请求到响应过程中字符集的变化
三、sql_mode的合理设置
1. 介绍
2.宽松模式、严格模式
明天会更好