小学生でもわかるSQLのテーブル結合【SQL講座③】
Summary
TLDRこのビデオは、SQLのテーブル結合の種類と使い方について、小学生でもわかるように解説しています。インナージョインとアウタージョインの違い、集計時の注意点などを丁寧に説明していて、初心者向けの良い入門動画です。コメントでフィードバックいただけると嬉しいそうです。
Takeaways
- 😃 inner joinはテーブルの共通部分のデータを取得
- 😆 outer joinは全データを残しつつ、条件に合うデータも取得
- 🤔 joinをすると思わぬところで集計ミスが発生することがある
- 🧐 テーブル名やカラム名が競合する場合はテーブル名を前につける
- 😯 outer joinのほうが余計なデータも含めた全データが取れる
- 😀 inner joinのほうがふつうによく使う
- 🤨 joinの種類にinner joinとouter joinがある
- 🎉 SQLではjoinが必須中の必須
- ⛑ 複数テーブルの情報を一発で取得できる
- 💡 共通の軸となるデータを基にテーブルを結合する
Q & A
スクリプトで紹介されているテーブルは何ですか?
-スクリプトで紹介されているテーブルは2つあります。1つ目はマーシャンずで火星人の情報が入っているテーブル、2つ目はhistoryずで惑星への渡航履歴が入っているテーブルです。
テーブルを結合する方法として紹介されているのは何ですか?
-スクリプトでは、テーブルを結合する方法としてJOINを使用することが紹介されています。共通のデータをキーとして2つのテーブルをつなげることができます。
INNER JOINとOUTER JOINの違いは何ですか?
-INNER JOINはテーブルの共通部分のデータを取得します。OUTER JOINはテーブルの全データと結合条件に合うデータを取得します。データがない場合も残します。
なぜJOINを使うと集計の際に数値のバグが起きるのですか?
-JOINでテーブルを結合すると、結合条件にマッチしないレコードは結果から外れてしまうため、レコード数が変わってしまい集計ミスが起きる場合があるからです。
集計ミスを防ぐにはどうすればよいですか?
-集計ミスを防ぐためにはLEFT OUTER JOINを使うことで、結合条件にマッチしないレコードも結果に含めることができます。全データが残るようにすることが大切です。
テーブル名が被る場合の対策は何ですか?
-テーブル名が被る場合は、カラム名の前にテーブル名を prefix として付けることで、それぞれのテーブルのカラムであることを明示できます。エラーを防げます。
火星人のデータを取り出すSQLはどう書けばいいですか?
-火星人の名前と渡航先のデータを取り出すためには、SELECT m.name, h.planet FROM テーブル名 のようにそれぞれのテーブルを指定する必要があります。
渡航歴のない火星人のデータも表示するにはどうすればいいですか?
-渡航歴のない火星人のデータを表示するには、OUTER JOINを使う必要があります。LEFT OUTER JOINを使うことで、渡航歴がない場合も火星人のデータは表示されます。
結合するテーブルの条件はどこで指定するのでしょうか?
-結合するテーブルの条件はINNER JOINやOUTER JOINの後にONで指定します。共通のカラムを指定することでテーブルを関連付けます。
JOINで注意が必要なポイントは何でしょうか?
-JOINでは結合条件にマッチしないレコードが結果から消えてしまうことに注意が必要です。集計の際など数値のバグが起きる可能性があるため、OUTER JOINを使う等の対策が必要です。
Outlines
😊テーブル結合(ジョイン)の基本と種類についての概要
テーブル結合の必要性とメリットについて説明しています。内部結合と外部結合の違いについて、ベン図を使ってわかりやすく解説しています。
😐条件にマッチしないレコードが消えることに注意
通常の結合ではマッチしないレコードが消えてしまうことを説明しています。これが数値のバグにつながることがあるので注意が必要です。これを回避するにはアウタージョインを使います。
😃左外部結合で条件に合わなくてもデータを残せる
左外部結合を使うことで、基本テーブルの全データを残したまま結合できることを説明しています。実際に使い分ける際のポイントも解説しています。
Mindmap
Keywords
💡SQL
💡テーブル結合
💡インナージョイン
💡アウタージョイン
💡集計ミス
💡惑星
💡火星人
💡宇宙
💡抽出
💡解説
Highlights
SQLのテーブル結合について小学生でも分かるように解説する
テーブルが2つある場合、Excelにデータを落として結合するのは大変な作業
SQLではテーブル結合を一発で解決できる - それがテーブル結合(ジョイン)機能
ジョインはSQLにおいて必須中の必須で、データベースのテーブルが分かれていても一発でデータを取得できる
ジョインを正しく使えないと、集計の際に数値にバグが発生することがある
いなージョインでは条件に合致しないレコードは結果から消えてしまう
条件に合致しないレコードを残すには左外部結合(LEFT OUTER JOIN)を使う
イメージとして、インナージョインはテーブルの重なり合った部分のデータを取得、左外部結合は左側テーブルの全データと条件に合致したデータを取得
実際にはインナージョインのほうが頻繁に使われる
使い分けとして、条件に合致したデータだけ欲しい時はインナージョイン、条件に合わないデータも欲しい時は左外部結合を使う
複数テーブルのカラム名がかぶるとエラーになるため、テーブル名を前につけるのがオススメ
火星人のボスは渡航歴のないデータが消えたことに気づき、そのデータも出せと指示
ジョインを使うと基準テーブルから条件に合致しないレコードが消えてしまう
左外部結合を使うと条件に合致しないレコードも残すことができる
Transcripts
どうも浮き音です今日は sql のテーブル結合
いなージョイントアウター所について小学生でもね分かるように解説するとライオンで
やっていきます
はいで今回のテーマなんですけどもまぁ sql でデータを抽出するときに複数の
テーブルがあってねその複数の底部のデータを一同に取得するにはどうすればいいんだ
あって4話なんですよテーブルが2つあるぞよしじゃあこのテーブルからそれぞれねえ
スケール2回叩いてデータを取ってきて excel に落としてこれ excel 上
でねデータを結合してよしコージェネデータとれたみたいに行ったりしたらめっちゃ
めんどくさいじゃないですか
政府は昔の僕なんですけどももしでも同じようなことをしている方がいらっしゃったら
是非
あのコメントで教えていただけるとうれしいんですけどもそれを sql で一発で
解決する方法があるんですよ
それが今日のテーマのテーブル結合ジョインです
join はねもうね sql に青いてね
必須中の必須ですめちゃくちゃ授与
なんで重要かっていうと sk
えーるねあはデータベースで底部が腹水またがってデータ存在していてそれは一発で
取っていきたいときってもすごくいっぱいあるんですよ
この動画ね最後まで見ていただければジョインをちゃんと理解して
きちんと正しくね使えるような状態をね目指していきます特にジョインはですね
主データの集計の時ね落とし穴があってこの dinner ジョイント outer
join の違いをね
きっちり理解しておかないとね数値だにバーグることあるね
その値のね数値をどうせをバグらないよです
のかまたいなぁジョイント outer join ので使い分けはっていうところ
まで踏み込んでねやっていきます
はいで今回のアジェンダなんですけど今回はね未来のお話をしていきます
未来になってねまぁいろんな惑星木星とかねどせいかそういったので結構行き来するの
がもう自由にできるような時代でそこの音時代の中ではすべているものがデータ
で管理されていて全員で sql を使ってデータを取得しているっていうねそういう
状況の境界話し合ってします
さてまぁそんな時代においてね火星人の pos から今回言われるんです指令が出る
んですよね
火星人の惑星と攻撃を調べるとでそれをですね
このいなージョインを使って調べます
この時まず上院の基本を学んでいきますで調べてね掲出したらねボスに言われるんです
よ
数値にバグがあるぞっ
ここが眠っちゃくちゃな重要なポイントでジョインはねなんとなく使うと集計の際にね
数値がばぐっちゃうっていう落とし穴があるんですよ
なぜそういうバグが寝起きちゃうのかどこに注意しなければいけないかっていうので
ここでしっかり把握していきます
でそれを回避する方法の一つとしてはアウト
女医っていうものがあるんですねでジョインには種類があってまーーいなージョイント
outer join があるんですけど
まあそれがねどういうふうに違ってどう使い分けたらいいのかっていう話をね
していきますはいじゃあね早速やっていきましょう今はね未来です
伊豆人類がね惑星のいろんな悪性も自由に行き来できる時代です
そこではもう全ているもの
データで管理されていて sql を使ってでみんなデータをで抽出するよの鐘
当たり前の時代です逆に言うと sql 使えないと生きていけないというわけですよ
あなたは現在か正極という火星のお役所で働いていてそこでいろんなデータを管理して
います
はいて今回に使用する
データをね最初に紹介しておきますねで今回テーブルが2つありますひとつが
マーシャンず
火星人ということですねデータとしては id と name 名前が入っていますか
政治の名前の一覧金入っているわけです
もう一つのテーブルが history ずです
惑星ので渡航履歴をで管理しているテーブルですね
it があってあとはマーシャンず id ということでね
ここダメ正さんつの id それがね入っていますとでもいうかプラネットということ
で惑星ですね
つまりだあれどの火星人がどの惑星いったかっていうねその一派惑星の音履歴やここに
保存され
ているわけですそんな中このか政治の音ボスからね
指令が出るんですよ火星人の渡航歴を10分以内に出せ
じゃないとクビだ10分 dearly
わかりましたさて問題ですこれ sql で
なんて書いたらいいでしょうかここで使うのがこのジョインで
です join を使うとこの2つのテーブルを音がちゃんとひとまとめにできます
どうやるかというとですね底部間で共通するデータを軸位
それを架け橋にデータをつなげていけるんですよ今回で言うとこちらの ai ディマー
シャンステーブルの id と後はこちらのヒストリーステー部
いうのマーシャン際にこれがで同じデータのでこの2つを軸につなげていきます
ちょっとでまぁ具体的に見てみるとまずねぇー一つめはり1 id 市でハリーって
いうのがあって
それはねこちらで言うとマーシャンず id が一応ここなんでね
このテーブルね9日でコードねここはね一緒のデータなんですよねここがというわけで
この2つをつなげてはこういう艇ブルーを作ることができるわけです
続いて次たようにハーマイオニーのところですね
でこっちで見てみるとまあちゃんず id
金にっていうデータがないんだねハンマーいるところ単純にここはね結合ができずに
消えます相手へこれが消えて続いては3番ねええどんのところですねそうすると
マーシャン際 d 3番は1 q に入ってるって事なのでこういう風なで高須作られ
ます
でっ続いてが選んだダンブルドアですダンブルドア土星に入ったことなんでこういう風
な
データガッツ作られます愛で続いては5番ヴォルデモート
a それはねこのヴォルデモートは海王星に入ってるんで
ここねこういうデータが作られますちなみに今回
あそうだあー完全脱線ですけどあのキャラクターで火星人の名前を
名前覚えか分かったので貼りパッたーーーーからとったんですよねまあ
ハリーポッターとだったら結構なじみがあってのわかりやすいかなってもつとったん
ですけど冷静
考えるとね火星人などにか戦戦ってのはカーズでハリーポッターのキャラクターのね
名前がでてきてむしろこんな招くんじゃないかという気もしてて
これヘッドフォンですから分かりやすいですむしろ混乱させます
待ってカバーどうせもいいですかこれはまあでとりあえずへこういうふうに軸になるね
共通するデータを軸にテーブルツアーゲートこういう風
だねテーブルを作ることができるわけですでへこれをね実現する sql というのが
いなージョインになります
select * from マーシャンずあず m
ダージリン history ずあず h オン mid ゴール h まーちゃんず
id と
フロームに続けていなージョインって言う
を指定しますそのいなージョインの後に結合したいテーブルを持っていきます
で音が出条件ですね御後に結合条件を持ってきてどういう状況のねえどういう条件の
データを結合するかっていうのを持ってきます
今回はあのマーシャンずテーブルの id とへ history ステー部の
マーシャンず id のデータが一緒なので
そこを軸稲懸け橋にしてつなげていきますちなみにフロームの後にこういうふうにあ頭
を使うとね
テーブル名をそのあその後で表記した名前でね
アクセスできるんですよでこういうふうにねまぁちょっと省略して書いておくとね
その後テーブル名をね指定するときに短くて抱くにすぐよねこれちょっとおすすめのね
まあ1コツです
でまぁこれでね強いスキル実行するとこういう底部が出てきてこの実行者結果でか政治
のボスに提出しました
するとね火星人のボスがねおい余計なデータがあるぞとこうした奴の名前と渡航先だけ
出せ
じゃないと前ケ須お子なんかこうサポートアップしているし今回でとってきたデータし
て
こういうデータとってきたんですけどそのうちの猫の名前の場所と惑星のところだけ
出せと余計なデータ前にとってくるなというふうに言われているわけですね
さてこの場合どうすればいいでしょうかこれはねもう単純にね
セレクトでしてすればいいわけですねからも n . name
h . planet というふうに指定しますここで注意があって
せる
ことで指定する時から文明の場合ねテーブル面をこういう形でね
m .みたいな形でつけますこれなんでかっていうと
複数のテーブルを結合したときにあのって服名前カーブの前がでかぶることあるんです
よ
例えばまあ id とかねえかまぁかぶってるわけ stable でそうすると
sql 金取っ
中テーブルの id なのかね id 絡むのか判断できなくてエラーになっちゃうん
ですね
そこで上映した時はですねこういうふうにねカラー名の前にテーブル面をつけてあげる
ことで
どちらの音テーブルのカラムなのかというのは特定できてねええ
エラーが出なくなるのでまぁこういうふうにカーテーブル面付けておくのがオススメ
です
はいでエコ張偉スケール実行したらまあこういう風なね
データが取れましたとあなたはこのデータを火星人のボスに提出しました
するとねか政治のボスがね多い渡航歴のない奴のデータが消えているぞと攻撃のない奴
のデータも出せ
お前
100回死ぬかパパパワー美大ではパワハラってがいねぇねぇのここがねあのジョイン
使う上で
めっちゃくっちゃ重要なポイントなんですけど join 使うとですね
こちらはベースの底部の方から条件にマッチするものがないレコードは消えちゃうん
ですよ
今回で言う
よねはぁないようにですハーマンようにこっちはヒストリーステー部の方にね
it がまあ花嫁兄なんですけどマーシャンず id がでに金登場しないでしょ
でするといなージョインするとこういう形でねはぁまぁいう兄が結果に出てこないん
ですね
レコードにねマッチす条件にまっ弦レコードがないときはにこいつ消えちゃうわけなん
ですよ
俺データが消えるからねよくあるのまで集計33節1を集計さつきにレコード数が
変わっちゃって消えちゃって集計ミスが起こるんですよこれ本当によくあるミスなので
絶対にここで気をつけてほしいです
じゃねえ条件に合わなかったレコードねどうすれば残せるかというとそのときに使うの
が
left outer join になります先ほど前の音 sql のうちマイナー
ジョイント場所ね
left outer join に変えてますこうすると条件のマッチするレコード
にはねまいまい通りつけて
条件のマッチしないで行動んと
企業に塗るをつけるんですよデータは消さずに残しておいて
n でテーブルを結合してくれますこちら側のねあの泥酔なる底部の方のデータは全部
残しといてくれるんですね
はいでねここにちょっと状況を整理するとですいなー中員の方はこの田税いうところね
合わさった部分
2つのベンズの音合わさった
部分のデータトレードガイダージョインです一方で
left outer join の場合はベン図でいうとここの部分が取れる形に
なります
レースとなる底部の全データと結合したデータのうちで条件にマッチしたデータダウの
部分が取れるというわけです
デイナージョインを猫の合わさった部分だけ取れるのでこれ内部穴
go って言ってレフパタージョインの方は内部以外の情報もねデータも取れるので
外部結合って言います
このねベンズのいい
明治尾根頭の中に持っていくとイメージをねめちゃくちゃつかみやすいです
使い分けとしてはデータを取得するときにこのデータで条件にマッチするで頂け欲しい
時はいなージョイン
ねマッチしないデータもね条件合わないデータも欲しい時は
で2 outer join を使います現実的にはねまあいいながチョインを使う
ことのほうがねハッ聞いて多いですね
あの
まあ結合した時に余計なデータとってくると know is になるんですよ
名前ねまぁ一番使う何こちら winner ジョインの方になります
はいというわけで今回 sql の結合について行ってきました今回の内容ね
わかりやすかったっていう形でぜひコメントで教えてもらいたいですし
まあわかったよっていう方はねぜひ高評価いただけるとね
5
海の子の小学生にもわかるように解説するとないっていうのはね
どれだけ上手く行ったかっていうのは僕がね分かるよねすごく嬉しいです
疑問があったりしたらでそれもねコメントなんでねコメントいただければね
コメント欄で回答した今しか別の動画ね回答したりしますよね
ぜひお願いします配当を受けねありがとうございましたーーー
5.0 / 5 (0 votes)