見出し画像

【第2回】webディレクタースキルとしてのSQL

こんにちは、普段はかにぱんのオスとメスを仕分ける仕事についているwebディレクターです。肩が凝りすぎて右を向けません。

さて、この記事は前回の記事の続きになります。前回を読んでない人は2分くらいで読み終わるのでよかったらみてやってください。

(おそらく)非エンジニアであるところのwebディレクターがSQLを学ぶメリットと、実際にSQLをさわるための方法についてお話ししました。

前回、最後に「ではSQLでなにをすればいいのか?どこまでかければいいのか?」についてお伝えするとお話ししましたが、結論から言っちゃうとSELECT文です。本当にSELECT文だけ覚えれば8割ゴールです。

SELECT文って何やねん

いきなりSELECTとか言われましても何なんだと。しかし前回の記事内で触れたProgateやSQL Zooを触った人は何のことかすぐにお分かりになると思います。そう、あの序盤で出てくるやつのことです。

SQLもプログラミング言語なので、他の言語同様書くときにお作法があります。例えば、データを入れるテーブルを作りたい、テーブルの中のデータを変えたり消したり編集したい、と用途に合わせてどういう文を書くか決まりがあります。

ですが、我々はwebディレクター。そんなデータの中身を勝手に書き換えたりしようものなら普段は温厚なエンジニアさんでも森の安藤さんばりに制裁を加えてきます。
そう。我々は別にデータの中身をいじる必要はないということなのです。
ほとんどがそのデータに何が入っているのか知ること、そのデータの中身を見ることで用が足ります。
そんな時に使うのがSELECT文なのです。

実際にSQLを書いてみよう

例えば、数のようなテーブル(データが入っている表)があるとします。

スクリーンショット 2020-03-04 14.00.18

これはあるショップの1日の売上を表したテーブルです。
そしてこのテーブルのことを「sales_table」と名前をつけることにします。
テーブルの要素を見てみると「id」「name」「sales」とありますね。

「name」は購入したどうぶつさんの名前が入っています。
同じように「sales」は購入時の金額が入っていますね。
では「id」とは?この「id」は、テーブルに登録されるレコード(横列)を一意に決定するものです。
例えば、「今日のたぬきさんの購入金額は?」と聞かれた時、「100」「200」「(100と200を足して)300」と答えても正解になりますが、「idが4の購入金額は?」と聞かれたら200と答えることができます。
さて、テーブルに何が書かれているかはわかりました。では実際にSQLを書いてみましょう。

先ほど「idが4の購入金額は?」という質問の例を出しましたが、これもSQLで書くことができます。実際に書くと下記みたいな感じです。

SELECT sales
FROM sales_table
WHERE id = 4 ;

はい、なんのこっちゃですね。ざっくりみていきましょう。まずSQLにはお約束があります。使っていい言葉が決められているのです。
それがここで出てくる「SELECT」「FROM」「WHERE」です。(他にもいっぱいありますが今はこの3つだけ覚えましょう)
SELECTの隣に何が書かれているかみてみると、「sales」とあります。これ、さっきのテーブルを思い出すと購入金額のことをさしていましたね。「SELECT sales」では「購入金額の列を見せて」と指定しているのです。
次をみてみましょう。「FROM」の横には「sales_table」とありました。我々は当然のようにさっきの「sales_tabe」を前提に考えていましたが、コンピュータ君にはどのテーブルか教えてあげる必要があります。そこで「FROM sales_tabe」と書くことで、「このテーブルを見てね!」と指示してあげることができるのです。
そして最後の「WHERE」。隣には「id = 4」と書かれています。ここでは「この条件に当てはまるものを探して!」と指示してあげています。
最後の;(セミコロン)は、これでSQLの文章は終わりだよ、という合図です。


まとめると、「sales_tableから(FROM sales_table)idが4の(WHERE id = 4)条件に当てはまる時のsalesのカラムを見せて(SELECT sales)」になるわけです。でもこの順番で書いてもうまく動いてくれません。必ず

SELECT
FROM
WHERE

この順番で書きましょう。

sales_tableのきつねの購入金額を知りたい時はどうすればいいでしょうか。

SELECT sales 
FROM sales_table
WHERE name = きつね ;

上記のSQLが思い浮かびそうです。でも、惜しい。これだとうまく動かないのです。さっきと何が違うのかというと、今後は「きつね」と文字列で指定してあげる必要があります。その時は、"(ダブルクォーテーション)で文字列をくくってあげて、「これは文字ですよ」とコンピュータ君に教えてあげる必要があるのです。なので正解は​

SELECT sales 
FROM sales_table
WHERE name = "きつね" ;

ちょっとややこしいですが、他の言語でも同じだったりするので覚えておくとよっさそうです。
そんなこんなで超ざっくりですが、ディレクターが知っとくべきSQLのお話でした。


いいなと思ったら応援しよう!