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

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

1、修改数据库编码

1.先登陆数据库

mysql  -uroot -proot

1565865982234

2.查看数据库编码

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

show VARIABLES like 'character%';

1565866081245

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

exit
vi /etc/my.cnf

1565866261309

1565854311898

1565854030530

4.修改配置文件

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

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

1565866533479

5.重启数据库服务

systemctl restart mysql.service

1565866734612

6.再次进入数据库并查看数据库编码

mysql -uroot -proot
show VARIABLES like 'character%';

1565866976038

2、在LINUX中建立数据库及表

建立数据库

1.建立数据库

create database kb02;

1565867218386

2.建立表

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

1565867956922

3.查看新建的数据库和表

showdatabases;
show tables

1565868105580

4.热备份导出

1565868734900

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

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

1565868631572

5.导入文件

把以前建立的sql文件,导入进来,这里是先把已经建好的表删除了,再导入数据库

1565869043983

操做数据库

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

2.清洗数据

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

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;

1565876785081

exist()ui

1565862339211

1565862515443

3.查询姓名(张,李)

模糊查询:编码

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

1565876405830

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

1565877032505

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

1565877401711

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

4.1 查询1995年出生的人

三种方法:rest

4.1.1 模糊查询

1565877775245

4.1.1 模糊查询code

5.查询姓名出生人数(某一年张 李出生人数)

5.1查询姓l 或者姓w 而且出生在1901-1903的人

1565920389228

相关文章
相关标签/搜索