Временные таблицы и представления SQL для пользователя LuckyTemplates

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

С временными таблицами и представлениями SQL вы можете свободно манипулировать набором данных с помощью нескольких команд, не запрашивая их повторно, поскольку они уже хранятся в отдельной таблице.

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

Исходя из самого названия, временные таблицы используются для временного хранения данных в сеансе.

Мы также можем выполнять с ними несколько операций, как с физическим столом . Представьте, что у вас есть очень длинная команда SQL. Вы можете просто поместить это во временную таблицу и начать отладку или устранение ошибок, не затрагивая исходный запрос. Кроме того, временные таблицы обладают мощными возможностями и часто используются в SQL.

Оглавление

Два типа временных таблиц в SQL

В SQL есть 2 типа временных таблиц. Это локальные и глобальные временные таблицы.

Локальные временные таблицы существуют только в том сеансе, в котором они были созданы. Мы не сможем получить доступ к этой таблице в других сеансах. Из-за этого локальные временные таблицы больше не будут существовать после закрытия сеанса, в котором они были созданы.

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

Обратите внимание, что вы можете просто определить, какой тип временной таблицы используется в запросе, проверив символ « # » для локальной и « ## » для глобальной временной таблицы.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Локальные временные таблицы обычно начинаются с « # » в имени таблицы.

Временные таблицы и представления SQL для пользователя LuckyTemplates

С другой стороны, глобальные временные таблицы начинаются с « ## » перед именем таблицы.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Кроме того, если вы хотите быстро создать любую таблицу, вы можете выполнить команду: SELECT * INTO #customers FROM dbo.courses в качестве примера.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Эта команда создаст новую временную таблицу с именем #customers со всеми данными из таблицы dbo.courses .

Представления в Microsoft SQL Server Management Studio

Давайте теперь обсудим представления SQL с помощью этого примера команды.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Скажем, например, мы не хотим повторно выполнять такую ​​​​команду. Вы можете просто поместить его в представление, выполнив приведенную ниже команду.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Создание представления аналогично созданию таблиц. Это позволит нам выполнить введенный нами запрос, выбрав созданное нами имя представления. В данном случае это CustomersbyYear_v .

Временные таблицы и представления SQL для пользователя LuckyTemplates

Важно отметить, что представления отличаются от временных таблиц. Это потому, что представления видны в вашей базе данных так же, как физическая таблица, если вы не удалите ее. Кроме того, представления не хранят никаких данных или значений.

Вместо этого он просто отобразит команду, которую вы ввели сразу после команды CREATE VIEW . Вы также можете запустить любую табличную операцию в представлениях.

Самое главное, мы можем легко идентифицировать представления, поскольку они обычно представлены путем добавления «v» в начале или конце имени представления.

Создание временных таблиц и представлений в SQL

Для этого примера у меня есть этот запрос, который будет объединять и отображать записи из Sales.SalesOrderHeader и Sales.Customer C после его выполнения.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Временные таблицы и представления SQL для пользователя LuckyTemplates

Создание локальных временных таблиц в SQL

Представьте, что вы написали запрос длиной в 200 строк, и вам нужно его отладить и выполнить определенные операции. Вы не можете напрямую редактировать запрос , так как это может вызвать больше ошибок в процессе.

В этом случае, используя предыдущий пример, мы создадим локальную временную таблицу, добавив команду INTO #test_local перед командой FROM.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Как только мы запустим эту команду, #test_local теперь будет содержать объединенные записи Sales.SalesOrderHeader и Sales.Customer C. В результате это то, что вы увидите, выбрав таблицу #test_local .

Временные таблицы и представления SQL для пользователя LuckyTemplates

После этого мы можем выполнять любые операции над таблицей #test_local . Мы выберем все записи из #test_local , затем изменим порядок записей по CustomerID , используя следующую команду. 

Временные таблицы и представления SQL для пользователя LuckyTemplates

В результате записи теперь сортируются по их CustomerID. Но поскольку мы использовали локальную временную таблицу, мы не можем получить доступ или использовать таблицу #test_local в другом сеансе. В следующем примере показано, что произойдет, если мы попытаемся получить доступ к #test_local в SQLQuery2.sql .

Временные таблицы и представления SQL для пользователя LuckyTemplates

Основываясь на предыдущем примере, при выборе #test_local просто отображалось сообщение об ошибке. Это связано с тем, что таблица #test_local существует только в сеансе, в котором она была создана, то есть в SQLQuery1.sql .

Создание глобальных временных таблиц в SQL

Далее мы будем использовать тот же запрос, что и в #test_local . Но на этот раз мы будем использовать глобальную .

Временные таблицы и представления SQL для пользователя LuckyTemplates

Теперь, если мы выберем ##test_global и упорядочим записи по CustomerID, он покажет тот же вывод, что и в #test_local, поскольку мы использовали тот же запрос. 

Временные таблицы и представления SQL для пользователя LuckyTemplates

После этого мы попытаемся получить доступ к таблице ##test_global в другом сеансе, выбрав ее. Это работает без проблем, поскольку мы используем глобальную временную таблицу.

Временные таблицы и представления SQL для пользователя LuckyTemplates

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

Помните, что локальные временные таблицы доступны только в том сеансе, в котором они были созданы . Как только вы закроете этот сеанс, он больше не будет существовать.

С другой стороны, глобальные временные таблицы видны всем сеансам , если только вы не закроете все активные сеансы или само приложение.

Создание представлений в SQL

Теперь мы собираемся создать представление. В этом примере у нас есть существующий запрос, подобный этому.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Мы можем приступить к созданию представления, добавив в этот запрос команду CREATE VIEW .

Временные таблицы и представления SQL для пользователя LuckyTemplates

После запуска команды в базе данных, над которой мы работаем, будет создано представление. В данном случае это AdventureWorks2012 .

Мы также должны увидеть dbo.CustomerView_v в папке Views после ее обновления. Чтобы обновить папку Views, щелкните ее правой кнопкой мыши и выберите Refresh .

Временные таблицы и представления SQL для пользователя LuckyTemplates

Щелкните значок + справа от папки Views, и dbo.CustomerView_v станет видимым.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Вы можете открыть это представление, щелкнув правой кнопкой мыши dbo.CustomerView_v, а затем выберите «Выбрать первые 1000 строк» ​​в параметрах. Это отобразит 1000 записей в этом представлении .

Временные таблицы и представления SQL для пользователя LuckyTemplates

После этого мы теперь можем использовать dbo.CustomerView_v и выполнять с ним любые операции, как с таблицей. Например, мы хотим выбрать записи с SalesOrderID больше 50000 в dbo.CustomerView_v . В этом случае мы будем использовать следующую команду.

Временные таблицы и представления SQL для пользователя LuckyTemplates

Теперь мы можем запустить операцию над созданным нами представлением.

Заключение

Подводя итог, мы узнали о двух типах временных таблиц, их различиях и том, почему нам нужно их использовать. Кроме того, мы обсудили, что временные таблицы служат способом исправления ошибок в ваших запросах без повреждения фактического запроса.

Имейте в виду, что временные таблицы видны только тем сеансам, в которых они были созданы. Следовательно, он больше не будет существовать, как только мы закроем активные сеансы или само приложение.

Мы также узнали, что представления не хранят данные или записи. Он показывает только результаты на основе запроса, который вы хотите отобразить. Эти представления сохраняются в нашей базе данных после их создания. 

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

Всего наилучшего,

Хафиз

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.