
SQL初心者、SELECT・FROM・WHEREはどこに何を書く? 商品表で整理してみた
こんにちは。
金に目がない猫です。🐈🪙
ProgateでSQLを勉強しました。
英単語の意味から働きをつかみやすい一方で、どこに何を書くかを覚えるのは難しいと感じました。
今回は、SELECT・FROM・WHEREの後ろに何を置くのか、架空の商品表で整理します。
「言葉の意味は分かる。でも、自分で書こうとすると迷う」という人向けの話です。
まず「何を・どこから・どんな条件で」
今回使う基本形は、こちらです。
SELECT 表示する列
FROM データが入っている表
WHERE 行を絞る条件;これは役割を説明するひな形です。そのまま実行するコードではありません。
列は「商品名」「価格」といった縦の項目。行は、商品一つ分のデータです。
この形では、SELECTで表示する列、FROMで使う表、WHEREで行を絞る条件を指定します。SQLite公式のSELECT解説
英単語だけでなく、その後ろに何を書くかまで並べると、確認する場所が決まります。
「300円以下の商品」を取り出してみる
説明用に、itemsという商品表を用意したとします。
僕の買い物記録でも、教材の問題でもありません。価格の単位は円です。
name(商品名)price(価格)pen150notebook300pouch500
ここから、300円以下の商品名と価格を取り出すコードがこちらです。
SELECT name, price
FROM items
WHERE price <= 300;上の商品表が、すでに用意されている前提です。
一行ずつ読むと、
SELECT name, price:商品名と価格を表示する
FROM items:itemsという表から取り出す
WHERE price <= 300:価格が300以下の行に絞る
<=は「以下」なので、300円ちょうどの商品も含みます。
結果に含まれるのは、次の二つです。表示順は、このコードでは指定していません。
namepricepen150notebook300
500円のpouchは、条件に合わないので含まれません。
安いものを探す条件なら、金に目がない猫にも話が早いです。書く場所を覚える仕事は残っていますが。
300は、なぜそこに書く?
今回の300は、取り出す商品の価格の上限です。
だから、条件を表すWHERE price <= 300の中にあります。
「数字はここに置く」と丸暗記するより、「この数字は何を決めているか」を見る。
この例では、商品名でも表の名前でもなく、「いくら以下か」を決めています。
ただし、SQLの数字がいつもWHEREに入るわけではありません。今回の一文での役割として覚えてください。
では、200円以下に変えたいときはどうするか。
SELECT name, price
FROM items
WHERE price <= 200;変えるのは、条件の数字だけです。
使う表も、表示する列も同じ。今度は150円のpenだけが条件に合います。
迷ったら、コードの前に日本語で書く
この例なら、次の三つを埋められます。
表示したいもの:商品名と価格
使う表:items
条件:価格が300円以下
それをSELECT・FROM・WHEREの後ろに置いていく。
SQL全体に使える万能な型ではありませんが、今回の基本形を書くときの手がかりにはなります。
練習するなら、同じ表で「150円以下だったら、どの商品が残るか」を先に考えてから、条件を書き換えてみてください。
僕が今回の学習で感じたのは、英単語から意味をつかめることと、書く位置を覚えることは別だということでした。
同じように勉強している方は、よかったらフォローして、またのぞきに来てください。
それでは、また小判探しで。🐈🪙