Как работает представление из другого представления в SQL?

#sql #view #subquery

Вопрос:

У меня есть технический вопрос о представлениях. Я знаю, что представления похожи на сохраненные запросы, в которых на самом деле нет никаких данных до тех пор, пока они не будут выполнены, но что происходит, когда вы создаете представление из другого? Я имею в виду, нужно ли мне выполнять первое представление, прежде чем выполнять второе, содержащее первое? Или просто при выполнении второго представления будет выполнено первое?

Это немного сложно для меня, поэтому мне нужно хорошо это понять, и извините, если это звучит просто, но я немного новичок в этом.

Кстати, спасибо за ваше время, я надеюсь, что вы сможете помочь мне с этим теоретическим вопросом.

Комментарии:

1. Просто выполните второе представление. Это, в свою очередь, приведет к выполнению первого представления.

2. Это просто работает, не нужно беспокоиться!

3. Вы не выполняете представления — вы ВЫБИРАЕТЕ из них …..

Ответ №1:

Если вы знакомы с другими языками программирования, вы можете рассматривать представление как «макрос». Как правило, это не макрос общего назначения, но есть сходства.

Ключевая идея заключается в том, что когда вы ссылаетесь на представление, вы можете вместо этого думать, что код заменен в запросе в качестве подзапроса. Таким образом, он выполняется при выполнении запроса.

Если представление ссылается на другое представление, происходит то же самое. Когда внешний вид заменяется. Затем код, ссылающийся на второе представление, заменяется. И так до бесконечности.

Это концептуальное описание. Некоторые базы данных могут предварительно компилировать представления, поэтому на самом деле это не заменяет текст определения представления. Но применима та же идея.

Комментарии:

1. Классно! Спасибо Гордон, теперь мне все ясно 🙂