SQL ビュー(Views)
ビューは視覚化されたテーブルです。
この章では、ビューの作成、更新、削除方法について説明します。
SQL CREATE VIEW ステートメント
SQL では、ビューは SQL ステートメントの結果セットに基づく視覚化されたテーブルです。
ビューには行と列が含まれており、実際のテーブルのようなものです。ビュー内のフィールドは、1つまたは複数のデータベース内の実際のテーブルのフィールドです。
ビューに SQL 関数、WHERE、JOIN ステートメントを追加でき、あたかもデータが単一のテーブルから来ているかのようにデータを表示することもできます。
SQL CREATE VIEW 構文
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
パラメータの説明:
- CREATE VIEW:ビューを作成することを宣言します。
- view_name:ビューの名前を指定します。
- AS:ビューの定義の開始を示すキーワードを指定します。
- SELECT column1, column2, ...:ビューに含まれる列を指定します。テーブルの列または計算列にすることができます。
- FROM table_name:ビューがどのテーブルからデータを取得するかを指定します。
- WHERE condition:オプション部分で、フィルタ条件を指定してビュー内の行を制限するために使用します。
注釈:ビューは常に最新のデータを表示します!ユーザーがビューをクエリするたびに、データベースエンジンはビューの SQL ステートメントを使用してデータを再構築します。
SQL CREATE VIEW の例
従業員情報を含む employees テーブルがあり、employee_id、first_name、last_name、salary、department_id の列があるとします。ここで、給与が特定のしきい値より高い従業員情報を表示するビューを作成します。
例は次のとおりです:
-- 创建包含高工资员工信息的视图 CREATE VIEW high_salary_employees AS SELECT employee_id, first_name, last_name, salary FROM employees WHERE salary > 50000;
この例では、給与が 50000 より高い従業員の情報を含む、high_salary_employees という名前のビューを作成しました。
これで、通常のテーブルをクエリするのと同じようにこのビューを使用できます:
-- 查询高工资员工视图 SELECT * FROM high_salary_employees;
これにより、毎回同じフィルタ条件を記述しなくても、給与が 50000 より高いすべての従業員の詳細情報が返されます。
注目すべき点は、ビューは本質的に仮想テーブルであり、データを保存するのではなく、ベーステーブルのクエリ結果に基づいて生成されることです。したがって、ベーステーブルのデータが変更されると、ビューの内容もそれに応じて更新されます。
SQL ビューの更新
SQL では、ビューを更新するために UPDATE ステートメントを直接使用することはできません。ビューはクエリ結果に基づいて生成された仮想テーブルであり、実際にデータを格納するテーブルではないためです。
ビューを更新する実質的な方法は、ビューの基になるテーブルのデータを更新することであり、ビューはこれらの変更を反映します。
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
ここで、table_name はベーステーブルの名前、column1, column2, ... は更新する列、value1, value2, ... は新しい値、condition は更新条件です。
ここで、"Current Product List" ビューに "Category" 列を追加します。次の SQL でビューを更新します:
例として、給与が 50000 より高い従業員情報を表示する high_salary_employees というビューがあり、このビューが employees テーブルのクエリ結果に基づいている場合、次の手順でデータを更新できます:
-- 步骤 1: 更新 employees 表中的数据 UPDATE employees SET salary = 60000 WHERE employee_id = 1001; -- 步骤 2: 查询更新后的高工资员工视图 SELECT * FROM high_salary_employees;
これにより、employees テーブルのデータが更新され、ビュー high_salary_employees にこれらの変更が反映されます。
SQL ビューの削除
SQL では、ビューの取り消し(または削除)は DROP VIEW ステートメントを使用して行います。
DROP VIEW ステートメントは、データベースから既存のビューを削除するために使用されます。構文は次のとおりです:
DROP VIEW [IF EXISTS] view_name;
パラメータの説明:
DROP VIEW:ビューを削除することを示します。
IF EXISTS:オプション部分で、ビューが存在するかどうかを確認するために使用します。存在する場合は削除操作を実行し、存在しない場合はエラーは発生しません。一部のデータベースシステムでは、これはオプションです。
view_name:削除するビューの名前を指定します。
次のステートメントを実行すると、ビュー high_salary_employees がデータベースから削除されます。
-- 删除名为 high_salary_employees 的视图 DROP VIEW IF EXISTS high_salary_employees;
これはベーステーブルのデータには影響せず、ビューの定義が削除されるだけであることに注意してください。
テーブル内のデータを取り消すか削除する必要がある場合は、DROP TABLE ステートメントを使用する必要があります。
DROP VIEW ステートメントを使用するときは、本当にそのビューを削除するかどうかを確認してください。一度削除すると、ビューの定義を復元することはできません。
その他の拡張