MysqlWorkbench使用,数据的中文显示为乱码,CHCP [nnn],批量更新

1.MysqlWorkbench使用:

连接mysql遇到的问题:Cant connect to MySQL server on localhost'(10061)

解决方法:1).首先安装mysqld服务器,输入命令:mysqld --install (必须是管理员身份运行cmd)

     2).用net start mysql启动mysql

mysql数据库忘记密码:网上的方法是用mysqld --skip-grant-tables命令跳过验证。我试过公司的mysql不允许跳过。

           成功的解决方案。将可视化工具从mysqlWorkbench换回navicat,root用户不输密码自动登录成功了。

2.用cmd查看MySQL表数据的中文显示为乱码。

  原因:mysql数据库的编码和cmd的编码;不一致(utf8和gbk)

  解决措施:修改使其一致。介绍修改cmd编码方式。

 

  CHCP是MD DOS中的命令,用来显示或设置活动代码页编号的。用法是:

  CHCP [nnn]

  其中nnn指定的是代码页的编号。这个参数是可选的,在命令行下如果不指定这个代码页编号,那么默认是显示当前的代码页编号。比如,在默认的cmd窗口中,我们输入chcp,显示的将类似:

  活动的代码页: 936

   这里的936表示当前使用的是简体中文(GB2312)编码。

 

  UTF8

  你也需要了解编码的一些知识,为了完成支持UTF8的工作,你至少需要知道UTF8代码页的编号:65001。更多关于编码的内容,这里不赘述,请自行查找相关内容。

 

  有这两个知识点,接下来,让cmd支持UTF8就变得容易了。

  1. 运行CMD;

  2. 输入 CHCP,回车查看当前的编码;

  3. 输入CHCP 65001,回车;

  4. 仅如此,还是不能支持UTF8的正常显示,你还要在窗体上右键,选择属性,来设置字体;

  5. 操作完上面几步后,即使你原来的字体里面没有显示Lucida Console这个字体,现在应该也能看到了。选择它。如果原来就有,可以选上它先试试,不行在执行上述步骤

  (这里补充:至少我本机需要 CHCP 65001下,有朋友说不要);

  6. 选择只应用到本窗体,确认。

  这时候,你的Console里面,应该支持UTF8了。

3.查询语句中含有中文(字段名为中文或者筛选条件含有中文)的处理方法。

解决方法

①在启动MySQL之前,修改my.ini文件。找到

[mysqld]

往后面添加

character-set-server = utf8
character_set_client = utf8

②试试使用navicat的命令窗口,别用cmd

4.批量更新

 ①普通更新语句:

UPDATE table_name SET field1=new-value1, field2=new-value2 
[WHERE Clause]
例如:update student set gender=1 where sname='zhaixingxing';

②批量更新方法:使用case when

例子
update student set sname = case
when xuehao='20162219' then 'xingyu'
when xuehao='20162218' then 'tianyang'
when xuehao='20162220' then 'xiaozhou' 
else sname end;