TL;DR
Quoi : Un moteur de base de données SQL léger, sans serveur et autonome.
Pourquoi : Zéro configuration, fichier unique, parfait pour le stockage embarqué et local.
Quick Start
Installer :
macOS (pré-installé) / Linux :
brew install sqlite # macOS
sudo apt install sqlite3 # Ubuntu
Créer une base de données :
sqlite3 myapp.db
Créer une table :
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
Insérer et interroger :
INSERT INTO users (name, email) VALUES ('John', '[email protected]');
SELECT * FROM users;
.exit
Cheatsheet
| Commande | Description |
|---|---|
sqlite3 file.db | Ouvrir/créer base de données |
.tables | Lister les tables |
.schema table | Afficher le schéma de table |
.headers on | Afficher les en-têtes de colonnes |
.mode column | Mode d’affichage en colonnes |
.exit | Quitter SQLite |
.dump | Exporter la base de données |
.read file.sql | Exécuter un fichier 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 - Documentation officielle
- SQLite Tutorial - Apprendre SQLite
- DB Browser for SQLite - Outil GUI
- better-sqlite3 - Driver Node.js