重要なポイント

括弧(カッコ)があるかないかで結果が変わる?

数学で、「3×5+4=19」「3×(5+4)=27」のように括弧をつけるかどうかで結果が大きく変化します。「andとor」が同じSQL構文に含まれる場合も同様に結果に影響します。

例題をもとに考えてみよう。

構文

括弧無しパターン

<例題>

  • 学生マスタ(student_mst)からデータを取得すること。
  • 抽出条件
    • 学科NO(gakka_no)が〈1〉
    • もしくは 学科NO(gakka_no)が〈2〉
    • かつ 削除区分(delete_ku)が〈0〉
  • カラム:すべてのカラムを抽出すること。
select * from student_mst sm
 where sm.gakka_no = 1
 or sm.gakka_no = 2
 and sm.delete_ku = '0';

括弧有りパターン

<例題>

  • 学生マスタ(student_mst)からデータを取得すること。
  • 抽出条件
    • 学科NO(gakka_no)が〈1〉
    • もしくは 学科NO(gakka_no)が〈2〉
    • その中からさらに 削除区分(delete_ku)が〈0〉
  • カラム:すべてのカラムを抽出すること。
select * from student_mst sm
 where (sm.gakka_no = 1
 or sm.gakka_no = 2)
 and sm.delete_ku = '0';

記述の注意点

  • その中からさらに」という言葉が出てきたら、注意してみよう。