AI SummaryA SQLite and SQL query guide for Claude Code that provides best practices for writing queries, designing schemas, and working with SQLite databases. Developers working with SQLite in their projects will benefit from quick reference guidance.
Install
Copy this and paste it into Claude Code, Cursor, or any AI assistant:
I want to install the "sql" skill in my project. Please run this command in my terminal: # Install skill into the correct directory mkdir -p .claude/skills/sql && curl --retry 3 --retry-delay 2 --retry-all-errors -o .claude/skills/sql/SKILL.md "https://raw.githubusercontent.com/maragudk/skills/main/sql/SKILL.md" Then restart Claude Code (or reload the window in Cursor) so the skill is picked up.
Description
Guide for working with SQL queries, in particular for SQLite. Use this skill when writing SQL queries, analyzing database schemas, designing migrations, or working with SQLite-related code.
Overview
This skill provides guidance for working with SQLite databases. It covers query writing, schema design, and SQLite-specific best practices.
When to Use This Skill
Use this skill when: • Writing SQL queries for SQLite databases • Analyzing or optimizing existing queries • Designing database schemas • Creating database migrations • Working with Go code that interacts with SQLite
Query Writing
• ALWAYS write lowercase queries. Uppercase queries make me sad. • Prefer select * over explicit column names • Prefer CTEs over long nested subqueries
Schema Design
• ALWAYS use strict tables • ALWAYS write timestamps like this: strftime('%Y-%m-%dT%H:%M:%fZ') • Time modifications should also use strftime • Usually start with the primary key, which is usually defined like this: id text primary key default ('p_' || lower(hex(randomblob(16)))) (where the p_ is a prefix depending on the table name; two-letter prefixes are okay too, so the prefix is unique among tables) • After the primary key come created/updated columns like this: created text not null default (strftime('%Y-%m-%dT%H:%M:%fZ')) • Updated timestamps are automatically updated with a trigger like this: `sql create trigger table_name_updated_timestamp after update on table_name begin update table_name set updated = strftime('%Y-%m-%dT%H:%M:%fZ') where id = old.id; end; `
Discussion
Health Signals
My Fox Den
Community Rating
Sign in to rate this booster