以下の Qiita の続きです。以前からお世話になっている共助学習コミニティのモブプロを通して、SQL の直書きの必要にせまられ(?もしかしたら使わない?)、全然分かってないな(or忘れてるな)と感じ、個人用に作っています。もう完全にQiitaが最近はプログラミングに関する学習のノート代わり…(Qiita 考えた人ホンマ偉いな…(・∀・))
〇主な学習参考資料・実験材料
①『スッキリわかるSQL入門 中山 清喬/飯田 理恵子 共著, 株式会社フレアリンク 監修』②転職活動時のポートフォリオ(Laravel 10を)に付けた意見投稿フォームのCRUDに紐付けた MySQLWorkbench
①あるカラムにおいて複数の値が一致しているか一気に調べ、一致しているレコードをすべて取得するSELECT文(※論理演算的には「IN」は「or(または)」に相当する)
SELECT *
FROM table_name1
WHERE column_name1 IN ('value1', 'value2', …)
/*value~がInteger型などで数値を扱う場合、シングルクォーテーションは除く*/
②あるカラムにおいて複数の値いずれにも一致していないレコードを調べ、それらをすべて取得するSELECT文
SELECT *
FROM table_name1
WHERE column_name1 IN ('value1', 'value2', …)
/*value~がInteger型などで数値を扱う場合、シングルクォーテーションは除く*/
③OR演算子で結ばれた2つの条件式をともに満たすレコードをすべて取得するSELECT文
SELECT *
FROM tabel_name1
WHERE ( column_name1 = 'value1'
OR column_name1 = 'value2' )
AND ( column_name2 = 'valueX'
OR column_name2 = 'valueY' )
/*value~がInteger型などで数値を扱う場合、シングルクォーテーションは除く*/
※数学における論理演算とは微妙に異なり、()がない場合だと複数の論理演算子が使われているときは「NOT ⇒ AND ⇒ OR」の優先順位に従って、条件式を満たすかどうかDBMSに評価される。そのため、③の文に従うようにするのであれば、()を付けて優先順位を引き上げて矯正する。