妙用MySQL:存储中文数据的好办法(mysql数据库存中文)

MySQL是一种流行的开源数据库管理系统,相信大家都很熟悉。MySQL能应付中文数据的存储也不例外。任何编程人员都需要存储大量的中文,因此知晓如何以正确的方式在MySQL中存储中文数据非常重要。

在MySQL中,要存储和查询中文,首先要设定 “字符集” 。可以使用 “SHOW VARIABLES LIKE ‘CHARACTER%’ ”命令来查看字符集:

mysql> SHOW VARIABLES LIKE 'CHARACTER%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)

使用以下MySQL命令,可以改变字符集:

set character_set_client=utf8;
set character_set_results=utf8;
set character_set_connection=utf8;

ALTER DATABASE databasename CHARACTER SET utf8;

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8;

第二种办法是在VARCHAR字段中存储字符串时,使用MySQL的基本内建函数 “CONVERT” 或 “CAST” 函数,显式转换文本。

比如:

INSERT INTO tablename SET content = CONVERT(_utf8'中文字符串' USING gbk);

或是

INSERT INTO tablename
SET content = CAST(_utf8'中文字符串' AS CHAR(100) CHARACTER SET gbk);

上面的代码中,_utf8是指MySQL的utf8字符集,gbk是指GBK字符集。

最后就是使用MySQL的内置编码函数,比如:CONVERT() 和 CAST(),在SQL语句中定义中文字符串编码格式,以及在系统级和数据库级设定正确的编码,这样就可以正确存储和获取中文了。

总而言之,使用MySQL存储中文数据,主要有三种方法:首先设定正确的字符集,其次使用表达式转换字符集,最后使用MySQL的内置函数。当学会上述几种方法后,我相信恐怕没有什么能够阻挡你使用MySQL存储中文数据的困难了。


数据运维技术 » 妙用MySQL:存储中文数据的好办法(mysql数据库存中文)