SQL練習プログラム

はじめに

SQLを実際に実行してみようと思うと、データベースシステムの準備、テーブルの作成、テストデータの作成が必要です。テーブルやテストデータは練習したいSQLによって内容が変わるので管理も大変です。

これらの手間を減らすプログラムを作ったので、もし良かったら使ってみてください。

ダウンロード

sqlpractice.zip

このzipファイルをダウンロードしてください。ダウンロードしたzipファイルは展開して使ってください。中には以下のファイルが入っています。

ファイル名 説明
Common.pm Perlライブラリ
run.bat プログラム起動バッチファイル
sample.txt サンプルSQL定義ファイル
sqlexec.exe プログラム本体
sqlexec.pl Perlスクリプト本体

動作確認はWindowsでしかしていません。Perlスクリプトなので文字コードや改行コードを調整すれば、Linux等の他のOSでも動くかもしれません。

使い方

コマンドプロンプトでrun.batを実行してください。第一引数にSQL定義ファイルを指定します。

run.bat sample.txt

run.batを実行するとsqlexec.exeを実行し結果をresult.htmlファイルに出力して、result.htmlをブラウザで開きます。

Perlがインストールされている環境をお使いの方で、自分でPerlスクリプトを実行したい方は以下のようにしてください。Linux等のWindowx以外のOSを利用している方もこちら。

perl sqlexec.pl sample.txt > result.html

実行結果をresult.htmlに出力しますので、result.htmlをブラウザで開いて結果を確認してください。

SQL定義ファイル

SQL定義ファイルはテキスト形式のファイルです。以下のような内容を書いてください。

[description]
JOINのサンプル

[table]
People
No number,Name varchar,Sex number
1,松井 咲,1
2,境 なぎさ,1
3,鈴木 昴,0
4,岩井 麻由子,1
5,岩佐 春樹,0

Sex
No number,Caption varchar
0,男
1,女

[sql]
SELECT
  p.No AS '番号',
  p.Name AS '氏名',
  s.Caption AS '性別'
FROM
  People AS p
    JOIN
  Sex AS s
    ON p.Sex = s.No
WHERE p.Sex = 0

[description]のところには内容の説明を書きます。

[table]のところにテーブルの定義とテストデータの内容を書きます。最初にテーブル名(例:People)を書きます。

次の行にテーブルの定義(例:No number,Name varchar,Sex number)を書きます。テーブルの定義は項目名(例:No)と型名(例:number)を間に空白を開けて書きます。項目が複数ある場合はカンマで区切りながら書きます。

その次の行からテストデータ(例:1,松井 咲,1)を書きます。テーブル定義の項目の順番にカンマ区切りで書いてください。

テーブルが複数ある場合は空行を入れて、次のテーブルの定義をテーブル名から書いてください。

[sql]のところに実行するSQLを書きます。

実行結果サンプル

プログラムを実行すると次のような結果を出力します。

People
No Name Sex
1 松井 咲 1
2 境 なぎさ 1
3 鈴木 昴 0
4 岩井 麻由子 1
5 岩佐 春樹 0
Sex
No Caption
0
1
SQL
SELECT p.No AS '番号', p.Name AS '氏名', s.Caption AS '性別' FROM People AS p JOIN Sex AS s ON p.Sex = s.No WHERE p.Sex = 0
実行結果
番号 氏名 性別
3 鈴木 昴
5 岩佐 春樹