MYSQL数据库字符集篇
#一.查看MYSQL数据库服务器所支持的字符集
#1.查看MYSQL所支持的字符集,查出所有的字符集
show charset;
#2.通过like方式过滤某个特定字符集的信息(查看数据库中是否支持某个特定的字符集)
show character set like '%utf%';
#或者通过where的方式过滤某个特定的字符集
show character set where charset = 'utf8mb4';
#3.通过查看information_schema数据库下character_sets表
desc information_schema.character_sets;
select character_set_name,default_collate_name,description,maxlen from information_schema.character_sets;
#二.MYSQL默认字符集
#方法一:
show variables like '%character%';
#方法二:
show variables like 'collation%';
#联合:
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
#三.查看库的字符集
show create database 库名\G
#四.查看表的字符集
show table status from 库名 like '表名';
#五.查看表中所有列的字符集
show full columns from 表名;
#六.修改字符集
#修改数据库utf8到utf8mb4过程
#1.注意,通过上面命令查看数据库支持utf8mb4不.版本要求5.5.3+
#2.关闭mysql服务
#3.修改配置文件
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect= 'SET NAMES utf8mb4'
#4.重启mysql,并检查变量
show variables like '%character%';
character_set_client (客户端来源数据使用的字符集)
character_set_connection (连接层字符集)
character_set_database (当前选中数据库的默认字符集)
character_set_results (查询结果字符集)
character_set_server (默认的内部操作字符集)
#这几个必须是utf8mb4
#七.修改已建库字符集篇
#更改数据库字符集:
ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#更改表中字符集,注意里面的字段字符集并没有被修改
ALTER TABLE 表名 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#更改表中字符集和所有字段字符集:
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#如果一个数据库有多个表,批量修改表和表字段字符集
#1.查询某个数据库所有表名的语句:
SELECT TABLE_NAME from information_schema.`TABLES` WHERE TABLE_SCHEMA = '数据库名';
#2.得到所有的表名,我们可以把表名拼接到上面更改表编码(字符集)和表中所有字段的编码(字符集)的语句中去,得到如下语句
SELECT
CONCAT(
'ALTER TABLE ',
TABLE_NAME,
' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;'
)
FROM
information_schema.`TABLES`
WHERE
TABLE_SCHEMA = 'jiulian5188me';
#3.执行后得到的就是修改数据库中所有表字符集的语句,然后复制这些语句执行就可以了。