SQL

SQL – WHERE句による「行」単位での条件式

0

WHERE句

4つのSQL文で、データベースを操作することができますが、WHERE句と呼ばれる修飾語のような記述を使うことによって、ピンポイントで操作したいデータ(行)を絞り込むことができます。

WHERE句の基本

①処理対象の行の絞り込みに使う
→使わないと全ての行が処理対象になってしまう。DELETE文であれば、全データを削除してしまいかねないので、注意しておかないとメッチャ怖い。
SELECT文、UPADATE文、DELETE文で使用可能
③WHEREの後ろは条件式(真か偽か、YesかNoかで判断できる式)を記述する
→RDBMSはテーブルの一行一行に対して、WHERE句で記述された条件に合うかどうかを判断している。

演算子

基本的な演算子

よく使われるのは比較演算子と呼ばれるもの。小学校の算数の授業でやってた「大なり」「小なり」ってやつ。

比較演算子 意味
= (例: 1=1) 左右の値が等しい
< (例: 2 < 3) 左辺は右辺より小さい
> (例: 3 > 2) 左辺は右辺より大きい
<= (例: 2 <= 3) 左辺は右辺の値以下
>=(例: 2 >= 3) 左辺は右辺の値以上
<>(例: 2 <> 3) 左右の値が等しくない

NULL

NULLは何も格納されていない。定義されていないという意味。
INTEGER型を例に取る、「0」と「NULL」は意味が違う。「0」は「0」というINTEGER型の値が格納されていることを意味するが、「NULL」は何も格納されておらず、未定義のままという意味になる。

LIKE演算子

ある文字(キーワード)を含む行を取り出したいときに使う。

文字 意味
% 任意の0文字以上の文字列
_(アンダースコア) 任意の1文字

BETWEEN演算子

ある範囲内に値が収まっているかを判定したいときに使う。

IN / NOT IN演算子

IN演算子は値が列挙した複数の値のいずれかに合致するかを判定したいときに使う

NOT IN演算子は列挙した値のどれとも合致していないことを判定したいときに使う

NOT IN演算子と <>ALL は同じ意味で、全ての値と一致しない場合に真となる。

論理演算子

WHERE句でピンポイントでデータ(行)を取得したいときに、複数の条件式を組み合わせたいときに使う

AND演算子

「条件式1 かつ 条件式2 が真の場合」というデータ(行)を特定して処理したいときに使う。

OR演算子

「条件式1 あるいは 条件式2 が真の場合」というデータ(行)を特定して処理したいときに使う。

NOT演算子

これはある条件式に合わないものを特定して処理したいときに使う。
例えば、AND演算子の例文を、「WHERE NOT お店 = スーパー」と書き換えると「お店がスーパー以外の」という意味になる。

論理演算子の優先順位

論理演算子は
①NOT
②AND
③OR
という優先順位にそって処理されるので、記述する際は順番に注意が必要。
複数の論理演算子を使う場合は条件式にかっこ()をつけると分かりやすくなる

WHERE句や演算子を使って、行を絞り込む方法が少し分かった。
今度はSELECT文やWHERE句を使って絞り込んだ行を「値段が高い順に表示させる」「日付が最新順になるように表示させる」みたいなことができる、検索結果の加工方法を勉強してみます。

0
ABOUT ME
chopes
前職では、人材業界で法人営業・キャリアアドバイザー・大阪責任者をしていました。他にも、新入社員の研修策定と育成、面談者の集客におけるスカウト業務や中途採用の面接官、新卒採用の2次選考官、インターンシップのメンターとしてプログラムに参加していました。退職後は、未経験でエンジニアになるためにスクールに通学して勉強。2ヶ月の転職活動を経て、今春からRailsエンジニアとして第二のキャリアを歩むことになりました。主に学習記録や未経験エンジニアについてアウトプットしていきたいと思います! 以下、Twitterアカウントですので、気軽にフォローしてください! Twitter:@chopesu_se