データベースビューの作成と更新

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

はじめに

このプロジェクトでは、MySQL データベースに学生用のビューを作成し、そのビュー内のデータを更新する方法を学びます。

👀 プレビュー

MySQL [edusys]> SELECT * FROM student WHERE ID = '70557';
+-------+---------+------+
| id    | name    | cred |
+-------+---------+------+
| 70557 | History |    0 |
+-------+---------+------+
1 row in set (0.001 sec)

🎯 タスク

このプロジェクトでは、以下を学びます。

  • 既存のテーブルに基づいてビューを作成する方法
  • ビュー内のデータを更新する方法

🏆 成果

このプロジェクトを完了すると、以下のことができるようになります。

  • データベースビューの概念と作成方法を理解する
  • SQL 更新文を使ってビュー内のデータを変更する
  • これらのスキルを使ってデータベース内のデータを管理・保守する

学生用ビューの作成

このステップでは、student テーブルに基づいて学生用のビューを作成する方法を学びます。

  1. MySQL を起動する:

    sudo /etc/init.d/mysql start
    
  2. MySQL ターミナルにログインする:

    mysql -uroot
    
  3. edusys.sql スクリプトのデータを MySQL にインポートする:

    SOURCE ~/project/edusys.sql
    
  4. ~/project ディレクトリに updateView.sql という名前の新しいファイルを作成する。

  5. 次のフィールドを含む teaches_view という名前のビューを作成するためのコードをファイルに追加する:

    student student_view
    ID id
    name name
    tot_cred cred

    コードは以下のようになるはずです:

    USE edusys
    CREATE VIEW IF NOT EXISTS student_view AS
    SELECT ID AS id, name AS name, tot_cred AS cred
    FROM student;
    

    これにより、student テーブルから IDnametot_cred 列を選択し、それぞれ idnamecred にリネームした student_view という名前のビューが作成されます。

学生用ビューの更新

このステップでは、student_view ビュー内のデータを更新する方法を学びます。

  1. updateView.sql ファイルを開き、student_view ビュー内の id'70557' のエントリに対して、name フィールドを 'History' に更新するコードをファイルに追加します。

    UPDATE student_view
    SET name = 'History'
    WHERE id = '70557';
    

    これは、student_view ビュー内の id'70557' の行の name フィールドを 'History' に更新します。

  2. 最終的なコードは以下の通りです。

    USE edusys
    -- 表に示すように対応するフィールドを持つ student_view テーブルを作成する
    CREATE VIEW IF NOT EXISTS student_view AS
    SELECT ID AS id, name AS name, tot_cred AS cred
    FROM student;
    
    -- student_view ビュー内の id が 70557 のエントリに対して、name フィールドを History に更新する
    UPDATE student_view
    SET name = 'History'
    WHERE id = '70557';
    
  3. MySQL ターミナルで SQL スクリプトを実行します。

    SOURCE ~/project/updateView.sql
    
  4. ID'70557'student テーブルからデータを選択することで更新を確認します。

    SELECT * FROM student WHERE ID = '70557';
    

    出力には更新された name フィールドが表示されるはずです。

    +-------+---------+------+
    | id    | name    | cred |
    +-------+---------+------+
    | 70557 | History |    0 |
    +-------+---------+------+
    1 row in set (0.001 sec)
    

おめでとうございます!あなたは成功裏に学生用のビューを作成し、そのビュー内のデータを更新しました。

まとめ

おめでとうございます!このプロジェクトを完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。

✨ 解答を確認して練習✨ 解答を確認して練習