Database & Schema Hub
Utilities for database developers and administrators. Test SQL queries in-browser, format complex SQL statements, and generate unique database identifiers.
Three classes of database utility every developer needs
Database work has three recurring micro-tasks that don't justify firing up a full IDE: testing a query before it touches production, formatting complex SQL for code review, and generating unique identifiers for new records. This hub bundles browser-based versions of each.
The SQL runner uses an in-browser SQLite instance (via WebAssembly) so you can validate JOIN logic, window functions, and aggregation queries without connecting to a real database. It's a sandbox, irreversible mistakes cost nothing here. The SQL formatter turns a 200-character one-liner into a reviewable, indented query. This matters more than it sounds: reviewers can't catch logic bugs in unformatted SQL, and PRs with formatted queries have measurably fewer review round-trips.
For unique identifiers, the choice in 2026 is between UUID v4, UUID v7, and NanoID. UUID v7 (time-prefixed) is preferred for new schemas, it gives B-tree-friendly ordering while preserving uniqueness across distributed systems. NanoID (~21 chars, URL-safe) is shorter and better for public-facing IDs like share links. The generators here use crypto.getRandomValues() for cryptographically secure output.
The UUID v4 performance trap: using random UUIDs as primary keys in a write-heavy table causes B-tree page splits that degrade insert performance over time. UUID v7's time-prefix keeps inserts sequential. If you're starting a new table, default to v7.
Featured Tools
All Database & Schema Hub Tools
MongoDB Query Builder
Visually build MongoDB queries and aggregation pipelines.
Matrix Calculator
Perform linear algebra operations on 2x2 and 3x3 matrices.
Quick Summary
Database work needs three classes of utility: a SQL playground to validate queries before they touch production, a formatter to make complex SQL reviewable, and ID generators (UUID v4/v7, NanoID) for distributed primary keys. This hub bundles them, no signups, no server round-trips.
Key Takeaways
- Format SQL before code review, unformatted multi-join queries hide bugs that prettified ones surface immediately.
- UUID v7 (time-ordered) is preferred over v4 for new schemas, better B-tree locality, no enumeration leak.
- NanoID (~21 chars, URL-safe) is shorter than UUID and great for public IDs like share links.
- Test SQL against an in-browser SQLite (`sql.js`) before pasting into a production console, irreversible mistakes cost hours.
- Always parameterize queries, string-concat SQL builds in 'just one place' are how SQL injection ships.
When to use it
- Drafting and validating complex JOIN queries before running them against production.
- Generating bulk UUIDs for seed data or test fixtures.
- Formatting legacy SQL stored as one-liners in code comments or migration files.
- Choosing between UUID v4, UUID v7, and NanoID for a new table's primary key.
Common Mistakes
- Using UUID v4 as a primary key in a write-heavy table, random distribution kills B-tree insert performance.
- Storing UUIDs as VARCHAR(36) when the DB has a native UUID type, wastes space, slower comparisons.
- Trusting auto-increment integers as 'opaque', they leak total record count and enable enumeration attacks.
- Skipping SQL formatting in PRs, reviewers can't catch logic bugs in a one-line 200-character query.
Database & Schema Hub, Frequently Asked
UUID v4 vs v7, which should I use?
v7 for new systems, time-prefixed bits give B-tree-friendly ordering while preserving uniqueness. v4 is fine for low-volume cases or where time-leakage is undesired. Either is far better than auto-increment for distributed systems.
How long should a UUID column be?
16 bytes as a native UUID/BINARY(16), 36 chars as VARCHAR(36) (with hyphens), 32 chars as CHAR(32) (without). Native is 2.25× smaller and faster, use it whenever the DB supports it.
Are these SQL tools sandboxed?
Yes, the SQL runner uses an in-browser SQLite via WebAssembly. Your queries execute locally; no data leaves the page. Useful for query prototyping; not a substitute for testing against your actual database.
Tool Comparisons
In-Depth Tutorials
- Debugging Hallucinated SQL: A Developer’s Guide to Database Sanity
- SQL vs. NoSQL in 2024: Why the Best Database is Both
- SQL Window Functions: Calculating Running Totals and RanksStop writing complex subqueries. Learn how to use SQL Window Functions (OVER, PARTITION BY, RANK) to perform complex analysis directly in your database.
- UUID vs ULID vs NanoID vs Snowflake: Picking an ID Strategy in 2026
Troubleshooting & Errors
- 40P01: PostgreSQL Deadlock DetectedThe current transaction was chosen as a deadlock victim and rolled back.
- PoolError: Database Connection Pool ExhaustedAll connections in the database connection pool are in use and no new connections can be acquired.
- 23505: PostgreSQL Unique Constraint ViolationAn INSERT or UPDATE attempted to create a duplicate value in a column with a UNIQUE constraint.
- 23503: PostgreSQL Foreign Key ViolationAn INSERT or UPDATE references a value that does not exist in the referenced table.
- ECONNREFUSED: Redis Connection ErrorThe application cannot connect to the Redis server.