-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTABELA_VENDAS.sql
More file actions
119 lines (91 loc) · 4.29 KB
/
Copy pathTABELA_VENDAS.sql
File metadata and controls
119 lines (91 loc) · 4.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
create database excel_dio;
select * from dataset_vendas_dio;
drop table dataset_vendas_dio;
#RENOMEANDO COLUNA
ALTER TABLE dataset_vendas_dio
RENAME COLUMN `Pedido_ID` TO `Pedido_ID`,
RENAME COLUMN `Avaliação_Cliente` TO `Avaliação_Cliente`,
RENAME COLUMN `Comentário` TO `Comentario`;
#Quando a gente importa CSV com encoding errado para o MySQL.
#O banco não “entende” os acentos e transforma tudo em caractere - Mecânico → Mecânico
#Isso pode ser mudado atráves de linha de comando ou baixando de novo e mudando o UTF-8 corretamente
#Nesse caso vou usar linha de comando
UPDATE dataset_vendas_dio
SET
Produto = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Produto,
'á','a'),'à ','a'),'ã','a'),'â','a'),
'é','e'),'ê','e'),
'Ã','i'),
'ó','o'),'ô','o'),'õ','o'),
Forma_Pagamento = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Forma_Pagamento,
'á','a'),'à ','a'),'ã','a'),'â','a'),
'é','e'),'ê','e'),
'Ã','i'),
'ó','o'),'ô','o'),'õ','o'),
Comentario = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Comentario,
'á','a'),'à ','a'),'ã','a'),'â','a'),
'é','e'),'ê','e'),
'Ã','i'),
'ó','o'),'ô','o'),'õ','o');
#Antes de alterar tipos de coluna que vierem como texto, é necessário que os dados estão no formato correto
#Por exemplo, preço sem “R$”, datas no formato YYYY‑MM‑DD etc.
#Primeiro: padronize os dados que estão como texto, Preco, Total de vendas 'R$ 1.046,68'
UPDATE dataset_vendas_dio
SET Preco = REPLACE(REPLACE(Preco, 'R$', ''), ',', '.'),
`Total de vendas` = REPLACE(REPLACE(`Total de vendas`, 'R$', ''), ',', '.');
#Alterando Data_Compra que estava assim 27/01/2025, para o formato em ingles 2025-01-27:
UPDATE dataset_vendas_dio
SET Data_Compra = STR_TO_DATE(Data_Compra, '%d/%m/%Y');
#Removendo hífen do cep para numero
UPDATE dataset_vendas_dio
SET CEP_Entrega = REPLACE(CEP_Entrega, '-', '');
#Agora que os dados estão limpos podemos alterar os tipos de colunas em um unico comando:
ALTER TABLE dataset_vendas_dio
MODIFY COLUMN Pedido_ID INT,
MODIFY COLUMN Cliente_Nome VARCHAR(100),
MODIFY COLUMN Produto VARCHAR(150),
MODIFY COLUMN Marca VARCHAR(100),
MODIFY COLUMN Preco DECIMAL(10,2),
MODIFY COLUMN `Desconto(%)` INT,
MODIFY COLUMN Quantidade INT,
MODIFY COLUMN `Total de vendas` DECIMAL(10,2),
MODIFY COLUMN Marketplace VARCHAR(100),
MODIFY COLUMN Forma_Pagamento VARCHAR(100),
MODIFY COLUMN Status_Pedido VARCHAR(100),
MODIFY COLUMN Data_Compra DATE,
MODIFY COLUMN CEP_Entrega VARCHAR(20),
MODIFY COLUMN Avaliacao_Cliente INT,
MODIFY COLUMN Comentario TEXT;
#Quando rodei o comando acima deu erro porque alguns campos estão sem avaliação, ou seja Null
#O SQL não consegue modificar para INT, precisamos verificar quantos campos estão vazios:
SELECT *
FROM dataset_vendas_dio
WHERE Avaliacao_Cliente = '';
#Como corrigir os valores vazios antes do ALTER TABLE
# OPÇÃO A — Transformar vazios em NULL (recomendado)
#NULL significa “sem avaliação”, que é exatamente o caso.
UPDATE dataset_vendas_dio
SET Avaliacao_Cliente = NULL
WHERE Avaliacao_Cliente = '';
#Depois disso, o funciona sem erro
ALTER TABLE dataset_vendas_dio
MODIFY COLUMN Pedido_ID INT,
MODIFY COLUMN Cliente_Nome VARCHAR(100),
MODIFY COLUMN Produto VARCHAR(150),
MODIFY COLUMN Marca VARCHAR(100),
MODIFY COLUMN Preco DECIMAL(10,2),
MODIFY COLUMN `Desconto(%)` INT,
MODIFY COLUMN Quantidade INT,
MODIFY COLUMN `Total de vendas` DECIMAL(10,2),
MODIFY COLUMN Marketplace VARCHAR(100),
MODIFY COLUMN Forma_Pagamento VARCHAR(100),
MODIFY COLUMN Status_Pedido VARCHAR(100),
MODIFY COLUMN Data_Compra DATE,
MODIFY COLUMN CEP_Entrega VARCHAR(20),
MODIFY COLUMN Comentario TEXT;
#Não funcionou devido ao fato de eu ter renomeado a coluna e o sql entende como se ela não existisse
#Como descobrir o nome REAL da coluna
SHOW COLUMNS FROM dataset_vendas_dio;
#Se o nome correto for:
ALTER TABLE dataset_vendas_dio
MODIFY COLUMN Avaliacao_Cliente INT;