Estou realizando o estudo do SQLAlchemy para que seja mais uma ferramenta a ser usada em prol da educação básica, pois o objetivo é captar o máximo de dados possíveis do universo da sala de aula.
Este repositório contém exemplos e explicações práticas sobre o uso do SQLAlchemy, uma biblioteca Python poderosa para trabalhar com bancos de dados relacionais. Os estudos incluem desde os conceitos básicos até o uso avançado do ORM (Object Relational Mapping).
✅ Core vs. ORM: Diferenças entre as duas abordagens principais do SQLAlchemy.
✅ Instalação: Como instalar a biblioteca.
✅ Engine: Configuração e criação do mecanismo de conexão.
✅ Pools: Gerenciamento de conexões com o banco de dados.
✅ Dialetos: Como o SQLAlchemy suporta diferentes bancos de dados.
🔗 Como se conectar ao banco de dados utilizando a Engine.
♻️ Gerenciamento de transações com commit
, rollback
e savepoints
.
🛠️ Definição de metadados (tabelas e colunas).
📋 Uso de tipos de dados suportados pelo SQLAlchemy.
📦 Criação e manipulação de tabelas no banco de dados.
🔍 Construção de consultas SQL de forma programática.
⚙️ Uso de operadores (select
, where
, join
, etc.).
📊 Execução e manipulação de resultados.
🏗️ Diferenças entre os modelos declarativos e imperativos.
🌀 Configuração de Session para gerenciamento de objetos.
🤝 Criação de relacionamentos entre objetos, como One-to-Many e Many-to-Many.
A estrutura do repositório está organizada em subpastas, cada uma correspondendo a uma etapa do roteiro de estudos:
/sqlalchemy-studies
├── 1-conceitos-basicos // Exemplos básicos de Core vs. ORM, Engine, Pools e Dialetos
├── 2-conexoes-transacoes // Conexões com o banco e controle de transações
├── 3-schemas-tipos // Definição de tabelas e tipos de dados
├── 4-query-builder // Exemplos de consultas complexas utilizando o Core
├── 5-orm // Estudo detalhado do ORM com modelos e relacionamentos
🟢 Python 3.8+
🟢 Um banco de dados suportado pelo SQLAlchemy (como SQLite, MySQL ou PostgreSQL).
🟢 Instale o SQLAlchemy com:
pip install sqlalchemy
from sqlalchemy import create_engine
# Conectar ao banco SQLite (dialeto usado como exemplo)
engine = create_engine("sqlite:///meu_banco.db", echo=True)
connection = engine.connect()
# Fechar a conexão
connection.close()
from sqlalchemy import MetaData, Table, Column, Integer, String
# Metadados e definição da tabela
metadata = MetaData()
users_table = Table(
"users",
metadata,
Column("id", Integer, primary_key=True),
Column("name", String, nullable=False),
Column("email", String, unique=True)
)
# Criar a tabela no banco
metadata.create_all(engine)
from sqlalchemy.orm import declarative_base, sessionmaker
from sqlalchemy import Column, Integer, String
# Base declarativa para o ORM
Base = declarative_base()
# Modelo da tabela
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
email = Column(String, unique=True)
# Criar a tabela no banco
Base.metadata.create_all(engine)
# Criar uma sessão
Session = sessionmaker(bind=engine)
session = Session()
# Adicionar um novo usuário
new_user = User(name="João Silva", email="[email protected]")
session.add(new_user)
session.commit()
Esse é um curso introdutório ao SQLAlchemy, ministrado por Eduardo Mendes, também conhecido como Dunossauro. Ele aborda conceitos fundamentais e exemplos práticos.