MySQL 修改库,表,字段字符集

因为一些一键安装包的环境, my.ini 默认配置的字符集是 latin1 或者其他, 如果此时一旦不注意, 使用sql语句去创建数据库, 表 默认都是 latin1, 因为有些字符集是不能存储中文的,如果需要存储中文, 需要使用GBK,utf8...等字符集...如果一个个去修改就太难...

查看字符集

数据库

SHOW CREATE DATABASE `database_name`

database_name: 数据库名

数据表

SHOW CREATE TABLE `table_name`;

table_name: 数据表名

字段

SHOW FULL COLUMNS FROM `table_name`;

table_name: 数据表名

修改字符集

数据库

ALTER DATABASE `test_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
  • test 是数据库名
  • utf8_general_ci 是排序规则, 可选项

数据表

ALTER TABLE `test_db`.`user` CHARACTER SET = utf8mb4, COLLATE = utf8mb4_bin;

字段

ALTER TABLE `test_db`.`username`  MODIFY COLUMN `password` varchar(30)  CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

查看一个数据库中所有的表格

select table_name from information_schema.`TABLES` where TABLE_SCHEMA = 'database_name';
  • database_name: 是要查询的数据库名称
  • 这条sql语句中的table_name是关键字, 不是表名

将一个表所有字段修改为指定字符集

alter table `table_name` convert to character set utf8 COLLATE utf8_bin;

table_name 这个表的所有字段字符集修改为 utf8 排序规则为utf8_bin

原文地址:https://www.cnblogs.com/liaohui5/p/10581554.html