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;