您的位置:首页 > 数据库 > MySQL

常用mysql命令_关于编码

2012-11-16 16:24 281 查看
① 修改表的存储类型【存储引擎】

alter table 表名 type=InnoDB;
alter table 表名 type=MyISAM;

② 创建一个使用utf-8字符集的mydb2数据库

mysql> create database test character set utf8;
Query OK, 1 row affected (0.01 sec)

③ 创建一个使用utf-8字符集,并带校对规则的mydb3数据库。

mysql> create database mydb3 character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.01 sec)

④ 查看前面创建的mydb2/mysql3数据库的编码

mysql> show create database mydb2;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| mydb2 | CREATE DATABASE `mydb2` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show create database mydb3;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| mydb3 | CREATE DATABASE `mydb3` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

⑤ 修改表的编码

alter table 表名 character set gbk collate gbk_chinese_ci;
alter table 表名 character set utf8 collate utf8_general_ci;

例子:把服务器中的数据库某一个库的字符集修改为gb2312;

mysql> alter database mydb2 character set gb2312;
Query OK, 1 row affected (0.00 sec)

mysql> show create database mydb2;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| mydb2 | CREATE DATABASE `mydb2` /*!40100 DEFAULT CHARACTER SET gb2312 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)

⑥ 插入和读取数据时的编码问题

要想插入时不乱码(插入中文要告诉mysql客户采用gb2312编码)
show variables like 'chara%';
set character_set_client=gb2312;
insert into employee(id,username) values('3','张三');

要想查看时不乱码
show variables like 'chara%';
set character_set_results=gb2312;
select * from employee;

在执行前,我们可以查看client和results的编码均为utf8
mysql> show variables like 'chara%';
| Variable_name | Value
| character_set_client | utf8
| character_set_connection | utf8
| character_set_database | gbk
| character_set_filesystem | binary
| character_set_results | utf8
| character_set_server | gbk
| character_set_system | utf8
| character_sets_dir | D:\Program Files\MySQL\MySQL Server 5.5\share\charsets\

执行改变编码的命令:
mysql> set character_set_client=gb2312;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=gb2312;
Query OK, 0 rows affected (0.00 sec)

查看现在的编码:
character_set_client | gb2312
character_set_connection | utf8
character_set_database | gbk
character_set_filesystem | binary
character_set_results | gb2312
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: