SQLの苦手を克服する本 データの操作がイメージできれば誰でもできる (Software Design plusシリーズ)

  • 技術評論社 (2019年8月26日発売)
3.94
  • (4)
  • (7)
  • (5)
  • (0)
  • (0)
本棚登録 : 79
感想 : 5

SQLをどうすれば真価を発揮できるかについて書いた本。
そもそも、一般的なプログラミングは手続き型に則っているのにたいし、SQL(というより、リレーショナルデータベース)は集合思考なもんだから、ベテランのエンジニアでも理解していない人がいるらしく、ぐるぐる系SQLだとか効率の悪いSQLを書いてしまう人もいるらしい。
そういえば前にいたなぁ。JAVAについてはかなり詳しいのだけど、SQLについて苦手意識がある人。ある程度、勉強したことはあるので、文法は分かっている(例えば、LEFT JOINした項目をWHERE文で使うのがおかしいというのは分かる)のだけど、ぐるぐる系のほうがいいとか言っちゃう。JOINもやりたがらないし、UNIONもやりたがらない(UNIONした後にORDER BYしたら楽なのに、なぜJAVAでソートしなきゃいけないのかと……)。正直、そういう人にこの本を読んでほしいと思った。
ただ、もちろん中には自分も知らないことが書いてあって、「ON a.B_ID = B.ID AND 0 = B.DelFlag」という結合条件でJOINをかけると、1対1関係にある(同じIDがどちらにもある)テーブルだと、INNER JOINでもLEFT JOINでも結果が同じになると書いてあって驚いた。てっきり、LEFT JOINでも、B.DelFlagが1のデータはNULLになるだけかと。ちょっとどこかで試してみたい。
それと、IN(サブクエリ)とEXISTSの違いとか。処理される順序がINとEXISTSで違うのだとか。サブクエリで返ってくる結果が少ないのであれば、INを使ったほうがいいらしい。覚えておきたい。
後、時々、複数の種類の名前と値を一つのマスタにしているテーブルを見るけど、あれはEAV(Entity-Attribute-Value)というらしく、SQLアンチパターンらしい。やっぱりあれって、SQLのアンチパターンなのか。確かに便利だなと思ったのだけど、ちょっとした違和感は確かにあった。
著者はAPIファースト開発という手法を提案しているそうなのだけど、ようはストアドプロシージャを使った開発と考えていいのかな? うちの会社でも基本、自社開発だとそうしてるし、そのほうがストアド変更するだけでアプリの変更はいらないという修正依頼も多いので、確かにいいと思う。

読書状況:読み終わった 公開設定:公開
カテゴリ: 図書館から借りた
感想投稿日 : 2019年10月28日
読了日 : 2019年10月28日
本棚登録日 : 2019年10月28日

みんなの感想をみる

コメント 0件

ツイートする