它如何从 SQL 中的另一个视图工作?
How does it work a view from another view in SQL?
我有一个关于视图的技术问题。我知道视图就像存储的查询,在执行之前它们实际上没有任何数据,但是当您从另一个视图创建视图时会发生什么?我的意思是,我是否需要先执行第一个视图才能执行包含第一个视图的第二个视图?或者只执行第二个视图,第一个视图将被执行?
对我来说有点棘手,所以我需要很好地理解它,抱歉,如果听起来很简单,但我对它有点陌生。
顺便谢谢你的时间,我希望你能帮我解决这个理论问题。
如果您熟悉其他编程语言,您可能会将视图视为“宏”。它一般不是通用宏,但也有相似之处。
关键思想是,当您引用视图时,您可以认为代码在查询中被替换为子查询。所以它在查询为 运行.
时执行
如果一个视图引用另一个视图,也会发生同样的事情。当外部视图被替换时。然后引用第二个视图的代码被替换。以此类推无限.
这是概念性描述。某些数据库可能会预编译视图,因此它实际上并没有替换视图定义的文本。但同样的想法也适用。
我有一个关于视图的技术问题。我知道视图就像存储的查询,在执行之前它们实际上没有任何数据,但是当您从另一个视图创建视图时会发生什么?我的意思是,我是否需要先执行第一个视图才能执行包含第一个视图的第二个视图?或者只执行第二个视图,第一个视图将被执行?
对我来说有点棘手,所以我需要很好地理解它,抱歉,如果听起来很简单,但我对它有点陌生。
顺便谢谢你的时间,我希望你能帮我解决这个理论问题。
如果您熟悉其他编程语言,您可能会将视图视为“宏”。它一般不是通用宏,但也有相似之处。
关键思想是,当您引用视图时,您可以认为代码在查询中被替换为子查询。所以它在查询为 运行.
时执行如果一个视图引用另一个视图,也会发生同样的事情。当外部视图被替换时。然后引用第二个视图的代码被替换。以此类推无限.
这是概念性描述。某些数据库可能会预编译视图,因此它实际上并没有替换视图定义的文本。但同样的想法也适用。