SQL Serverのビューは、データベース内のテーブルや他のビューからデータを取得して仮想テーブルを作成する機能です。
本記事では、ビューの基本的な概念から作成方法、実際の使用例、さらに演習問題までを解説します。初心者でも理解しやすいよう、具体例を用いて説明します。
ビュー(View)とは?
ビューとは、SQL Serverで使用できる仮想的なテーブルの一種です。ビューを利用することで、次のような利点があります。
- データの再利用:複雑なクエリを簡略化できる
- セキュリティの向上:特定のカラムや行だけを表示可能
- メンテナンスの容易化:クエリの再利用性が高まる
ビューはあくまで仮想的なテーブルであり、実際にはデータを保存しません。基となるテーブルのデータを参照します。
ビューの基本構文
ビューを作成するには、以下の構文を使用します:
CREATE VIEW ビュー名 AS
SELECT 列名1, 列名2, ...
FROM テーブル名
WHERE 条件;
具体例: 以下の例では、EmployeesテーブルからDepartment = ‘Sales’の従業員データだけを抽出するビューを作成します。
CREATE VIEW SalesEmployees AS
SELECT EmployeeID, FirstName, LastName, Department
FROM Employees
WHERE Department = 'Sales';
ビューを作成すると、以下のように通常のテーブルのようにデータを取得できます。
SELECT * FROM SalesEmployees;
ビューの管理
ビューは一度作成した後でも変更や削除が可能です。
(1) ビューの変更
ビューの定義を変更する場合、ALTER VIEW文を使用します。
ALTER VIEW SalesEmployees AS
SELECT EmployeeID, FirstName, LastName, Department, HireDate
FROM Employees
WHERE Department = 'Sales';
(2) ビューの削除
不要になったビューを削除するには、DROP VIEW文を使用します。
DROP VIEW SalesEmployees;
ビューの使用例
例1: データの簡略化
複数のテーブルを結合して複雑なクエリを作成するときに、ビューを利用することでクエリをシンプルにできます。
CREATE VIEW ProductSales AS
SELECT p.ProductName, c.CategoryName, s.SaleDate, s.SaleAmount
FROM Products p
JOIN Categories c ON p.CategoryID = c.CategoryID
JOIN Sales s ON p.ProductID = s.ProductID;
ビューを利用してデータを取得:
SELECT * FROM ProductSales WHERE SaleAmount > 1000;
例2: セキュリティの向上
特定のカラムのみを表示するビューを作成し、ユーザーに直接テーブルへのアクセス権を与えずビューを通してデータを提供することができます。
演習問題
以下のテーブルを基にして演習問題を解きましょう。
演習1
Department = ‘IT’の従業員データを表示するビューを作成してください。
演習2
作成したビューに対して、HireDateが2020年以降の従業員を表示するクエリを作成してください。
演習3
作成したビューに新しいカラムFullName(FirstNameとLastNameを結合したもの)を追加するように変更してください。
解答例
解答1
CREATE VIEW ITEmployees AS
SELECT EmployeeID, FirstName, LastName, Department, HireDate
FROM Employees
WHERE Department = 'IT';
解答2
SELECT * FROM ITEmployees
WHERE HireDate >= '2020-01-01';
解答3
ALTER VIEW ITEmployees AS
SELECT EmployeeID,
FirstName,
LastName,
Department,
HireDate,
CONCAT(FirstName, ' ', LastName) AS FullName
FROM Employees
WHERE Department = 'IT';
まとめ
ビューを活用することで、複雑なデータの取り扱いが容易になり、セキュリティや可読性の向上が期待できます。
本記事を参考に、ぜひビューを活用してみてください!
記事の補足情報
- 推奨するSQL Serverバージョン:SQL Server 2016以降
- 使用するSQLクライアント:SQL Server Management Studio (SSMS)