LINUX數據庫----關於數據清洗

LINUX數據庫----關於數據清洗

一、修改數據庫編碼

1.先登錄數據庫

mysql  -uroot -proot

1565865982234

2.查看數據庫編碼

發現數據庫和數據庫服務對應的編碼是latin1,需要修改數據庫的編碼爲UTF8

show VARIABLES like 'character%';

1565866081245

3. 退出數據庫,編輯/etc/my.cnf文件

exit
vi /etc/my.cnf

1565866261309

1565854311898

1565854030530

4.修改配置文件

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

[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

二、在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導出數據庫

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

1565868631572

5.導入文件

把之前創建的sql文件,導入進來,這裏是先把已經建好的表刪除了,再導入

1565869043983

操作數據庫

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;

1565876785081

exist()

1565862339211

1565862515443

3.查詢姓名(張,李)

模糊查詢:

3.1 查詢 l 開頭的名字(不區分大小寫)

1565876405830

3.2 查詢L 開頭的名字(分大小寫)

1565877032505

3.3 查詢L,W 開頭的名字(不分大小寫)

1565877401711

4.查詢出生人數(某一年)

4.1 查詢1995年出生的人

三種方法:

4.1.1 模糊查詢

1565877775245

4.1.1 模糊查詢

5.查詢姓名出生人數(某一年張 李出生人數)

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

1565920389228

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章