SQL Server (Transact-SQL) VIEW 语句用于创建 SQL Server 视图,它是基于 SQL Server 语句创建的虚拟表。视图包含行和列,就像普通表一样。

所有 SQL Server 函数,WHEREHAVING JOIN 语句可用于创建 SQL Server VIEW。 

SQL Server VIEW 语句可用于创建、更新或删除视图。

语法

在 SQL Server (Transact-SQL) 中使用 VIEW 语句的语法如下:

/* 创建一个视图*/
CREATE VIEW view_name AS
SELECT column1, column2, column3, ...
FROM table_name
WHERE condition(s);

/* 更新一个视图*/
CREATE OR ALTER VIEW view_name AS
SELECT column1, column2, column3, ...
FROM table_name
WHERE condition(s);

/* 删除一个视图*/
DROP VIEW view_name; 

示例:

考虑一个名为 Employee 的数据库表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

创建视图

下面提到的SQL Server语句用于在Employee表上创建一个视图,该表包含工资大于2800的员工的所有记录。

CREATE VIEW Employee_Salary_GT_2800 AS
SELECT * FROM Employee WHERE Salary > 2800; 

查询视图

创建视图后,可以如下使用:

SELECT * FROM Employee_Salary_GT_2800; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
1JohnLondon253000
4KimAmsterdam303100
5RameshNew Delhi283000

创建或更新视图

CREATE OR ALTER VIEW 语句用于更新视图(如果存在),否则创建一个新视图。

下面的语句用于更新上述视图,该视图包含工资大于2800且年龄大于25岁的员工的所有记录。

CREATE OR ALTER VIEW Employee_Salary_GT_2800 AS
SELECT * FROM Employee WHERE Salary > 2800 AND AGE > 25; 

更新视图后,可以进行以下查询用于查看其内容:

SELECT * FROM Employee_Salary_GT_2800; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
4KimAmsterdam303100
5RameshNew Delhi283000

删除视图

DROP VIEW 用于删除视图。

DROP VIEW Employee_Salary_GT_2800;