無料でSQLを試せるサイトのそれぞれ特徴や使用可能なデータベースなどのまとめ

無料かつSignin不要で、ブラウザ上でSQLを試せるサイトには以下があります。
* [DB Fiddle](https://www.db-fiddle.com/)
* [SQL Fiddle](http://sqlfiddle.com/)
* [db<>fiddle](https://dbfiddle.uk/)

# 使用可能なデータベース
使用できるデータベースは以下のとおりです。（2022年10月現在、表記はサイトに従う）

## [DB Fiddle](https://www.db-fiddle.com/)
* MySQL 8.0 / 5.7 / 5.6 / 5.5
* PostgreSQL 15 (Beta) / 14 / 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4
* SQLite 3.39 / 3.37 / 3.30 / 3.26

## [SQL Fiddle](http://sqlfiddle.com/)
* MySQL 5.6 / 5.7 / 5.5 / 5.1
* Oracle 11g R2
* PostgreSQL 9.6 / 9.3 / 9.2 / 9.1 / 8.4 / 8.3
* SQLite (WebSQL)
* SQLite (SQL.js)
* MS SQL Server 2017 / 2014 / 2008

## [db<>fiddle](https://dbfiddle.uk/)
* Db2 Developer-C 11.1
* Firebird 3.0 / 4.0
* MariaDB 10.2 / 10.3 / 10.4 / 10.5 / 10.6 / 10.7 / 10.8 / 10.9
* MySQL 5.5 / 5.6 / 5.7 / 8.0
* Node.js 18
* Oracle 11g Release 2 / 18c / 21c
* Postgres 8.4 / 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 Beta
* SQLite 3.8 / 3.16 / 3.27 / 3.39
* SQL Server 2012 / 2014 / 2016 / 2017 / 2017 (Linux) / 2019 / 2019 (Linux)
* YugabyteDB 2.6 / 2.8

# サイトの特徴や使い方
それぞれのサイトの特徴や使い方について説明します。

## [DB Fiddle](https://www.db-fiddle.com/)
* 定義のための「Schema SQL」とクエリのための「Query SQL」が左右の入力フィールドに分かれている。
* 「Save」で初めて保存される。
  * URLは識別のためのハッシュキーとバージョン0がついたものになる。
  * 「Update」するとバージョン番号が増えて保存される。
  * 「Save」や「Update」したものは削除はできない。
  * URLのバージョン番号を変更すれば、他のバージョンを容易に参照できる。
  * 歴史を見られたくない場合は「Fork」か、新規に貼り付け直してバージョン0にする。
* テキスト（カンマ区切りや縦棒区切りの見出しとデータ）からDDL文を「Text to DDL」で生成できる。[画面例](#dbfiddle-texttoddl)
* 「Copy as Markdown」で「SQL」「実行結果」「リンク」を含むMarkdown形式のテキストがクリップボードにコピーされる。
* 対応しているデータベースは3種類で多くはない。

## [SQL Fiddle](http://sqlfiddle.com/)
* 定義のための「Build Schema」とクエリのための「Run SQL」が左右の入力フィールドに分かれている。
* 「Build Schema」で事前に定義を完了させる。URLに識別のためのハッシュキーがつく。
  * 改行や空白も含め、同じ内容は同じハッシュキー(URL)になる。
  * 同じ内容で新規に作り直す場合は、改行や空白を変更する。
* 「Run SQL」するたびにバージョンが1から自動インクリメントされる。
  * 改行や空白も含め、同じ内容は同じバージョン(URL)になる。
* テキスト（カンマ区切りや縦棒区切りの見出しとデータ）からDDL文を「Text to DDL」で生成できる。[画面例](#sqlfiddle-texttoddl)
  * 「Example Input」のリンクにあるとおり「[DDLBuilder](https://github.com/jakefeasel/DDLBuilder/blob/master/ddl_builder/qunit/fixture.html)」で解析してる。
* 実行結果の「View Execution Plan」で実行計画を見ることができる。
* 実行結果の「link」は複数の結果の1つに青い枠がつきフォーカスされる。URLに実行結果の番号が追加される。
* 対応しているデータベースは5種類。
  * MS SQL Serverは重宝する。
  * バージョンを気にしなければOracle 11g R2もある。

## [db<>fiddle](https://dbfiddle.uk/)
* トップ画面はデータベースごとの作成数の表が表示される。
  * どのリンクを選んでもSQL実行画面でプルダウンから変更できる。
* 左がSQLの入力フィールド、右が実行結果となっている。
  * 1つの入力フィールドに複数のSQL(定義文、クエリの両方)を記述することも可能。
  * 左の三本線をクリックしてツールバーを展開し「split batch」をクリックすると、SQLが1つずつ入力フィールドに分割される。[画面例](#db-fiddle-splitbatch)
    * SQL Serverで分割するときの区切り文字は「go」。「;」は実行時は使用できるが、分割時はダメ。
* 対応しているデータベースが豊富。
  * Oracleは重宝するが、主要な12c/19cはなぜかない。
  * SQL Serverの各バージョンは重宝する。

# 画面例

## [DB Fiddle](https://www.db-fiddle.com/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842035/a411a22c-ab55-97ac-3c19-17524113e1f0.png)

<a name="dbfiddle-texttoddl">Text To DDLの画面例</a>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842035/dca905fe-ed5b-6a18-bf88-a2e6cae68de4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842035/8d8e7fc7-dc49-1893-e673-77f70d933ba8.png)

## [SQL Fiddle](http://sqlfiddle.com/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842035/42d5f60c-eeeb-df80-0bae-6e8d69b8e00e.png)

<a name="sqlfiddle-texttoddl">Text To DDLの画面例</a>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842035/06f6e6f1-740f-f584-f8b3-364e7e0ce153.png)

## [db<>fiddle](https://dbfiddle.uk/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842035/c3809771-6cd0-b4eb-6c33-131b06f997aa.png)

<a name="db-fiddle-splitbatch">split batchの画面例</a>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842035/54feb20e-ca6d-4518-24b1-1eadc061fd41.png)
↓展開
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842035/250e571e-d23d-0d59-66ba-49d718fcccba.png)