Nesta prática, vamos desenvolver um aplicativo em Python que se conecta a um banco de dados SQLite, realiza operações CRUD (Create, Read, Update, Delete) e manipula dados. Este exercício é ideal para estudantes de programação que desejam aprender a manipular bancos de dados com Python.

Pré-requisitos

  • Conhecimento básico de Python.
  • Bibliotecas Python: sqlite3, pandas.

Passo a Passo

1. Configuração do Ambiente

Instale as bibliotecas necessárias utilizando o comando abaixo:

pip install pandas

2. Conectando-se ao Banco de Dados SQLite

Crie um script Python para conectar-se ao banco de dados SQLite e executar consultas.

import sqlite3
import pandas as pd
 
conn = sqlite3.connect('meu_banco_de_dados.db')
 
# Criando um cursor
cursor = conn.cursor()
 
# Testando a conexão
cursor.execute("SELECT sqlite_version();")
print(f"Versão do SQLite: {cursor.fetchone()[0]}")

3. Criando as Tabelas no Banco de Dados

Crie as tabelas Produto e Categoria no banco de dados SQLite.

create_table_query = """
CREATE TABLE IF NOT EXISTS Categoria (
    ID_Categoria INTEGER PRIMARY KEY AUTOINCREMENT,
    Nome_Categoria TEXT NOT NULL,
    Descricao TEXT
);
 
CREATE TABLE IF NOT EXISTS Produto (
    ID_Produto INTEGER PRIMARY KEY AUTOINCREMENT,
    Nome TEXT NOT NULL,
    Descricao TEXT,
    Preco REAL,
    ID_Categoria INTEGER,
    FOREIGN KEY (ID_Categoria) REFERENCES Categoria(ID_Categoria)
);
"""
 
cursor.executescript(create_table_query)
conn.commit()

4. Operações CRUD

4.1 Inserir Dados (Create)

# Dados para inserir
categorias = [
    ('Eletrônicos', 'Dispositivos eletrônicos'),
    ('Móveis', 'Móveis de diversos tipos'),
    ('Vestuário', 'Roupas e acessórios')
]
 
produtos = [
    ('Smartphone', 'Telefone com funcionalidades avançadas', 1500.00, 1),
    ('Sofá', 'Sofá de três lugares', 800.00, 2),
    ('Camisa', 'Camisa de algodão', 50.00, 3)
]
 
# Inserindo dados nas tabelas
cursor.executemany("INSERT INTO Categoria (Nome_Categoria, Descricao) VALUES (?, ?);", categorias)
cursor.executemany("INSERT INTO Produto (Nome, Descricao, Preco, ID_Categoria) VALUES (?, ?, ?, ?);", produtos)
conn.commit()

4.2 Ler Dados (Read)

# Ler dados das tabelas
cursor.execute("SELECT * FROM Produto")
produtos = cursor.fetchall()
 
for produto in produtos:
    print(produto)

4.3 Atualizar Dados (Update)

# Atualizar um produto
update_query = """
UPDATE Produto
SET Preco = 1600.00
WHERE Nome = 'Smartphone';
"""
cursor.execute(update_query)
conn.commit()

4.4 Deletar Dados (Delete)

# Deletar um produto
delete_query = """
DELETE FROM Produto
WHERE Nome = 'Camisa';
"""
cursor.execute(delete_query)
conn.commit()

5. Análise de Dados

Utilize a biblioteca pandas para analisar os dados.

# Ler dados e carregar em um DataFrame
df_produtos = pd.read_sql_query("SELECT * FROM Produto", conn)
print(df_produtos)
 
# Análise simples
print(df_produtos.describe())

6. Conclusão

Nesta prática, você aprendeu a desenvolver um aplicativo em Python que se conecta a um banco de dados SQLite, realiza operações CRUD e manipula dados para análise. O uso de ferramentas como o SQLite, que é leve e de fácil configuração, facilita bastante o gerenciamento e a manipulação de bancos de dados, especialmente para iniciantes e em ambientes de desenvolvimento ágeis.

Dica: Sempre feche a conexão com o banco de dados ao final do seu script para garantir que todos os recursos sejam liberados corretamente.

conn.close()

Para saber mais: Python sqlite3 Module