タグ

SQLに関するbizeのブックマーク (3)

  • LEFT JOINの論理削除はWHERE句でしぼるな

    これはなに こんにちは、レバテック開発部のもりたです。 論理削除、皆さんは採用していますか? わたしが普段開発するシステムでは論理削除を採用しているものもあるのですが、今回はその論理削除の気を付けるべき点として「子テーブルの論理削除されたレコードの絞り込みをWHERE句でしてはならない」という問題について解説します。慣習的に起こりにくいミスなんですが、案外ダメなことを知らない人もいると思うので、ご紹介です。 どうすればいいか? こうじゃなくて... SELECT * FROM parents LEFT JOIN children ON parents.id = children.parents_id WHERE parents.deleted_at IS NULL AND children.deleted_at IS NULL -- 子テーブルの論理削除の絞り込み ; SELECT * F

    LEFT JOINの論理削除はWHERE句でしぼるな
  • データベーススペシャリスト試験を受けて業務に役立っていること - NRIネットコムBlog

    記事は 情報処理試験ウィーク 1日目の記事です。 ✨📓 告知記事 ▶▶ 記事 ▶▶ 2日目 📓✨ 1.テーブル設計がしやすくなった 2.DB調査を行いやすくなった 3.より幅広いDB調査手段を知ることができた 4.DBの非機能要件をより意識できるようになった トランザクション デッドロック まとめ こんにちは、上村です。 私は2年前、データベースに関する知識を深めたいと思い、情報処理技術者試験である「データベーススペシャリスト試験」を受験し、無事合格することができました。 過去にもいくつか資格試験を受験しましたが、特にデータベーススペシャリストの知識は業務でも役に立っていると感じています。 そこで、どう役に立っているかを記事で説明します。 読み物として、軽い気持ちで読んでいただければと思います。 1.テーブル設計がしやすくなった テーブル設計を検討する際、いきなりテーブルと詳細な

    データベーススペシャリスト試験を受けて業務に役立っていること - NRIネットコムBlog
  • 3値論理

    なぜ「= NULL」ではなく「IS NULL」と書かなくてはならないのか? これは、気になっている人も多いはずです。まだ SQL に不慣れな頃、ある列が NULL である行を選択しようとして、 SELECT * FROM table_A WHERE col_1 = NULL; というクエリを書いてしまい、エラーになったり思い通りの結果が得られなかった、という経験は、ほぼ全ての人が持っているでしょう。ちょうど C言語や JAVA を習い始めのころに「if (a = 5)」と書いてしまう間違いとよく似ています。最初は、言語仕様の汚さにぶつぶつ文句をいいながらも、そのうち「IS NULL」という書き方に慣れてしまって、疑問を持たなくなります。 でもどう考えても奇妙な書き方ですよね。こんな素直でない書き方をしなくてはならないということには、やはりそれなりの理由があるのです。今からその理由を説明しま

  • 1