Trabalhando com Bancos de Dados em Python
Trabalhar com bancos de dados é uma parte essencial do desenvolvimento de software. O SQLite é uma das formas mais simples e poderosas de armazenar dados em projetos locais. Esse banco de dados leve já vem integrado ao Python e não requer um servidor separado para funcionar.
Fundamentos do SQLite
O que é e como funciona
O SQLite é um banco de dados relacional embutido. Ele não precisa de instalação ou de um servidor dedicado. Todos os dados são armazenados em um único arquivo. Isso torna o SQLite ideal para prototipagem, aplicativos desktop e mobile.
Principais vantagens
O SQLite oferece diversas vantagens importantes:
• Integrado ao Python através do módulo sqlite3 • Não requer configuração adicional • Alta performance para projetos pequenos e médios • Facilidade de uso • Suporte a consultas SQL padrão • Tamanho reduzido e requisitos mínimos de sistema
Onde usar SQLite em Python
Casos de uso comuns
O SQLite é amplamente utilizado nos seguintes cenários:
• Projetos educacionais e de aprendizado • Aplicativos e scripts locais • Pequenas aplicações web, como com Flask • Sistemas de armazenamento de configurações • Programas offline com armazenamento local de dados • Prototipagem de aplicações • Cache de dados
Benefícios para desenvolvedores
Desenvolvedores Python obtêm muitas vantagens ao usar SQLite. O banco de dados não exige dependências extras. Permite começar rapidamente a trabalhar com dados relacionais. O SQLite suporta transações e garante a confiabilidade dos dados.
Primeiros Passos com SQLite
Importação e conexão
O SQLite já vem na biblioteca padrão do Python. Basta importar o módulo correspondente:
import sqlite3
Criando uma conexão com o banco de dados
Conectando a um arquivo de banco de dados
conn = sqlite3.connect('exemplo.db')
Se o arquivo do banco de dados não existir, ele será criado automaticamente.
Trabalhando com banco de dados em memória
conn = sqlite3.connect(':memory:')
Esse banco de dados existe apenas na memória RAM. Ele é excluído quando o programa é encerrado.
Criando a Estrutura do Banco de Dados
Criação de tabelas
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS usuarios (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
idade INTEGER,
email TEXT UNIQUE
)
''')
conn.commit()
Entendendo os tipos de dados
O SQLite suporta os seguintes tipos de dados principais:
• INTEGER - números inteiros • TEXT - strings de texto • REAL - números de ponto flutuante • BLOB - dados binários • NULL - valores vazios
Operações com Dados
Inserindo dados
Adicionando um único registro
cursor.execute("INSERT INTO usuarios (nome, idade, email) VALUES (?, ?, ?)",
("Alice", 25, "alice@exemplo.com"))
conn.commit()
Inserção múltipla de dados
usuarios = [
("Bob", 30, "bob@exemplo.com"),
("Carlos", 22, "carlos@exemplo.com"),
("Diana", 28, "diana@exemplo.com")
]
cursor.executemany("INSERT INTO usuarios (nome, idade, email) VALUES (?, ?, ?)", usuarios)
conn.commit()
Lendo dados do banco
Obtendo todos os registros
cursor.execute("SELECT * FROM usuarios")
linhas = cursor.fetchall()
for linha in linhas:
print(linha)