MySQL是一种常用的关系型数据库管理系统,而建立MySQL表时使用的编码方式是十分重要的。MySQL支持多种编码方式,这些编码方式通过字符集来描述。目前MySQL支持的字符集有以下几种:
默认字符集:
CREATE TABLE MyTable (// 省略字段定义) DEFAULT CHARACTER SET utf8;
指定特定字符集:
CREATE TABLE MyTable (// 省略字段定义) CHARACTER SET = gb2312;
指定字段字符集:
CREATE TABLE MyTable(name VARCHAR(255) CHARACTER SET utf8,// 省略其他字段定义);
可以通过以下方式查看当前MySQL实例支持的所有字符集:
SHOW CHARACTER SET;
在建立表时指定编码方式有一个好处——防止乱码。如果建表时没有指定编码方式,MySQL会根据服务器的默认编码方式来设置表的编码方式。如果服务器的默认字符集与你的应用代码中的字符集不一致,很有可能会发生乱码的情况。
需要注意的是,在MySQL的utf8字符集下,每个汉字占3个字节,而在utf8mb4字符集下,则是每个汉字占4个字节。