1
resposta

Projeto Final

import sqlalchemy
import pandas as pd

from sqlalchemy import create_engine, MetaData, Table, inspect, text

# 1. Criar engine para banco local SQLite
engine = create_engine('sqlite:///:memory:')

# 2. Ler CSV de cliente e gravar na tabela 'cliente'
url_clientes = 'https://raw.githubusercontent.com/alura-cursos/Pandas/main/clientes_banco.csv'
dados_clientes = pd.read_csv(url_clientes)
dados_clientes.to_sql('clientes', engine, if_exists='replace', index=False)

#Verificar Tabela
pd.read_sql_table('clientes', engine)

# 3. Realizar as atualizações no banco

#Atualização de Usuario
query = 'UPDATE clientes SET Rendimento_anual="300000" WHERE ID_Cliente = 6840104'
with engine.connect() as conn:
    result = conn.execute(text(query))
    conn.commit()

#Verificar se foi feita a modificação
query = 'SELECT * FROM clientes WHERE ID_Cliente = 6840104'
with engine.connect() as conn:
    result = conn.execute(text(query))
    df_result = pd.DataFrame(result.fetchall(), columns=result.keys())
display(df_result)

# Excluir o cliente com ID 5008809
query = 'DELETE FROM clientes WHERE ID_Cliente=5008809'
with engine.connect() as conn:
    result = conn.execute(text(query))
    conn.commit()  

#Verificar se foi Excluido
pd.read_sql_table('clientes', engine)

# Inserir novo cliente com os dados especificados
query = '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, "Casa/apartamento próprio")'

with engine.connect() as conn:
    result = conn.execute(text(query))
    conn.commit() 

#Verificar se foi feita a adição de um novo cliente
query = 'SELECT * FROM clientes WHERE ID_Cliente = 6850985'
with engine.connect() as conn:
    result = conn.execute(text(query))
    df_result = pd.DataFrame(result.fetchall(), columns=result.keys())
display(df_result)
1 resposta

Ei, Mateus! Tudo bem?

Seu código está bem organizado e cobre todas as etapas da manipulação de dados com SQL via SQLAlchemy, o que mostra uma boa compreensão prática do conteúdo. Parabéns por todo empenho na prática!

Uma dica é usar o método inspect(engine).get_table_names() para listar as tabelas disponíveis no banco, por exemplo:

from sqlalchemy import inspect

insp = inspect(engine)
print(insp.get_table_names())

Continue se dedicando aos estudos e qualquer dúvida, compartilhe no fórum.

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