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 ステートメントを使用するときは、本当にそのビューを削除するかどうかを確認してください。一度削除すると、ビューの定義を復元することはできません。

その他の拡張