SQL〜Progate🐓SQL Ⅲ(1章 サブクエリを使ってみよう)(2章 複数テーブルを活用してみよう)(3章 総合演習)

所要時間は2h。複数テーブルを利用したデータの取得(サブクエリとJOIN)を学びます٩(๑❛ᴗ❛๑)۶今回は3章までなので、なのでね、まとめてやっちまおうと思いますᕦ(ò_óˇ)ᕤ 否、長くなりそう…


🐓playersテーブル
🐓サブクエリ
🐓AS
🐓countriesテーブル
🐓テーブルを紐づける
🐓JOIN(1)
🐓JOIN(2)
🐓teamsテーブル
🐓LEFT JOIN
🐓3つのテーブル結合

【🐓サブクエリ】
2個もクエリを描かなくても良いようにする(2つ以上のクエリを一つにまとめる)。
 →クエリの中に他のクエリを入れる。

スクリーンショット 2020-08-11 15.03.31

if文みたい…
 →「;」はクエリの最後のみ!(←最後ののみ、って打ってて、「最後の飲み会」に変換されてた…( ̄◇ ̄;));


【🐓AS】
取得したカラム名の表示を変更できる!

スクリーンショット 2020-08-11 15.19.48

この「name」が↓

スクリーンショット 2020-08-11 15.21.04

お名前変更完了!


【🐓countriesテーブル】

スクリーンショット 2020-08-11 15.27.58

 テーブルが変わっても、なすべきことは一緒。外交のようだ…


【🐓テーブルを紐づける】
例))「選手ごとのデータ」と、「国ごとのデータ」を比較分析したい時
🌸外部キーと主キー(id)
 →同じ数字が入っているレコード同士が紐づいている。

スクリーンショット 2020-08-11 15.34.38

🌸テーブルを紐付けるメリット
 →データ管理がしやすい

スクリーンショット 2020-08-11 15.35.34

スクリーンショット 2020-08-11 15.39.06


【🐓JOIN】
🌸テーブルの結合
 →紐づいたテーブル同士を合体させる

🌸on
 →条件の指定
 →結合したテーブルは、一つのテーブルとしてデータを取得できる

スクリーンショット 2020-08-11 15.42.39

こりゃすげー✨✨Σ(・□・;)

スクリーンショット 2020-08-11 15.43.54

↑ joinを含んだクエリでは、joinの次にselectが実行させる。
↑  on内の順序は逆でも大丈夫だった(^^)v


🌸複数テーブルでのカラムの指定
 →「それぞれのテーブル名 . name」で指定

スクリーンショット 2020-08-11 21.12.05

 →where内でも同様

スクリーンショット 2020-08-11 21.13.21


⚠️SQLは取得するテーブルを形成してから検索を行う

スクリーンショット 2020-08-11 21.14.47

→演習

スクリーンショット 2020-08-11 21.23.29

→これに「group by」で

スクリーンショット 2020-08-11 21.27.41

 ⚠️「sum」の時はテーブル名いらない💩


【🐓teamsテーブル】
データベースでは、複数のテーブルを作れる
🌸外部キーにnullがある時
 →joinを使えるが、nullのレコードは飛ばされて実行結果に反映されない
 →joinは、fromで指定したテーブルを基準に実行される


【🐓LEFT JOIN】
🌸nullのレコードを取得したい時

スクリーンショット 2020-08-11 21.43.58

↑同感🤣💛
⚠️left joinを使うと、元となるテーブルの全レコードを取得する


【🐓3つのテーブル結合】
🌸joinを複数回使用

スクリーンショット 2020-08-11 21.52.07


【総合演習】

スクリーンショット 2020-08-11 21.55.32

励まされるわぁ…✨😭💙

スクリーンショット 2020-08-12 5.28.51

スクリーンショット 2020-08-12 5.35.32

最後に、

スクリーンショット 2020-08-12 5.42.30

ここで国ごとのグループを作ると、

スクリーンショット 2020-08-12 5.43.06


【まとめ】
改めて、SQL、スゲー!!!✨✨✨
このシンプルなコードからこれだけのデータを集計して出してくれるとは… シンプルだからこそ、重要なエッセンスが集約されている感じも良いですな✴️ 特に、グループ化しない時のコードと、グループ化した時のコードで実行結果が違うところとか、指令を受け取ったデータベースが「ちょ、ちょ、ちょっと待ってね…💦」な感じで注文に対応してくれる様を擬人化して考えたりする😆


この記事が気に入ったらサポートをしてみませんか?