MySQ可以在四个层级上指定数据的字符集:系统级,库级,表级,列级。在后两个层级上指定字符集是MySQL对标准SQL的特有扩展。
系统级设置可以通过启动参数文件或命令行参数(character-set-server)指定,如果不指定则使用latin1(注意,不是根据os的语言设置自动选择,而是latin1)。可以在运行时动态修改。
库级设置在创建数据库(create database)时指定,如果不指定则使用系统级设置。可以使用alter database语句来修改库级设置。
表级设置在创建表(create table)时指定,如果不指定则使用库级设置。可以使用alter table语句来修改表级设置。
列级设置在创建表(create table)时指定,如果不指定则使用表级设置。可以使用alter table语句来修改列级设置。