書籍検索チャレンジ

MySQLBeginner
オンラインで実践に進む

はじめに

ある地元の書店が、在庫管理システムの改善を検討しています。あなたはデータベース管理者として、MySQL クエリを使用して特定の書籍を見つけ出すサポートを行う必要があります。このチャレンジでは、MySQL データベースにおけるデータのフィルタリングとソートの能力が試されます。

技術書の検索

この書店では、技術書セクションの価格設定の判断材料にするため、過去 2 年間(2022 年〜2023 年)のすべての技術書を特定し、価格の高い順に並べる必要があります。

タスク

  • root ユーザーとして MySQL に接続する
  • bookstore データベースを使用する
  • 以下の条件を満たすクエリを作成する:
    • 2022 年から 2023 年のすべての技術書(Technical books)を検索する
    • 価格(price)の降順(高い順)でソートする
    • タイトル(title)、価格(price)、出版年(publication_year)のみを表示する
  • 結果を ~/project ディレクトリ内の technical_books.txt という名前のファイルに保存する

要件

  • すべての操作は ~/project ディレクトリ内で実行すること
  • クエリでは WHERE 句を使用して、ジャンル(genre)と出版年(publication_year)でフィルタリングすること
  • 結果は価格の降順(DESC)でソートされていること
  • 2022 年と 2023 年の書籍のみを含めること
  • 出力には、指定された列を title, price, publication_year の順序で正確に含めること
  • 出力結果は ~/project/technical_books.txt ファイルに保存すること

正しいクエリを作成した後、結果は以下のようになります:

cat ~/project/technical_books.txt
+----------------------+-------+------------------+
| title                | price | publication_year |
+----------------------+-------+------------------+
| Data Design Patterns | 39.99 |             2022 |
| SQL for Beginners    | 34.99 |             2023 |
+----------------------+-------+------------------+

まとめ

このチャレンジでは、複数の条件に基づいたフィルタリングを行う WHERE 句の使用や、結果を並べ替える ORDER BY 句の使用など、複数の SQL コンセプトを組み合わせる練習をしました。これらの基本的な SQL スキルは、実際のデータベースアプリケーションにおいてデータ分析やレポート作成を行うために不可欠です。データを効果的にフィルタリングおよびソートできる能力により、大規模なデータセットから必要な情報を正確に抽出することが可能になります。

✨ 解答を確認して練習