Sql 视图分辨率定义

Sql 视图分辨率定义,sql,Sql,我目前正在准备考试,过去的一道试卷题是关于视图解析的。在有了谷歌之后,我只会让自己更加困惑它到底是什么 遗憾的是,我们的讲演幻灯片没有详细介绍这个主题。据我所知,视图定义与查询相结合。例如,您可以从正在定义的视图中选择一个视图,它将像普通查询一样运行 因此,redandlondon的定义如下: CREATE VIEW redandlondon (pno, pname, mass) AS SELECT pno, pname, weight * 2.2 FROM p WHERE city = 'Lo

我目前正在准备考试,过去的一道试卷题是关于视图解析的。在有了谷歌之后,我只会让自己更加困惑它到底是什么

遗憾的是,我们的讲演幻灯片没有详细介绍这个主题。据我所知,视图定义与查询相结合。例如,您可以从正在定义的视图中选择一个视图,它将像普通查询一样运行

因此,redandlondon的定义如下:

CREATE VIEW redandlondon (pno, pname, mass)
AS SELECT pno, pname, weight * 2.2
FROM p
WHERE city = 'London'; 
以下两项将产生相同的输出

SELECT pname, mass
FROM redandlondon
ORDER BY pname;

SELECT pname, weight * 2.2
FROM p
WHERE city = ‘London’
ORDER BY pname; 
如果我错了,任何帮助都将不胜感激,也许还有一个更简单的定义


感谢所有数据,其中city='London'为红色

表和视图都有定义,例如表的列或视图中的列。所有列都具有给定的数据类型

表包含分布在磁盘上存储的物理页上的给定列集合的行数据

视图的定义类似于表。但是,它们不保存行数据。在视图中找到的数据由从包含行数据的表中读取的基础查询填充


从视图中读取数据或将视图与现有查询关联时,SQL server将在视图中执行查询并将其关联到数据集。当它这样做时,将是视图分辨率。

结果如何相同?在一种情况下,您有一个额外的约束(颜色=‘红色’),而不是另一种情况下的视图。@OldProgrammer啊,是的,对此很抱歉。是要把那一点去掉的。抱歉给你带来困惑。嗨@Amireza Keshavarz。谢谢你的回答!。忽略颜色=‘红色’位,我已经编辑掉了(很抱歉)。我对视图分辨率的理解正确吗?