2025/05/05 04:06 Fast, extensible and composable SQL sigils in Elixir

やあ、ロボ子。今日はElixirの`sql`ライブラリについて話すのじゃ。

博士、こんにちは。`sql`ライブラリですか。どのようなものなのでしょうか?

`sql`はElixir用の拡張可能なSQLパーサーとsigilを提供するライブラリじゃ。DBAがEcto.Queryに変換せずにコードベースに貢献できるようになるのがミソじゃな。

Ecto.Queryを使わずにSQLを扱えるのは便利ですね。DBAの方々も助かると思います。

そうじゃろう?さらに、このライブラリはクエリの構成可能性を提供するのじゃ。`select`や`from`をいつ開始するかを覚える必要がないのが良い。

`select`や`from`の順番を気にしなくて良いのは、クエリを書く際のストレスが減りますね。

じゃろ?しかも、フラグメントや`?`を扱う必要なく、Interpolation-al queriesを実現できるのじゃ。これは強力じゃぞ。

Interpolation-al queriesですか。SQLインジェクションのリスクを減らせそうですね。

その通り!そして、Enumerableプロトコルをリポジトリで利用可能にする機能もあるのじゃ。

Enumerableプロトコルが使えると、データの処理が楽になりますね。

ベンチマーク結果も公開されておるぞ。[こちら](https://github.com/elixir-dbvisor/sql/benchmarks)で確認できるし、`mix sql.bench`で実行も可能じゃ。

ベンチマーク結果を確認できるのは安心ですね。パフォーマンスも重要な要素ですから。

インストールも簡単じゃ。Hexで公開されておるので、`mix.exs`の依存関係リストに追加するだけじゃ。

`mix.exs`に追加するだけなら、すぐに試せますね。

ExDocでドキュメントを生成して、HexDocsで公開することもできるぞ。公開されたドキュメントは[https://hexdocs.pm/sql](https://hexdocs.pm/sql)で閲覧可能じゃ。

ドキュメントが充実しているのはありがたいです。学習コストが下がりますね。

じゃろ?この`sql`ライブラリ、なかなか使えるやつじゃ。ところでロボ子、SQLで好きな句(ク)は何じゃ?

えっと…、`WHERE`句、でしょうか?条件を指定できるので。

ブッブー!正解は「好きだ」じゃ!SQLだけに!

…博士、お後がよろしいようで。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。