← メディア一覧

SQL_JOIN_残るデータと消えるデータ

4分02秒 | DBSQLFE

基本情報技術者試験の頻出テーマを解説した音声コンテンツです。

トランスクリプト(字幕テキスト)

さて、今回の資料を一緒に深掘りしていきましょう。テーマはSQLのジョイン、結合ですね。 はい、ジョインですね。これデータベースを触っていると、本当によく出くわす状況じゃないですか。 ええ、ありますね。例えば社員テーブルには社員の情報があるんだけど、所属部署は部署コードっていうなんか数字だけ。 うんうん。で、具体的な部署名はまた別の部署テーブルにちゃんと入ってる、みたいな。 ええ。今回の目標は、このバラバラの情報を一つに繋ぎ合わせるジョインっていう、まあ、魔法のような仕組みをこの資料から解き明かしていくことです。 この資料がまた面白いのが、対話形式ですごく分かりやすく解説しているところなんですよね。そうなんですよ。 単なる技術解説じゃなくて、そもそも何でジョインが必要なの?っていう、もっと根本的なところから入っていく。 ええ、ええ。ここでの核心っていうのはやっぱり、こう分割されて整理されたデータをいかにして意味のある情報として取り出すか、っていう点にあると思います。 では、早速核心に迫っていきましょうか。資料だと、ジョインをテーブル同士を合体させる必殺技なんて表現してますね。 必殺技。どうやって繋ぐのかというと、接着剤を使うと。この接着剤って一体何でしょう? それがですね、両方のテーブルに共通して存在する列。ああ。この例で言うと、まさに部署コード。 なるほど、部署コード。はい、この共通のコードを手がかりにして、社員テーブルの行と部署テーブルの行を、こう横に連結させるわけです。これがジョインの基本原理ですね。 なるほど。それで最も基本的なのが、インナージョイン、内部結合ですね。ええ。資料ではパズルを完成させるイメージって説明されてます。 両方のテーブルに共通のコードが存在する行だけを、こうカチッと繋ぎ合わせると。そうですそうです。ピッタリはまるものだけを集めてくる感じ。 でも、ここで重要な問いが生まれてくるわけですよね。資料が指摘しているように、もし部署が未定の新人社員がいたら、っていうケース。 まさにそこです。この社員の部署コードは、まだ部署テーブルには存在しない。 そうなると、インナージョインを使うと、相手が見つからないので、この新人社員のデータは結果から消えてしまいます。 うわ、消えちゃうんだ。ここが本当に面白いところですね。ええ。そこで登場するのが、レフトアウタージョイン、左外部結合。 はい、これを使えば相手、つまり部署名が見つからなくても、左側のテーブル、この場合は社員名簿のデータは全員分残して、って命令できる。そういうことですね。 その通りです。その場合、部署名みたいに相手が見つからなかった項目は、空欄、つまりナルとして表示されます。 ナルですね。ええ、なので、どちらのジョインを使うかで、どのデータが残り、どのデータが消えるかが全く変わってくるんです。 なるほど、この使い分けを理解することこそが、単なるデータ操作から、意図した情報を引き出すための鍵になると、まあ、資料が言うように、これがSQLの醍醐味なんですね。 つまりジョインを理解するっていうことは、点在するデータを線で結んで、一つの意味のある情報として再構築するスキルを身につけるということなんですね。 ええ、そしてここからさらに思考を広げてみたいんですが。おっ、何でしょう。 資料では、レフトアウタージョインが紹介されましたよね。これは左側のテーブルを基準にデータを残す方法でした。 はい、そうでした。では、もしライトアウタージョインというものが存在するとしたら、それはどんな動きをすると思いますか? ライト、右ですか。まあ、レフトの逆だから、右側のテーブルを基準にする、ってことかな。 そうですね。そして実世界のどんな場面で、レフトじゃなくてあえてライトを使いたくなるか。 へえ。少し想像を巡らせてみるのも結構面白いかもしれませんね。

このコンテンツは Web society で視聴・学習できます。