広告スペース(バナー)
🗄️SQL レッスン
データ操作とサブクエリ5▾
構文の基本を深める7▾
応用的な条件・結合7▾
検索とテーブル操作の応用6▾
高度なクエリ技法6▾
集計とデータ整合性6▾
レッスン 50 / 50
【応用】ミニ図書管理システムを作ろう
このレッスンでは、これまで学んだJOIN・WHERE・ORDER BY・GROUP BYを組み合わせて、実践的な図書管理システムのデータベースを作ることを目標にします。「SQL 実践 図書管理」で調べている方向けです。
ここまで学んだJOIN・WHERE・ORDER BY・GROUP BYを組み合わせて、簡単な図書管理システムのデータベースを作ってみましょう。「本」「貸出記録」という2つのテーブルを結合して、実際のアプリでも使われるような検索を行います。
サンプルコードでは、booksテーブルとloansテーブルをLEFT JOINで結合し、本ごとに何回貸し出されたかをCOUNT(loans.id)で集計しています。一度も借りられていない本(まだ貸出記録がない本)も含めて全冊を表示するため、LEFT JOINが使われている点に注目してみましょう。
初心者がよくつまずくのが、これだけ多くの要素を組み合わせたクエリを、どこから読み解けばよいか分からなくなることです。まずはJOINの部分だけ、次にGROUP BYの部分だけ、というように1つずつコメントアウトしながら結果を確認していくと、全体の理解がしやすくなります。
実務のデータベース設計では、こうした複数テーブルの組み合わせがほとんどです。ここまでの49レッスンで学んだ知識を総動員して、実際に手を動かしながら理解を定着させましょう。
SQL
OUTPUT / 実行結果
💡 初回実行時はSQLエンジンの読み込みに数秒かかります。
広告スペース(バナー)
広告スペース(記事内)