はじめに
このプロジェクトでは、MySQL におけるデータベースビューの作成と使用方法を学びます。データベースビューは、仮想テーブルであり、基になるデータのカスタマイズされた視点を提供し、特定のデータ処理をユーザーに隠し、データアクセスを簡素化します。
👀 プレビュー
MariaDB [edusys]> SELECT * FROM comp_spring_2018_taylor;
+-----------+-------------+
| course_id | room_number |
+-----------+-------------+
| CS-319 | 3128 |
+-----------+-------------+
1 row in set (0.00 sec)
🎯 タスク
このプロジェクトでは、以下を学びます。
- MySQL サーバーを起動し、データベースをインポートする方法
- 特定の学期、場所、学部で提供されるすべての主要コースの教室番号を表示するビューを定義する方法
- 前のビューの結果をフィルタリングして、特定の建物にあるコースのみを含めるビューを定義する方法
🏆 成果
このプロジェクトを完了すると、以下ができるようになります。
- データベースビューの概念と利点を理解する
- データアクセスを簡素化し、不要な複雑さを隠すためのカスタムビューを作成する
- SQL クエリの知識を適用して、実際のシナリオでビューを定義して使用する
MySQL を起動してデータベースをインポートする
このステップでは、MySQL サーバーを起動してedusys.sqlデータベースをインポートする方法を学びます。
- 次のコマンドを使用して MySQL サーバーを起動します。
sudo service mysql start
- 次のコマンドを使用して MySQL コマンドラインインターフェイスにアクセスします。
sudo mysql
- 次のコマンドを使用して
edusys.sqlデータベースをインポートします。
source /home/labex/project/edusys.sql;
これにより、edusysデータベースが MySQL サーバーにインポートされます。
comp_spring_2018 ビューを定義する
このステップでは、comp_spring_2018 ビューを定義する方法を学びます。
~/projectディレクトリにcomp_spring_2018_taylor.sqlファイルを作成します。- 次の SQL クエリを使用して
comp_spring_2018ビューを作成するためのコードをファイルに追加します。
CREATE VIEW comp_spring_2018 AS
SELECT course.course_id, building, room_number
FROM section, course
WHERE course.course_id = section.course_id AND semester = 'Spring' AND year = 2018 AND dept_name = 'Comp. Sci.';
このビューは、2018 年の春学期に「情報科学」学科が提供するすべてのコースの course_id、建物、および 教室番号 を表示します。
comp_spring_2018_taylor ビューを定義する
このステップでは、comp_spring_2018_taylor ビューを定義する方法を学びます。
comp_spring_2018_taylor.sqlファイルを開きます。- 前のステップで追加したコードの後に、次の SQL クエリを使用して
comp_spring_2018_taylorビューを作成します。
CREATE VIEW comp_spring_2018_taylor AS
SELECT course_id, room_number
FROM comp_spring_2018
WHERE building = 'Taylor';
このビューは、2018 年の春学期に「情報科学」学科が提供し、「テイラー」ビルにあるすべてのコースの course_id と room_number を表示します。
ソリューションを検証する
ソリューションを検証するには、次の SQL クエリを実行できます。
source /home/labex/project/comp_spring_2018_taylor.sql;
SELECT * FROM comp_spring_2018_taylor;
これにより、次の出力が表示されるはずです。
+-----------+-------------+
| course_id | room_number |
+-----------+-------------+
| CS-319 | 3128 |
+-----------+-------------+
1 row in set (0.00 sec)
おめでとうございます!あなたはこのプロジェクトを成功裏に完了しました。
まとめ
おめでとうございます!このプロジェクトを完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。
