sqlite

📁 g1joshi/agent-skills 📅 3 days ago
3
总安装量
3
周安装量
#54739
全站排名
安装命令
npx skills add https://github.com/g1joshi/agent-skills --skill sqlite

Agent 安装分布

amp 3
gemini-cli 3
claude-code 3
github-copilot 3
kimi-cli 3

Skill 文档

SQLite

SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. It reads and writes directly to ordinary disk files.

When to Use

  • Mobile Apps: The standard for iOS/Android local storage.
  • Edge/IoT: Low memory footprint.
  • App File Format: Instead of a custom config.xml, just use a SQLite db file.
  • Small/Medium Web Apps: With WAL mode, it handles surprising concurrency (PocketBase, Castopod).

Quick Start

-- Enable WAL mode for concurrency
PRAGMA journal_mode=WAL;

-- Create table
CREATE TABLE contacts (
	contact_id INTEGER PRIMARY KEY,
	first_name TEXT NOT NULL,
	last_name TEXT NOT NULL,
	email TEXT NOT NULL UNIQUE,
	phone TEXT NOT NULL UNIQUE
);

Core Concepts

Serverless

There is no “connection” in the TCP sense. You just open the file.

Dynamic Typing

SQLite uses dynamic typing. A column declared INTEGER can actually store a string (though strict tables are now an option).

WAL Mode (Write-Ahead Logging)

Significantly improves concurrency. Allows multiple readers and one writer simultaneously.

Best Practices (2025)

Do:

  • Use PRAGMA foreign_keys = ON: They are off by default.
  • Use JSONB (SQLite 3.45+): Store JSON as efficient binary blobs (jsonb()) for 3x faster processing.
  • Use STRICT Tables: CREATE TABLE t (...) STRICT enforces types like a traditional DB.

Don’t:

  • Don’t use over NFS: File locking on network shares is buggy. Keep the DB file on local disk.
  • Don’t use for high-write webservices: If you have hundreds of concurrent writes, move to Postgres.

References