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

3.75
  • (0)
  • (3)
  • (1)
  • (0)
  • (0)
本棚登録 : 24
レビュー : 2
amano225さん 図書館から借りた   読み終わった 

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日
1
ツイートする
このエントリーをはてなブックマークに追加

『SQLの苦手を克服する本 データの操作が...』のレビューをもっとみる

『SQLの苦手を克服する本 データの操作がイメージできれば誰でもできる (Software Design plusシリーズ)』のレビューへのコメント

まだコメントはありません。

コメントをする場合は、ログインしてください。

『SQLの苦手を克服する本 データの操作がイメージできれば誰でもできる (Software Design plusシリーズ)』にamano225さんがつけたタグ

いいね!してくれた人

ツイートする