広告スペース(バナー)
🗄️SQL レッスン
SELECTの基礎6
データ操作とサブクエリ5
構文の基本を深める7
応用的な条件・結合7
検索とテーブル操作の応用6
高度なクエリ技法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エンジンの読み込みに数秒かかります。

広告スペース(バナー)
広告スペース(記事内)