在Sql Server数据库中,Sql Server视图是非常重要的概念,作为查询所定义的虚拟表,Sql Server视图在Sql的用途非常广泛。
Sql Server视图是由一个查询所定义的虚拟表,它与物理表不同的是,视图中的数据没有物理表现形式,除非你为其创建一个索引;如果查询一个没有索引的视图,Sql Server实际访问的是基础表。
如果你要创建一个Sql Server视图,为其指定一个名称和查询即可。Sql Server只保存视图的元数据,用户描述这个对象,以及它所包含的列,安全,依赖等。当你查询视图时,无论是获取数据还是更新数据,Sql server都用视图的定义来访问基础表;
Sql Server视图在我们日常操作也扮演着许多重要的角色,比如可以利用视图访问经过筛选和处理的数据,而不是直接访问基础表,以及在一定程度上也保护了基础表。
我们在创建Sql Server视图的时候,也要遵守三个规则:
不能在视图定义中指定ORDER BY ,除非定义中包含Top或For Xml 说明;所有的列必须有列名;这些所有的列名必须唯一; 对于视图表中在没有top或for xml说明的情况下,不能有Order by 语句,这是因为视图被认为是一个表,表是一个逻辑的实体,它的行是没有顺序的。视图中所有列必须有列名,且唯一的情况我想大家都理解;
下面的sql语句表示创建一个简单的Sql Server视图:
- CREATE VIEW dbo.V1
- AS
- SELECT CustomerID,CompanyName FROM Customers
- WHERE EXISTS(SELECT * FROM Orders WHERE Customers.CustomerID = Orders
【编辑推荐】
询表的字段名的sql语句写法