Skip to content

Latest commit

 

History

History
102 lines (75 loc) · 2.97 KB

README.jp.md

File metadata and controls

102 lines (75 loc) · 2.97 KB

CANDY--SQL

概要

SQLの構文糖です。

シンタックスシュガーです。

キャンディーです。

これはSQLに対しての構文糖や、DSLの類いです。 最近は、O/Rマッパーが広がってるようですが その時代の流れに逆らい、まだSQLに別の進化があるのではないか? と思っています。

これを作ろうと思ったのは、私はSQLを書く事が多く サブクエリなど長々と書いていると分かりにくくなってきて 「もっと簡単に書けないのか?」 などと思う事が多くありました。

SQLが普及してから長く経つので、こういったものがあるのではないか? と探してみましたが、なかなか良いものが見つかりませんでした。

世間的にどちらかというと、SQLが長くなりそうな場合は プログラム側に処理を移すのが、一般的なやり方だと思います。 その方が可読性も高まるし、変数なども使用出来ます。

それでも私の場合は、SQLを使う場面が多くあり しかも長いSQLが多い。

それではと思い自分用に作っていましたが 「他にも同じように困っている方がいるかもしれない」 と思い、公開する事にしました。

目的

時代の流れを、またSQLの方に戻そうという野望があります。

前提条件

SQLが使える方向けです。

使い方

ファイルは、2つのパートに分かれます。 上のパートは、定義パートです。 下のパートは、SQL構文パートです。

###定義パート 定義パートには、SQLでASを使って宣言される

  • テーブル定義
  • SELECT内のカラム定義 を変数のように定義する事が出来ます。

下記のように記載します。

変数名== 定義内容

また、ASを使わずにそのまま変換される変数も定義する事が出来ます。

下記のように記載します。

変数名= 定義内容

これらは、定義パート、SQL構文パートで展開されますが GROUP BY、ORDER BY、HAVINGでは展開されません。

###SQL構文パート SQL構文パートは、省略記号を使ってSQLを短く記載する事が出来ます。

S--				/* SELECT */
F--				/* FROM */
W--				/* WHERE */
 A-				/* AND */
 O-				/* OR */
G--				/* GROUP BY */
O--				/* ORDER BY */
H--				/* HAVING */

まるで、キャンディのようですね。 これらの記号は、全て行の先頭でのみ使用可能です。

また、「F--」の行では、下記の結合記号が使用出来ます。

=<				/* INNER JOIN */
<<				/* LEFT JOIN */
>>				/* RIGHT JOIN */

今後について

SQLからドキュメントの様なものが出力出来ないか? と思っています。

その他、SQLを書くうえで困る事があれば対応していきたいです。

ライセンス

MITライセンスです。

llby@shingor.net

Copyright (c) 2015 llby