1.查看数据库支持的所有字符集
show character set;或show char set;
2.查看当前状态 里面包括当然的字符集设置
status或者\s
3.查看系统字符集设置,包括所有的字符集设置
show variables like 'char%';
4.查看数据表中字符集设置
show full columns from tablename; 或者 show create table tablename\G;
5.查看数据库编码
show create database dnname;
修改字符集命令
级别命令时效备注
服务器SET GLOBAL character_set_server=utf8; 临时
服务器修改配置文件: [mysqld] default-character-set=utf8 永久
数据库SET GLOBAL character_set_database=utf8; 临时
数据库同修改服务器临时
表ALTER TABLE table_name DEFAULT CHARSET utf8;永久
列alter table `t_test` change `name` `name` varchar (255) character set utf8 collate utf8_general_ci null default null; 永久
连接 show variables like 'char%';临时
连接修改配置文件: [client] default-character-set=utf8 永久
创建时指定字符集
级别命令
服务器级在安装MySQL时可以设置服务器的默认编码格式
数据库级CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
或者 CREATE DATABASE 数据库名 default charset=utf8 collate=utf8_general_ci;
表级CREATE TABLE `db_name`.`tb_name` ( id VARCHAR(20) NOT
NULL, name VARCHAR(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
列级CREATE TABLE `db_name`.`tb_name` ( id varchar(20) NOT NULL, name varchar(20) CHARACTER SET utf8);
查看字符集:
show variables like 'collation_%';
show variableslike 'character_set_%';
创建和修改数据库字符集:
create database mydb character setutf8 collate utf8_general_ci;alter database mini default character set = gb2312;
修改数据表字符集:
alter table pub_logs default character set =gb2312;alter table pub_logs convert to character set gb2312;
生成批量修改表字符集:
SELECT a.TABLE_TYPE,CONCAT('alter TABLE',A.TABLE_NAME,'default character set = gb2312;') FROMINFORMATION_SCHEMA.TABLES AWHERE A.TABLE_SCHEMA='MINI'
AND a.TABLE_TYPE='BASE TABLE'
生成批量修改列字符集:
SELECT CONCAT(CONCAT(CONCAT('alter TABLE ',c.TABLE_NAME,'modify'),CONCAT(' ',C.COLUMN_NAME,' '),C.COLUMN_TYPE),' ','character set gb2312 COLLATE gb2312_chinese_ci;') ASCLOU
FROMINFORMATION_SCHEMA.COLUMNS C,INFORMATION_SCHEMA.TABLES A
WHERE c.TABLE_SCHEMA='MINI'
AND A.TABLE_NAME=c.TABLE_NAME
AND A.TABLE_TYPE='BASE TABLE'
AND c.DATA_TYPE='varchar';