Awesome-omni-skill sql

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.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/sql-neversight" ~/.claude/skills/diegosouzapw-awesome-omni-skill-sql-1ce28a && rm -rf "$T"
manifest: skills/development/sql-neversight/SKILL.md
source content

SQL

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

SQLite Best Practices

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:
    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;