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/ |

±-------------------------±-------------------------------+

database字符集 mysql mysql数据库字符集设置_数据库

2.utf8与utf8mb4:

database字符集 mysql mysql数据库字符集设置_MySQL_02

3.比较规则

database字符集 mysql mysql数据库字符集设置_MySQL_03

常用操作

database字符集 mysql mysql数据库字符集设置_学习_04


database字符集 mysql mysql数据库字符集设置_学习_05


database字符集 mysql mysql数据库字符集设置_mysql_06

4.服务器级别

database字符集 mysql mysql数据库字符集设置_数据库_07

5.数据库级别

database字符集 mysql mysql数据库字符集设置_mysql_08

6.表级别

database字符集 mysql mysql数据库字符集设置_mysql_09

7.列级别

database字符集 mysql mysql数据库字符集设置_database字符集 mysql_10

8.请求到响应过程中字符集的变化

database字符集 mysql mysql数据库字符集设置_数据库_11

database字符集 mysql mysql数据库字符集设置_学习_12

三、sql_mode的合理设置

1. 介绍

database字符集 mysql mysql数据库字符集设置_数据库_13

2.宽松模式、严格模式

database字符集 mysql mysql数据库字符集设置_MySQL_14


database字符集 mysql mysql数据库字符集设置_mysql_15


明天会更好