1
resposta

[Projeto] 10 Desafio: manipulando um banco de dados

1. Criar o banco de dados local com a biblioteca SQLAlchemy.
objetivo: Configuração e Carga Inicial e ler o arquivo CSV e criar o banco de dados local.
import pandas as pd
from sqlalchemy import create_engine, text

# 1. Criar o banco de dados local (SQLite)
engine = create_engine('sqlite:///instituicao_financeira.db')

# 2. Ler os dados do arquivo CSV
df_clientes = pd.read_csv('clientes_banco.csv')

# 3. Escrever os dados no banco de dados local (tabela 'clientes')
df_clientes.to_sql('clientes', engine, index=False, if_exists='replace')

print("Banco de dados criado e dados iniciais inseridos com sucesso!")

2.Escrever os dados do arquivo CSV neste banco de dados local.
objetivo: Realizando as Atualizações e usando função with engine.connect()

with engine.connect() as conn:
    # A. Atualizar rendimento anual do cliente ID 6840104
    query_update = text('UPDATE clientes SET Rendimento_anual = 300000.0 WHERE ID_Cliente = 6840104')
    conn.execute(query_update)

    # B. Excluir o registro do cliente ID 5008809
    query_delete = text('DELETE FROM clientes WHERE ID_Cliente = 5008809')
    conn.execute(query_delete)

    # C. Criar um novo registro de cliente (INSERT INTO)
    query_insert = text('''
        INSERT INTO clientes (ID_Cliente, Idade, Grau_escolaridade, Estado_civil, Tamanho_familia, 
                             Categoria_de_renda, Ocupacao, Anos_empregado, Rendimento_anual, Tem_carro, Moradia)
        VALUES (6850985, 33, 'Doutorado', 'Solteiro', 1, 'Empregado', 'TI', 2, 290000.0, 0, 'Casa/apartamento próprio')
    ''')
    conn.execute(query_insert)

    # Importante: Confirmar as alterações no banco
    conn.commit()

print("Atualizações, exclusão e inserção realizadas com sucesso!")

3. Realizar três atualizações no banco de dados:
Atualizar o registro do cliente de ID 6840104 que teve o rendimento anual alterado para 300000.
Excluir o registro do cliente de ID 5008809, pois essa pessoa não possui mais conta na instituição financeira.
Criar um novo registro de cliente seguindo as especificações abaixo:
ID_Cliente: 6850985
Idade: 33
Grau_escolaridade: Doutorado
Estado_civil: Solteiro
Tamanho_familia: 1
Categoria_de_renda: Empregado
Ocupacao: TI
Anos_empregado: 2
Rendimento_anual: 290000
Tem_carro: 0
Moradia: Casa/apartamento próprio

objetivo: ler os dados de volta para um DataFrame e consultar os IDs afetados.
# Verificando o novo cliente e a atualização
query_verificacao = text('SELECT * FROM clientes WHERE ID_Cliente IN (6840104, 6850985, 5008809)')
df_resultado = pd.read_sql(query_verificacao, engine)

print("\nResultado da verificação:")
print(df_resultado)
# O cliente 5008809 não deve aparecer no resultado acima.
1 resposta

Oi, Moacir! Como vai?

Agradeço por compartilhar.

Ficou muito claro como você estruturou todo o fluxo: desde a criação do banco com SQLAlchemy, passando pela carga inicial com pandas, até as operações de UPDATE, DELETE e INSERT. Um ponto que chama atenção é o uso correto do with engine.connect() junto com o commit(), garantindo que as alterações realmente sejam persistidas no banco.

Continue firme nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!