🗄️

[DB]<DB Fiddle>SQLをWEBブラウザで簡単に学習(SELECT/INSERT/UPDATE/DELETE)

2022/10/02に公開

◆DB Fiddleとは?

「SQL Fiddle」とは、
Web上でSQLを手軽に実行することができるサイトです。

Fddleの英語の意味としては、「いい加減に扱う、改ざんする」などです。
なので、DBを手軽にいじくると言ったような意味合いだと思われます。

いちいち実行環境を構築をする必要がありませんので、
ちょっとSQL文を試したい時や、低コストにサクッと学習したい時などに便利です。

DB Fiddle(サイトはこちら)

◆DB Fiddleの使い方

ページを開くと、
以下のようなレイアウトとなっています。

主に使用する箇所は、以下の3点です。

①Schema SQL エリア

ページの左側のエリア。
テーブルの作成を行うSQL文を記述します

②Query SQL エリア

ページ右側のエリア。
SQLの命令文(SELECT,INSERT,UPDATE,DELETEなど)を記述します

③RUN(実行)ボタン

画面の左上あたりにあるボタン。
こちらを押すと、SQLが実行されます。
Query SQL エリアで記述した命令があれば、
実行結果が画面の下部にエリアが表示されます。

試しに、テーブルを作成し、
SELECT文を実行してみると以下のようになります。

◆テーブル作成

サンプルを貼りますので、
<Schema SQL エリア>に貼ってください。

<商品テーブル>と<注文明細テーブル>
の二つを作成しています。

<商品テーブル>には、
「商品名」には"乾電池"・"イヤホン"・"USBケーブル"・"マウス"の4つのデータがあります。
それぞれのデータは、「商品名」「商品番号」「単価」のデータ項目を持っています。

<注文明細テーブル>には、
「注文番号」「商品番号」「数量」「販売単価」のデータ項目があります。
そして、<注文明細テーブル>の「商品番号」は、
<商品テーブル>の「商品番号」と対応していることとします。

Schema SQL(サンプル)
create table 商品
(
    商品番号 int  null,
    商品名  text null,
    単価   int  null
) DEFAULT CHARSET=utf8;

INSERT INTO 商品 (商品番号, 商品名, 単価) VALUES (1, '乾電池', 100);
INSERT INTO 商品 (商品番号, 商品名, 単価) VALUES (2, 'イヤホン', 120);
INSERT INTO 商品 (商品番号, 商品名, 単価) VALUES (3, 'USBケーブル', 150);
INSERT INTO 商品 (商品番号, 商品名, 単価) VALUES (4, 'マウス', 200);

create table 注文明細
(
    注文番号 int null,
    商品番号 int null,
    数量 int null,
    販売単価 int null
) DEFAULT CHARSET=utf8;

INSERT INTO 注文明細 (注文番号, 商品番号, 数量, 販売単価) VALUES (1, 1, 3, 100);
INSERT INTO 注文明細 (注文番号, 商品番号, 数量, 販売単価) VALUES (1, 2, 10, 50);
INSERT INTO 注文明細 (注文番号, 商品番号, 数量, 販売単価) VALUES (2, 1, 10, 120);
INSERT INTO 注文明細 (注文番号, 商品番号, 数量, 販売単価) VALUES (3, 4, 1, 200);
INSERT INTO 注文明細 (注文番号, 商品番号, 数量, 販売単価) VALUES (4, 1, 5, 160);
INSERT INTO 注文明細 (注文番号, 商品番号, 数量, 販売単価) VALUES (5, 2, 8, 65);

この時点で、RUN(実行)ボタンをおすと、
テーブルは作成されますが、
<Query SQL エリア>に記述はしてないため表示はされません。

◆クエリSQLの実行

サンプルを貼りますので、
<Query SQL エリア>に貼ってください。

また、実行するたびに
テーブルのデータは<Schema SQL エリア>で作成しなおすため、
INSERTしてもデータはリセットされる点はご留意ください。

①SELECT

SELECT文は、
テーブルのデータを参照します。

SELECT文(サンプル)
SELECT * 
FROM 注文明細
;

<注文明細>から<全項目(*で指定)>を参照します。
以下のように表示されます。

注文番号 商品番号 数量 販売単価
1 1 3 100
1 2 10 50
2 1 10 120
3 4 1 200
4 1 5 160
5 2 8 65

①のINSERTは、あくまで参照するだけなのでデータの編集は行えません。
②③④の操作でデータの編集を行います。
ただ、編集結果を確認するために、
SELECT文は以下の命令でもセットで実行していきます。

②INSERT文

INSET文は、
テーブルにデータを追加します。

INSERT文(サンプル)
INSERT INTO 注文明細(注文番号 , 商品番号 , 数量 , 販売単価)
VALUES (9,3,5,100)
;

SELECT * 
FROM 注文明細
;

・注文番号 = 9
・商品番号 = 3
・数量 = 5
・販売単価 = 100
のデータ行がテーブルに追加されます。

注文番号 商品番号 数量 販売単価
1 1 3 100
1 2 10 50
2 1 10 120
3 4 1 200
4 1 5 160
5 2 8 65
9 3 5 100

③UPDATE文

UPDATE文は、
テーブルに既にあるデータを更新します

UPDATE文(サンプル)
UPDATE 注文明細
SET 数量 = 0
WHERE 商品番号 = 1
;

SELECT * 
FROM 注文明細
;

<商品番号>が"1"のデータの<数量>が"0"に更新されています。

注文番号 商品番号 数量 販売単価
1 1 0 100
1 2 10 50
2 1 0 120
3 4 1 200
4 1 0 160
5 2 8 65

④DELETE文

DELETE文は、
テーブルに既にあるデータを削除します。

DELETE文(サンプル)
DELETE
FROM 注文明細
WHERE 商品番号 = 1
;

SELECT * 
FROM 注文明細
;

注文明細テーブルのうち、
<商品番号>が"1"のデータ行が削除されています。

注文番号 商品番号 数量 販売単価
1 2 10 50
3 4 1 200
5 2 8 65
1 2 10 50

◆最後に

いかがだったでしょうか。

DB Fiddleを使用することによって、
低コストでサクッと学習できます。
DBを構築する手間がかかりませんから。

さらに、SQL構文を学びたい方は、
合わせて以下の記事もご覧ください。
https://zenn.dev/nakohama/articles/a9eecadb8f72d8

DBの構築については、
比較的簡単に構築できる種類としてはHSQLDBがあります。

もし、ご興味がありましたら、
以下の記事を参考にDBを構築するのも良いでしょう。

https://zenn.dev/nakohama/articles/2d079c24348a3a

ここまで、
ご覧いただきありがとうございました。

Discussion