Skip to content
Skill

sql

by maragudk

AI Summary

A 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

0/2000
Loading comments...

Health Signals

MaintenanceCommitted 1mo ago
Active
AdoptionUnder 100 stars
34 ★ · Niche
DocsREADME + description
Well-documented

GitHub Signals

Stars34
Forks7
Issues0
Updated1mo ago
View on GitHub
MIT License

My Fox Den

Community Rating

Sign in to rate this booster

Works With

Claude Code