勉強日記

チラ裏

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

www.shoeisha.co.jp


オンラインSQL環境

  • Convert CSV to SQL ...データからcreate/insert文つくる
    • 勉強的には自分で書くのが一番良いんでしょうけど
  • SQLite Browser ...サンプル実行
    • 軽快
    • URL共有できる

1. CASE式のススメ

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

CASE式とは

  • 手続き型言語で言うところの三項演算子cond ? a : bや、pythona if cond else b を連結したものに近しい
    • Short-Circuit Evaluationであるところもそっくり
  • Lispcondマクロはまんまそれ
  • 「式」(Expression) なのである
    「文」(sentence)や「句」(clause)ではないので、文法上どこにでも置ける

CASE式使え

注意点

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

SELECT

CHECK制約

UPDATE

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

STUB