システム開発でSQLを書くのですが、1:nとかn:nの結合を複数しながらGROUP BYをかけたりと、結構こねくり回したい時があります。
「あれ? このデータ構造で集計できたっけ?」とか悩むんですよね。
その時に助かるのが SQL Fiddle です。
ブラウザ上でSQLの動作確認ができます。
2021年06月現在、対応しているRDBMSは次のとおりです。
- MySQL 5.6
- Oracle 11g R2
- PostgreSQL 9.6
- PostgreSQL 9.3
- SQLite(WebSQL)
- SQLite(SQL.js)
- MS SQL Server 2017
使い方は簡単です。
- CREATE TABLE文を書いて左上のペインに貼り、Build Schema をクリックします。
- 成功すると、右上のペインが白くなるので、そこにSQL文を書いて Run SQL をクリックします。
- 結果が下のペインに出てきます。
Build Schema が面倒くさい人は、メニューの「Text to DDL」を使いましょう。
こんな感じのテキストを作って Text to DDL に貼れば、イイ感じのCREATE文とINSERT文を自動的に作ってくれます。
item | category | name | price | stock 001 | 野菜 | キャベツ | 100 | 20 002 | 野菜 | キュウリ | 20 | 80 003 | 果物 | リンゴ | 130 | 40 004 | 果物 | キウイ | 130 | 30 005 | 野菜 | かぼちゃ | 300 | 15 006 | 野菜 | にんじん | 40 | 50 007 | 果物 | バナナ | 300 | 25 008 | 果物 | ぶどう | 400 | 10 009 | 菓子 | クッキー | 150 | 35 010 | 菓子 | プリン | 200 | 5 011 | 菓子 | ケーキ | 200 | 10
上のデータから、次のようなDDLを生成してくれます。(SQL Serverの場合)
CREATE TABLE TableA ([item] int, [category] varchar(2), [name] varchar(4), [price] int, [stock] int) ; INSERT INTO TableA ([item], [category], [name], [price], [stock]) VALUES (001, '野菜', 'キャベツ', 100, 20), (002, '野菜', 'キュウリ', 20, 80), (003, '果物', 'リンゴ', 130, 40), (004, '果物', 'キウイ', 130, 30), (005, '野菜', 'かぼちゃ', 300, 15), (006, '野菜', 'にんじん', 40, 50), (007, '果物', 'バナナ', 300, 25), (008, '果物', 'ぶどう', 400, 10), (009, '菓子', 'クッキー', 150, 35), (010, '菓子', 'プリン', 200, 5), (011, '菓子', 'ケーキ', 200, 10) ;
複数テーブル必要なときは、Text to DDL を繰り返して追加して、最後に Build Schema を実行すればOKです。
ちょっとしたSQL確認のためにDB環境を作るのは面倒だったので、SQL Fiddle は大活躍しています。