MySQL 字符集
以下均在mysql 5.5命令行中运行通过:
查看MySQL支持的字符集:
show charset;
查看字符集:
status
下面的更具体:
SHOW VARIABLES LIKE 'character_set_%';
查看排序方式:
SHOW VARIABLES LIKE 'collation_%';
数据库建立时候一般会使用默认的字符集,除非在建立的时候指定:
CREATE DATABASE [db-name] CHARACTER SET utf8 COLLATE utf8_general_ci;
建立table时候指定字符集:
create table [table-name] (id int not null ) default charset utf8;
查看database使用的字符集:
方法1:找到存放数据库的目录,进入相应database的目录,查看db.opt文件。
方法2:
show create database [db-name];
查看表的字符集:
show create table [table-name];
查看数据库中每个表的字符集:
show table status from [db-name];
如果每一列后未说明字符集,则列的字符集和表一样。
也可以指定某个表:
show table status from [db-name] like '%filter%';
查看表中每一列的字符集:
show full columns from [table-name];
或者
show table status from [db-name];
修改数据库字符集:
ALTER DATABASE [db-name] DEFAULT CHARACTER SET [character-name] COLLATE [collation-name];
修改表和列(字段)的字符集:
ALTER TABLE [table-name] CONVERT TO CHARACTER SET [character-name] COLLATE [collation-name];
只是修改表的字符集:
ALTER TABLE [table-name] DEFAULT CHARACTER SET [character-name] COLLATE [collation-name];
查看字符集以及默认的排序规则:
show charset;
或者:
select * from information_schema.character_sets;
查询某个字符集相关的排序规则:
SHOW COLLATION LIKE 'utf8mb4%';
不要使用utf8:
是的,不要使用utf8,而应该用 utf8mb4 。为什么?因为utf8不支持表情符号等四字节字符,而 utf8mb4 支持。