Dataset Python: trabalhe com bancos de dados de forma simples, como no Pandas
O que é a biblioteca Dataset
Dataset é uma biblioteca Python que oferece uma interface prática para trabalhar com bancos de dados SQL sem precisar escrever consultas SQL. Com ela, você manipula bancos de dados com a mesma facilidade com que mexe em dicionários Python, enquanto tabelas e estruturas de dados são criadas automaticamente.
Principais vantagens do Dataset:
- Criação automática de tabelas e esquemas
- API simples, sem necessidade de SQL
- Suporte a vários bancos de dados via SQLAlchemy
- Sintaxe intuitiva e fácil de entender
- Configuração mínima para começar
- Excelente compatibilidade com Pandas
Instalação e configuração do Dataset
Instalando a biblioteca
pip install dataset
Para usar bancos de dados específicos, pode ser necessário instalar drivers adicionais:
# Para PostgreSQL
pip install psycopg2-binary
# Para MySQL
pip install pymysql
# Para SQLite, o driver já vem com o Python
Conectando a diferentes bancos de dados
import dataset
# SQLite (banco local)
db = dataset.connect('sqlite:///meubanco.db')
# PostgreSQL
db = dataset.connect('postgresql://usuario:senha@localhost:5432/nomedobanco')
# MySQL
db = dataset.connect('mysql://usuario:senha@localhost/nomedobanco')
# Em memória (para testes)
db = dataset.connect('sqlite:///:memory:')
Princípios básicos do Dataset
O Dataset funciona com base nos seguintes princípios:
- Criação automática de tabelas — as tabelas são criadas na primeira vez que você as acessa
- Esquema dinâmico — a estrutura da tabela é definida automaticamente ao inserir dados
- Interface baseada em dicionários — os dados são tratados como dicionários Python
- Sem SQL — todas as operações são feitas através de métodos Python
Criando e gerenciando tabelas
Acessando uma tabela
# Acessa a tabela (criada automaticamente se não existir)
tabela_usuarios = db['usuarios']
# Forma alternativa
tabela_usuarios = db.get_table('usuarios')
Criando uma tabela com configurações
# Cria uma tabela com chave primária personalizada
db.create_table('produtos', primary_id='id_produto', primary_type=db.types.string)
Inserindo dados
Inserindo um único registro
tabela = db['usuarios']
# Insere um usuário
tabela.insert({
'nome': 'João Silva',
'email': 'joao@exemplo.com',
'idade': 30,
'cidade': 'São Paulo'
})
Inserindo vários registros
# Insere múltiplos registros
dados_usuarios = [
{'nome': 'Ana Souza', 'email': 'ana@exemplo.com', 'idade': 25},
{'nome': 'Pedro Santos', 'email': 'pedro@exemplo.com', 'idade': 35},
{'nome': 'Maria Oliveira', 'email': 'maria@exemplo.com', 'idade': 28}
]
tabela.insert_many(dados_usuarios)
Operações Upsert
# Insere ou atualiza (se já existir um registro com o mesmo email)
tabela.upsert({
'nome': 'João Silva',
'email': 'joao@exemplo.com',
'idade': 31,
'cidade': 'Rio de Janeiro'
}, ['email'])
Buscando e filtrando dados
Obtendo todos os registros
# Obtém todos os registros
todos_usuarios = list(tabela.all())
for usuario in todos_usuarios:
print(f"{usuario['nome']} - {usuario['email']}")
Buscando com condições
# Encontra um único registro
usuario = tabela.find_one(nome='João Silva')
# Encontra todos os registros com uma condição
usuarios_jovens = list(tabela.find(idade={'<': 30})) Também na biblioteca
Planejador de Tarefas Kotlin: kotlinx-coroutines-core e biblioteca korGE
OpenCV C++: Guia Completo com Exemplos Práticos
Validação de dados em Node.js com Joi: guia completo