因为一些一键安装包的环境, 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