達人に学ぶSQL徹底指南書 第2版 Chapter1

SQL勉強メモ

出典: 

オンラインSQL環境

  • Convert CSV to SQL …データからcreate/insert文つくる

    • 勉強的には自分で書くのが一番良いんでしょうけど
  • SQLite Browser …サンプル実行

    • 軽快
    • URL共有できる

1. CASE式のススメ

WHERE句で条件分岐させるのは素人のやること。プロはSELECT句で分岐させる
HAVING句で条件分岐させるのは素人のやること。プロはSELECT句で分岐させる

CASE式とは

  • 手続き型言語で言うところの三項演算子cond ? a : bや、pythonのa if cond else b を連結したものに近しい

    • Short-Circuit Evaluationであるところもそっくり
  • Lispのcondマクロはまんまそれ
  • 「式」(Expression) なのである
    「文」(sentence)や「句」(clause)ではないので、文法上どこにでも置ける

CASE式使え

注意点

  • END忘れるな
  • ELSE書け

    • 書かないと、暗黙で ELSE NULL と解釈される
    • NULLでいいときも書け
    • 手続き型言語のswitch-caseで、何もしなくても default:break; を書く気持ちと似ているかも

SELECT

CHECK制約

UPDATE

テーブル同士のマッチング

STUB