こんな感じで作っていくので、頭の中であのようなベン図を思い浮かべることはありません。JOINしか使いません。既存のSQLでもこれ以外は見たことがありません。OUTERに統一しています。JOINは特殊なSQLで一回だけ使ったことがありますが、それっきりです。JOINは一度も使ったことがないです。JOINの二つだけ抑えておけば、まず大丈夫だと思います。逆に他人が書いたSQLを解析する時は簡易的なER図を紙の上に書きます。上の例で挙げたSQLが他の開発者によって書かれていたら、おいらは下のような図を書いて視覚的に理解します。実際はラフなメモ書きなので、正式な手順があるわけではありませんが、あえて書くとすればこんな感じです。結合されているテーブル同士を線で結ぶ。結合条件で使われているカラムを線の近くに書く。外部結合の場合はそれと分かるような印をつける。1」と書いた)データのフィルタリング条件(WHERE句)があればテーブルから線を伸ばしてメモを入れる。SQLを日本語にするあと、大事なのはSQLを書く時も読む時もそのSQLを日本語に変換できるかどうかです。上の例で挙げたSQLであれば、以下のような日本語に読みかえることができます。購入金額が1万円以上の書籍注文情報を取得する。う〜ん、これではちょっと単純すぎるので、条件を一つ追加してみましょう。追加した条件ダメな仕様書なんかにはこんな説明が書いてあったりします。購入金額が1万円以上かつ、ブラックリストフラグが1以外の書籍注文情報を取得する。「ブラックリストフラグが1」というのはコンピュータ向けの文章です。人間向けではありません。人間向けの文章として書くならば、こんな感じになるはずです。購入金額が1万円以上の書籍注文情報を取得する。ブラックリスト扱いとなっている注文者からの注文は除外する。自分がSQLの仕様を説明したり理解したりする時は、そのSQLを人間向けの文章に変換できているかどうかを確かめてください。変換できないのであれば、SQLの仕様を十分に理解できていません。まとめ実際の業務ではここで挙げたような単純なSQL登場することはほとんどありません。結合されるテーブルや抽出条件が山ほどあったり、見慣れない演算子や関数がいっぱい登場したりします。何事も基本ができていれば応用は何とかなるものです。SQLが苦手な方もまずはコツコツと基本を習得することから始めてみましょう。正規表現」みたいに、「SQLをマスターしたいならコレ!」という一冊がなかなか選べません。初心者向きではないのですが、ちゃんと読めば血となり肉となるような参考文献を紹介しておきます。見る中級者から上級者向けの考え方やテクニックが色々と載っています。見るSQLの本ではなく、「リレーショナル理論」の本です。D」という超マイナーな言語が使われています。数学的な集合理論や公式も山ほど出てくる非常に難解な一冊です。読むのは大変ですが、そのかわりにテーブルやSQLといった「今までの常識」が、実はリレーショナル理論の本来のパワーを制限していたという驚きの事実を明らかにしてくれます。*1:というかER図は必ず存在すべきだと思いますが。東...2012-10-08家のPC環境をアップグレードした家のPC環境を色々とアップグレードしました。はてなブログPro株式会社ソニックガーデンで働くRubyプログラマ。2017年11月に「プロを目指す人のためのRuby入門」を出版。blog)はてなブログをはじめよう!JunichiItoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。