Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Master relational databases with SQL. Schema design, queries, performance, migrations for PostgreSQL, MySQL, SQLite, SQL Server.
Master relational databases with SQL. Schema design, queries, performance, migrations for PostgreSQL, MySQL, SQLite, SQL Server.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Master relational databases from the command line. Covers SQLite, PostgreSQL, MySQL, and SQL Server with battle-tested patterns for schema design, querying, migrations, and operations.
Working with relational databases—designing schemas, writing queries, building migrations, optimizing performance, or managing backups. Applies to SQLite, PostgreSQL, MySQL, and SQL Server.
TopicFileQuery patternspatterns.mdSchema designschemas.mdOperationsoperations.md
Use CaseDatabaseWhyLocal/embeddedSQLiteZero setup, single fileGeneral productionPostgreSQLBest standards, JSONB, extensionsLegacy/hostingMySQLWide hosting supportEnterprise/.NETSQL ServerWindows integration
# ❌ NEVER cursor.execute(f"SELECT * FROM users WHERE id = {user_id}") # ✅ ALWAYS cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))
Any column in WHERE, JOIN ON, or ORDER BY on large tables needs an index.
BEGIN; UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2; COMMIT;
-- ✅ Faster (stops at first match) SELECT * FROM orders o WHERE EXISTS ( SELECT 1 FROM users u WHERE u.id = o.user_id AND u.active );
sqlite3 mydb.sqlite # Create/open sqlite3 mydb.sqlite "SELECT * FROM users;" # Query sqlite3 -header -csv mydb.sqlite "SELECT *..." > out.csv sqlite3 mydb.sqlite "PRAGMA journal_mode=WAL;" # Better concurrency
psql -h localhost -U myuser -d mydb # Connect psql -c "SELECT NOW();" mydb # Query psql -f migration.sql mydb # Run file \dt \d+ users \di+ # List tables/indexes
mysql -h localhost -u root -p mydb # Connect mysql -e "SELECT NOW();" mydb # Query
sqlcmd -S localhost -U myuser -d mydb # Connect sqlcmd -Q "SELECT GETDATE()" # Query sqlcmd -S localhost -d mydb -E # Windows auth
NOT IN (subquery) returns empty if subquery has NULL → use NOT EXISTS NULL = NULL is NULL, not true → use IS NULL COUNT(column) excludes NULLs, COUNT(*) counts all
Functions on columns → WHERE YEAR(date) = 2024 scans full table Type conversion → WHERE varchar_col = 123 skips index LIKE '%term' can't use index → only LIKE 'term%' works Composite (a, b) won't help filtering only on b
LEFT JOIN with WHERE on right table becomes INNER JOIN Missing JOIN condition = Cartesian product Multiple LEFT JOINs can multiply rows
-- PostgreSQL EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM orders WHERE user_id = 5; -- SQLite EXPLAIN QUERY PLAN SELECT * FROM orders WHERE user_id = 5; Red flags: Seq Scan on large tables → needs index Rows Removed by Filter high → index doesn't cover filter Actual vs estimated rows differ → run ANALYZE tablename;
-- Composite index (equality first, range last) CREATE INDEX idx_orders ON orders(user_id, status); -- Covering index (avoids table lookup) CREATE INDEX idx_orders ON orders(user_id) INCLUDE (total); -- Partial index (smaller, faster) CREATE INDEX idx_pending ON orders(user_id) WHERE status = 'pending';
FeaturePostgreSQLMySQLSQLiteSQL ServerLIMITLIMIT nLIMIT nLIMIT nTOP nUPSERTON CONFLICTON DUPLICATE KEYON CONFLICTMERGEBooleantrue/false1/01/01/0Concat||CONCAT()||+
Install with clawhub install <slug> if user confirms: prisma — Node.js ORM sqlite — SQLite-specific patterns analytics — data analysis queries
If useful: clawhub star sql Stay updated: clawhub sync
Data access, storage, extraction, analysis, reporting, and insight generation.
Largest current source with strong distribution and engagement signals.