# db<>fiddle Run SQL against a real database engine and get a permanent link to the result. Free, no account needed. Everything submitted is [CC0](https://creativecommons.org/publicdomain/zero/1.0/legalcode). ## Reading a fiddle Any fiddle URL returns markdown instead of HTML if you ask for it: GET https://dbfiddle.uk/{code} Accept: text/markdown You get the SQL and its results batch by batch, ready to paste into an answer. Batches hidden in the UI are included. Without the header you get the interactive page. ## Running SQL POST https://dbfiddle.uk/run?engine={engine}&version={version} Content-Type: application/json ["create table t (id int);", "insert into t values (1);", "select * from t;"] Each array element is one batch. Batches run in order against the same fresh database, so later ones see whatever earlier ones created. Responds `200` with the new fiddle's code as plain text — the fiddle is then at `https://dbfiddle.uk/{code}`, which you can read as markdown using the header above. Failures respond with `{"message": "..."}`. The database starts empty. To start from a pre-loaded schema instead, add the optional `&sample={name}`; the engine list below shows which versions offer one. ## Linking a fiddle for a person to read ?hide={n} bitmask, most significant bit = first batch — collapses setup batches ## Engines and versions Generated live; only versions that can currently be run are listed. Brackets show the optional sample schemas a version offers, if any. db2: 11.1 11.5 12.1 duckdb: 1.4 firebird: 3.0 4.0 5.0 mariadb: 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.11 11.4 11.8 12.3 mysql: 5.5 5.6 5.7 8.0[sakila] 8.4 9.7 nodejs: 18 oracle: 11.2 18 21 23 23c 26 postgres: 8.4 9.3 9.4 9.5 9.6 10 11 12 13 14 15 16 17 18 19 sqlite: 3.27 3.39 3.45 3.53 sqlserver: 2017l 2019l 2022[adventureworks] 2025[adventureworks] timescaledb: 2.11 2.14 2.28 yugabytedb: 2.6 2.8 2.18 2024.2 2025.2 ## Notes Every run executes on a real disposable VM, so please don't poll or loop. If you use a fiddle's output, linking it lets the reader re-run and change it.