LINUX数据库——修改数据库编码

LINUX数据库----关于数据清洗

一、修改数据库编码

1.先登录数据库
mysql  -uroot -proot

[外链图片转存失败(img-zvMV99Js-1567242114658)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565865982234.png)]

2.查看数据库编码

发现数据库和数据库服务对应的编码是latin1,需要修改数据库的编码为UTF8

show VARIABLES like 'character%';

[外链图片转存失败(img-2f0W9tcF-1567242114658)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565866081245.png)]

3. 退出数据库,编辑/etc/my.cnf文件
exit
vi /etc/my.cnf

[外链图片转存失败(img-VqqrF66C-1567242114659)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565866261309.png)]

[外链图片转存失败(img-5NJQ79Rc-1567242114659)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565854311898.png)]

[外链图片转存失败(img-jZVOUEAB-1567242114659)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565854030530.png)]

4.修改配置文件

在配置文件中添加,写完以后:wq保存退出

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci

[外链图片转存失败(img-0FIzoveJ-1567242114659)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565866533479.png)]

5.重启数据库服务
systemctl restart mysql.service

[外链图片转存失败(img-LIauUqox-1567242114659)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565866734612.png)]

6.再次进入数据库并查看数据库编码
mysql -uroot -proot
show VARIABLES like 'character%';

[外链图片转存失败(img-AWgRdCUK-1567242114660)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565866976038.png)]

二、在LINUX中创建数据库及表

创建数据库

1.创建数据库
create database kb02;

[外链图片转存失败(img-cavZkkxe-1567242114660)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565867218386.png)]

2.创建表
use kb02
create table userinfos(userid int(20) primary key not null auto_increment,username varchar(20),birthday date);

[外链图片转存失败(img-0mOpSEXT-1567242114660)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565867956922.png)]

3.查看新建的数据库和表
showdatabases;
show tables

[外链图片转存失败(img-MvBR9FC7-1567242114660)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565868105580.png)]

4.热备份导出

[外链图片转存失败(img-UyOs31nB-1567242114661)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565868734900.png)]

退出数据库,使用mysqldump导出数据库

exit
mysqldump -uroot -proot kb02 >/opt/mysql/mysql.sql

[外链图片转存失败(img-v1pxi2M7-1567242114661)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565868631572.png)]

5.导入文件

把之前创建的sql文件,导入进来,这里是先把已经建好的表删除了,再导入

[外链图片转存失败(img-7PilKo9Q-1567242114661)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565869043983.png)]

操作数据库

1.将本地建好的数据,导入到数据库中
2.清洗数据

将不符合要求的过滤,并将查询的结果写到新的表中:username、birthday为空都过滤,名字相同的保留最大的userid的信息

create table cp_user as select  max(userid) uid ,username ,max(birthday) birth from
(SELECT *
 from userinfos
 WHERE username !='' and birthday !='') newuserinfos
GROUP BY username
ORDER BY uid;

[外链图片转存失败(img-HvdlMsvY-1567242114662)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565876785081.png)]

exist()

[外链图片转存失败(img-UufAvvl2-1567242114662)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565862339211.png)]

[外链图片转存失败(img-RWSGEsre-1567242114662)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565862515443.png)]

3.查询姓名(张,李)

模糊查询:

3.1 查询 l 开头的名字(不区分大小写)

[外链图片转存失败(img-W3ccez9w-1567242114662)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565876405830.png)]

3.2 查询L 开头的名字(分大小写)

[外链图片转存失败(img-qzEtKRFN-1567242114662)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565877032505.png)]

3.3 查询L,W 开头的名字(不分大小写)

[外链图片转存失败(img-v3DJRJpj-1567242114663)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565877401711.png)]

4.查询出生人数(某一年)
4.1 查询1995年出生的人

三种方法:

4.1.1 模糊查询

[外链图片转存失败(img-LcW6N1B1-1567242114663)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565877775245.png)]

4.1.1 模糊查询

5.查询姓名出生人数(某一年张 李出生人数)
5.1查询姓l 或者姓w 并且出生在1901-1903的人

4.查询出生人数(某一年)

4.1 查询1995年出生的人

三种方法:

4.1.1 模糊查询

[外链图片转存中…(img-LcW6N1B1-1567242114663)]

4.1.1 模糊查询

5.查询姓名出生人数(某一年张 李出生人数)
5.1查询姓l 或者姓w 并且出生在1901-1903的人

[外链图片转存失败(img-PLCI6ukz-1567242114663)(C:\Users\WSC\AppData\Roaming\Typora\typora-user-images\1565920389228.png)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值