TL;DR
Qué: Un motor de base de datos SQL ligero, sin servidor y autónomo.
Por qué: Cero configuración, archivo único, perfecto para almacenamiento embebido y local.
Quick Start
Instalar:
macOS (preinstalado) / Linux:
brew install sqlite # macOS
sudo apt install sqlite3 # Ubuntu
Crear base de datos:
sqlite3 myapp.db
Crear tabla:
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
Insertar y consultar:
INSERT INTO users (name, email) VALUES ('John', '[email protected]');
SELECT * FROM users;
.exit
Cheatsheet
| Comando | Descripción |
|---|---|
sqlite3 file.db | Abrir/crear base de datos |
.tables | Listar tablas |
.schema table | Mostrar esquema de tabla |
.headers on | Mostrar encabezados de columnas |
.mode column | Modo de salida en columnas |
.exit | Salir de SQLite |
.dump | Exportar base de datos |
.read file.sql | Ejecutar archivo SQL |
Gotchas
Type affinity
-- SQLite uses dynamic typing
-- These are all valid:
CREATE TABLE test (
id INTEGER, -- INT, BIGINT, etc. → INTEGER
name TEXT, -- VARCHAR, CHAR, etc. → TEXT
price REAL, -- FLOAT, DOUBLE → REAL
data BLOB -- Binary data
);
Auto-increment
-- INTEGER PRIMARY KEY auto-increments automatically
CREATE TABLE users (
id INTEGER PRIMARY KEY, -- Auto-increments
name TEXT
);
-- Or explicitly
CREATE TABLE items (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT
);
Date/time functions
SELECT datetime('now');
SELECT date('now', '-1 day');
SELECT strftime('%Y-%m-%d', 'now');
CREATE TABLE events (
created_at DATETIME DEFAULT (datetime('now'))
);
Backup database
# Copy the file
cp myapp.db myapp_backup.db
# Or use .dump
sqlite3 myapp.db .dump > backup.sql
Use in code
# Python
import sqlite3
conn = sqlite3.connect('myapp.db')
cursor = conn.execute('SELECT * FROM users')
// Node.js with better-sqlite3
const Database = require('better-sqlite3');
const db = new Database('myapp.db');
const rows = db.prepare('SELECT * FROM users').all();
Next Steps
- SQLite Documentation - Documentación oficial
- SQLite Tutorial - Aprender SQLite
- DB Browser for SQLite - Herramienta GUI
- better-sqlite3 - Driver Node.js