SQLite em Python: Tutorial Completo para Iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com SQLite em Python: guia completo para iniciantes e desenvolvedores experientes

Trabalhar com bancos de dados é uma das tarefas mais importantes no desenvolvimento de aplicações. Se você precisa de uma solução leve e embutida, sem a necessidade de instalar servidores separados, o SQLite é a escolha ideal para seus projetos.

Com Python, graças ao módulo padrão sqlite3, você pode criar, modificar e gerenciar bancos de dados diretamente do seu código de forma rápida e eficiente. Neste artigo, você aprenderá como conectar-se ao SQLite, realizar operações de inserção (INSERT), atualização (UPDATE) e muito mais.

O que é SQLite e por que escolhê-lo

SQLite é um banco de dados relacional embutido que armazena todas as informações em um único arquivo. Ele não requer um servidor separado e é perfeito para prototipagem, projetos pequenos e aplicativos móveis.

O SQLite é amplamente utilizado em diversas áreas do desenvolvimento de software. Muitos aplicativos populares, incluindo navegadores, mensageiros e aplicativos móveis, usam SQLite para armazenamento local de dados.

Vantagens do SQLite

  • Não requer instalação de servidor
  • Alta velocidade de execução
  • Simplicidade de uso
  • Excelente integração com Python através do módulo sqlite3
  • Multiplataforma e portátil
  • Suporte a transações ACID
  • Consumo mínimo de recursos

Limitações do SQLite

  • Não suporta gravações simultâneas de vários usuários
  • Desempenho limitado ao trabalhar com grandes volumes de dados
  • Ausência de replicação embutida
  • Recursos limitados para aplicações complexas com múltiplos usuários

Conectando-se a um banco de dados SQLite em Python

Conexão básica

import sqlite3

# Conecta ao banco de dados (se o arquivo não existir, ele será criado)
conn = sqlite3.connect('meu_banco.db')

# Cria um cursor para executar consultas SQL
cursor = conn.cursor()

Conexão com banco de dados em memória

Para armazenamento temporário ou testes, você pode usar um banco de dados em memória:

conn = sqlite3.connect(':memory:')

Configuração de parâmetros de conexão

conn = sqlite3.connect('meu_banco.db', timeout=10)
conn.execute('PRAGMA foreign_keys = ON')  # Ativa chaves estrangeiras

Criando tabelas no SQLite

Criando uma tabela simples

cursor.execute('''
    CREATE TABLE IF NOT EXISTS usuarios (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        nome TEXT NOT NULL,
        idade INTEGER
    )
''')
conn.commit()

Criando uma tabela com restrições adicionais

cursor.execute('''
    CREATE TABLE IF NOT EXISTS produtos (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        nome TEXT NOT NULL UNIQUE,
        preco REAL CHECK(preco > 0),
        categoria TEXT DEFAULT 'sem_categoria',
        criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )
''')
conn.commit()

Criando índices para otimização

cursor.execute('''
    CREATE INDEX IF NOT EXISTS idx_usuarios_nome ON usuarios(nome)
''')
conn.commit()

Inserindo dados na tabela — INSERT no SQLite com Python

Inserindo um único registro

Uma das operações mais comuns é inserir dados em uma tabela SQLite:

cursor.execute('''
    INSERT INTO usuarios (nome, idade) VALUES (?, ?)
''', ('João', 30))
conn.commit()

O uso de placeholders (?) protege contra injeção de SQL e é a abordagem recomendada.

Inserção em massa de dados

usuarios = [('Ana                

Blogs

Book Recommendations