O que é SQLite?

O que é SQLite?

O SQLite é um mecanismo de banco de dados relacional que trabalha com a linguagem SQL, mas com uma diferença enorme em relação a sistemas como MySQL ou PostgreSQL: ele não é um servidor. O SQLite é uma biblioteca escrita em linguagem C que fica embutida dentro do próprio aplicativo e armazena o banco de dados inteiro em um único arquivo. Não há serviço para instalar, porta para configurar nem administrador para vigiar: o programa que usa o SQLite abre esse arquivo e trabalha diretamente com ele, da mesma forma que leria um documento ou um arquivo de configuração. Essa simplicidade explica sua popularidade. O SQLite foi lançado no ano 2000 e desde então se tornou, provavelmente, o mecanismo de banco de dados mais difundido do planeta: estima-se que haja bilhões de cópias em uso, muitas delas invisíveis para o usuário. Sempre que um celular salva uma mensagem, que um navegador lembra seu histórico ou que um programa de computador conserva seus dados, é bem possível que, por trás, um arquivo SQLite esteja trabalhando em silêncio.

Uma biblioteca embutida, não um servidor de banco de dados

Para entender o que é o SQLite, vale compará-lo com a arquitetura clássica cliente-servidor. No MySQL ou no PostgreSQL existe um processo servidor que fica ouvindo as requisições, e os aplicativos se conectam a ele pela rede ou por meio de um socket local. Esse servidor precisa ser instalado, configurado, protegido e mantido atualizado. O SQLite elimina toda essa camada: o mecanismo é uma biblioteca ligada ao seu programa que executa o SQL diretamente sobre o arquivo do banco. O aplicativo é, ao mesmo tempo, cliente e servidor. Por isso se diz que o SQLite é autossuficiente (self-contained), sem servidor (serverless) e de configuração zero. Ele não exige administrador, não consome memória nem CPU em segundo plano quando está ocioso e funciona igual no Windows, no Linux, no macOS, no Android ou no iOS. Além disso, o arquivo do banco é portátil entre plataformas: você pode copiá-lo, enviá-lo por e-mail ou fazer backup com um simples comando de cópia.

Principais características do SQLite

Apesar do tamanho reduzido, o SQLite é um mecanismo completo. Suas características mais marcantes são:
  • Transações ACID: as operações são atômicas, consistentes, isoladas e duráveis. Se uma transação for interrompida no meio, o banco nunca fica pela metade.
  • SQL padrão: implementa a maior parte da linguagem SQL, incluindo consultas complexas, subconsultas, junções (JOIN), índices, visões, gatilhos (triggers), funções de janela e expressões de tabela comuns (CTE).
  • Um único arquivo: toda a informação, incluindo tabelas, índices, visões e registros, mora em um único arquivo .sqlite ou .db.
  • Sem configuração: não há servidor para iniciar, usuários de banco para criar nem arquivos de configuração para editar.
  • Tipos dinâmicos: cada coluna aceita as classes de armazenamento INTEGER, REAL, TEXT, BLOB e NULL, com afinidade de tipos por coluna, o que oferece muita flexibilidade.
  • Confiabilidade comprovada: o projeto inclui uma suíte de testes com milhões de casos e suporta bancos de dados de até 281 terabytes.
  • Domínio público: o código do SQLite é de domínio público: pode ser usado, copiado, modificado e distribuído sem pagar licenças.
  • Multiplataforma: compila e funciona em praticamente qualquer sistema, do celular ao servidor.

Quando vale a pena usar o SQLite?

O SQLite brilha quando o banco de dados fica na mesma máquina do aplicativo e o número de gravações simultâneas é baixo ou moderado. É uma escolha excelente nesses cenários:
  • Aplicativos móveis: Android e iOS trazem o SQLite integrado; é o armazenamento nativo recomendado para aplicativos offline.
  • Sites pequenos e médios: se um site recebe alguns milhares de visitas por dia, o SQLite dá conta sem esforço e sem administrar um servidor de banco. Aliás, é o mecanismo padrão de muitos projetos pequenos escritos em PHP e Python.
  • Aplicativos de desktop: programas de faturamento, estoque, contabilidade e gestão local guardam seus dados em um arquivo SQLite, sem precisar instalar mais nada.
  • Protótipos e desenvolvimento: começar com o SQLite é instantâneo; depois dá para migrar para um mecanismo servidor se o produto crescer.
  • Dispositivos embarcados e internet das coisas: roteadores, televisores, consoles, drones e equipamentos industriais usam o SQLite pelo tamanho e pelo consumo mínimos.
  • Análise e conversão de dados: como é um único arquivo portátil, o SQLite é muito usado para consultar e transformar dados (CSV, JSON) sem montar infraestrutura.

Quando NÃO usar o SQLite

Para ser honesto: o SQLite não é a ferramenta certa para tudo. Vale escolher PostgreSQL, MySQL ou SQL Server quando:
  • Há muitas gravações simultâneas: o SQLite permite vários leitores ao mesmo tempo, mas somente um escritor por vez. Com um volume alto de inserções e atualizações em paralelo, o bloqueio de escrita vira gargalo.
  • Muitos usuários simultâneos pela rede: os mecanismos cliente-servidor são feitos para atender centenas ou milhares de conexões de máquinas diferentes, com controle de acesso por usuário.
  • O banco fica grande demais ou exige alta disponibilidade: os servidores de banco oferecem réplicas, balanceamento de carga e backups a quente que o SQLite não fornece nativamente.
  • Cliente e servidor estão em máquinas diferentes: o SQLite não conversa pela rede; cada computador teria sua própria cópia do arquivo e os dados ficariam dessincronizados.
Como regra prática: se o aplicativo é local e o tráfego de gravação é moderado, o SQLite costuma bastar e simplifica tudo. Se você espera um aplicativo web multiusuário com alta concorrência, considere desde o início um mecanismo cliente-servidor.

SQLite vs MySQL: diferenças principais

Uma das dúvidas mais frequentes é como o SQLite se compara ao MySQL. São mecanismos SQL, mas com filosofias opostas:
AspectoSQLiteMySQL
ArquiteturaBiblioteca embutida, sem servidorCliente-servidor com processo próprio
ArmazenamentoUm único arquivo portátilDiretório de dados gerenciado pelo servidor
ConfiguraçãoZero: funciona na horaInstalação, configuração e administração
Gravação simultâneaUm escritor por vezVários escritores ao mesmo tempo
Acesso pela redeNão: uso localSim: muitos clientes remotos
Usuários e permissõesNão gerencia usuáriosGestão completa de usuários e privilégios
Melhor paraMóvel, desktop, sites pequenos e médiosWeb com muitos usuários e alta concorrência
LicençaDomínio públicoGPL e licença comercial
BackupCopiar o arquivoFerramentas do servidor (mysqldump, réplicas)
Em resumo: não é uma disputa entre melhor e pior, e sim entre ambientes. Para um banco embutido dentro de um aplicativo, o SQLite é imbatível; para um portal com milhares de usuários conectados ao mesmo tempo, um servidor de banco é mais adequado.

Como abrir um arquivo .sqlite ou .db

Abrir um banco SQLite é simples porque, no fundo, ele é um arquivo normal. Estes são os caminhos mais comuns:
  • Pelo terminal (sqlite3): o cliente oficial vem no pacote de ferramentas de linha de comando do site do SQLite. O uso é assim: sqlite3 estoque.db. Dentro dele, o comando .tables lista as tabelas, .schema mostra a estrutura, e .headers on junto com .mode column melhoram a leitura dos resultados.
  • Com Python: o módulo sqlite3 já vem incluído no Python, então basta escrever import sqlite3 e conectar ao banco para executar consultas.
  • Com um gerenciador gráfico: programas gratuitos e multiplataforma como o DB Browser for SQLite permitem explorar tabelas, executar consultas e exportar dados sem escrever uma linha de código.
  • Com outras linguagens: PHP (PDO SQLite), Java, C#, Go, Node.js e Rust têm bibliotecas oficiais ou muito estáveis para o SQLite.
Uma consulta típica no terminal se parece com isto: SELECT * FROM produtos; e devolve todas as linhas da tabela. Se o arquivo não existe e o programa tenta abri-lo para escrita, o SQLite o cria vazio: por isso ele também é tão usado para gerar bancos de dados do zero em testes.

Exemplos reais de uso do SQLite

O SQLite está muito mais perto do que parece. Alguns exemplos de uso real:
  • Navegadores web: Chrome, Firefox e Safari guardam histórico, favoritos, cookies e dados de extensões em arquivos SQLite.
  • Celulares Android: o sistema operacional traz o SQLite como armazenamento nativo: contatos, mensagens e quase todos os aplicativos o usam.
  • iOS: no iPhone e no iPad, o SQLite também é o banco de dados embutido padrão dos aplicativos.
  • Sistemas locais de estoque e faturamento: programas de gestão para pequenas empresas costumam guardar produtos, estoque e vendas em SQLite, o que poupa o cliente de instalar um servidor de banco de dados.
  • Dispositivos embarcados: roteadores, televisores, consoles de videogame e equipamentos médicos o incorporam para armazenar configuração e registros.
Se você tem um depósito ou um comércio e procura um sistema de estoque simples, rápido e que não dependa de um servidor externo, saiba que ferramentas como o Kardex Tauro aproveitam exatamente essa tecnologia para guardar seus produtos e movimentações em um arquivo local, com toda a confiabilidade do SQLite e sem complicações de instalação.
Chatea por WhatsApp