ProgateさんでSQLを学習してみた!
今回はSQLにチャレンジしました( `ー´)ノ
SQLはEXCELのVBAでデータを取得するのに使ってたので
まっさらの初心者、というわけではないのですが
独学だと自分のスキルがどの位かわかりにくいので復習の意味も込めチャレンジ!
今回学んだことは
・WHEREで条件設定する(レッスン1)
・比較演算子、LIKE、NOT、NULL・IS NOT NULL,AND・OR(レッスン1)
・ORDER BY、LIMITで加工(レッスン1)
・DISTINCT、四則演算(レッスン2)
・集計関数(SUM、AVG、COUNT,MAX・MIN)(レッスン2)
・グループ化(GROUP BY、HAVING) (レッスン2)
・サブクエリ(レッスン3)
・複数テーブルの使用(JOIN、LEFT JOIN)(レッスン3)
分かってるつもりでも、「そうだったのか!」と
腑に落ちることが多かったです
WHEREで条件設定する(レッスン1)
基本の部分で「SELECT * FROM table WHERE 条件」
この文法をまずは習得します ここは問題なし!(^^)!
比較演算子、LIKE、NOT、NULL・IS NOT NULL,AND・OR(レッスン1)
ここも使用頻度が高い文法
私の中では「NULLはオブジェクトに近い存在(?)なのでISが必要」
こんな納得の仕方でとりあえずクリア
ORDER BY、LIMITで加工(レッスン1)
「ORDER BY」もDESC、ASCともによく使うので問題なし( ^^) _U~~
だが、しかし!
「LIMIT」は使ったことが無かったです(ノД`)・゜・。
「そんな!必要な個数だけデータが取得できる...だと?」
なかなかの衝撃・・調子にのってたとこを引きずり降ろされました
SELECT *
FROM purchases
WHERE character = "わんこ"
LIMIT 10;← 結果の上位10件のみ表示される
知識が一つ増えました!Progateさん、ありがとう!
DISTINCT、四則演算(レッスン2)
これも比較的使っていたのでクリア!( `ー´)ノ
そもそもACCESSのクエリでイメージがつかめなかったので
ゴリゴリSQLで解析してたのが、功を奏した(笑)
ただしDISTINCTの対象として複数カラムが使えるかは自信が無いです...
集計関数(SUM、AVG、COUNT、MAX・MIN)(レッスン2)
ここでは「基本構文+集計関数」という内容ですが
今さらですが「WHERE条件をつけた場合、WHEREが先に実行され、
その結果に対して集計が行われる」
SELECT SUM(price)
FROM purchases
WHERE character="AAA"; ← ここで絞られたデータを集計する
漠然と理解してたつもりでしたが、文字に起こすと理解が深まる気がしました!
Progateさんの解説はすごくわかりやすいです(絶賛!)