Fundamentos do SQLite em Python
Trabalhar com bancos de dados é essencial em praticamente qualquer aplicação moderna. No entanto, nem sempre é necessário usar sistemas complexos e pesados como MySQL ou PostgreSQL. Para projetos pequenos, protótipos ou aplicativos locais, o SQLite — sistema de banco de dados integrado ao Python — é a escolha ideal.
Neste guia, vamos explorar os princípios do SQLite em Python. Você aprenderá a realizar as operações principais com bancos de dados. Também veremos exemplos práticos do comando UPDATE no SQLite usando Python.
O que é SQLite e suas vantagens
SQLite é um banco de dados relacional leve e embutido. Ele não precisa de um servidor separado para funcionar. O banco de dados SQLite é armazenado diretamente em um único arquivo no disco do computador.
Principais vantagens do SQLite:
- Incluso na biblioteca padrão do Python através do módulo sqlite3
- Não requer instalação ou configuração de servidor separado
- Ideal para aplicativos locais e soluções móveis
- Simplicidade de uso e alta velocidade em volumes pequenos de dados
- Suporte a consultas SQL padrão
- Multiplataforma e portátil
- Confiabilidade e estabilidade
Conectando ao banco de dados SQLite
Para trabalhar com SQLite, usamos o módulo padrão sqlite3. Não é necessário instalá-lo separadamente, pois ele já vem incluído na instalação padrão do Python.
import sqlite3
# Criar ou conectar ao banco de dados
conn = sqlite3.connect('exemplo.db')
# Criar cursor para executar consultas SQL
cursor = conn.cursor()
Ao executar este código, o arquivo do banco de dados exemplo.db é criado no diretório atual. Se o arquivo já existir, a conexão é feita com o banco existente.
Criando a estrutura do banco de dados
Criação de tabelas
A criação de uma tabela no SQLite é feita com o comando CREATE TABLE. Veja um exemplo de criação de tabela para armazenar informações de usuários:
cursor.execute('''
CREATE TABLE IF NOT EXISTS usuarios (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT NOT NULL,
idade INTEGER,
email TEXT UNIQUE
)
''')
conn.commit()
Neste exemplo, criamos a tabela usuarios com quatro colunas:
- id — identificador único com autoincremento
- nome — nome do usuário (campo obrigatório)
- idade — idade do usuário
- email — e-mail (valor único)
Criação de índices para otimização
Para melhorar a performance das consultas, podemos criar índices:
cursor.execute('''
CREATE INDEX IF NOT EXISTS idx_usuarios_email ON usuarios(email)
''')
cursor.execute('''
CREATE INDEX IF NOT EXISTS idx_usuarios_idade ON usuarios(idade)
''')
conn.commit()
Operações com dados
Inserindo dados na tabela
A inserção de um registro na tabela é feita com o comando INSERT:
cursor.execute('''
INSERT INTO usuarios (nome, idade, email)
VALUES (?, ?, ?)
''', ('Alice', 30, 'alice@exemplo.com'))
conn.commit()
Inserção em massa de dados
Para adicionar vários registros de uma vez, usamos o método executemany:
dados_usuarios = [
('Bob', 25, 'bob@exemplo.com'),
('Carlos', 35, 'carlos@exemplo.com'),
('Diana', 28, 'diana@exemplo.com'),
('Eva', 32, 'eva@exemplo.com')
]
cursor.executemany('''
INSERT INTO usuarios (nome, idade, email)
VALUES (?, ?, ?)
''', dados_usuarios)
conn.commit()