SQL视图的创建和使用
什么是视图呢?
视图是由SELECT语句组成的查询定义的虚拟表;同真实的表一样,视图的作用类似于筛选。或者说:视图是基于 SQL 语句的结果集的可视化的表
视图的特点:
- 视图中的数据不属于视图本身,他来源于其他表。但是视图可以进行增删改查等操作。这里还涉及到一个问题:对视图的增删改操作会影响到对应的基表吗?这个问题我们文章后面会进行探讨
- 视图不能索引,不能有相关的触发器和默认值。在sqlserver里面,不能在视图后使用order by语句。
- 视图可以被嵌套,一个视图可以嵌套另一个视图
- 创建视图时,视图的名字不能和表名或其他视图名重复,视图名称具有唯一性。
- 数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响
创建视图的语法:
CREATE VIEW 视图名 AS
SELECT 查询语句
FROM 表或者其他视图
WHERE 筛选语句
PS:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。
举个j简单的栗子:
if exists(select * from sys.views where name = 'view_name')
drop view view_name
go
CREATE VIEW View_Product AS
SELECT ProductID,ProductName
FROM Products
WHERE Price>1000
我们可以查询上面的视图
SELECT * FROM View_Product