Конструктор реляционных запросов (SSAS)
Конструктор реляционных запросов помогает создать запрос, определяющий данные, которые необходимо извлечь из реляционных баз данных Microsoft SQL Server, Microsoft База данных SQL Windows Azure и Microsoft Параллельное хранилище данных SQL Server 2008 R2. С помощью графического конструктора запросов можно исследовать метаданные, интерактивно создавать запросы и просматривать результаты запроса. С помощью текстового конструктора запросов можно просмотреть запрос, построенный с помощью графического конструктора запросов, или изменить запрос. Также можно импортировать существующий запрос из файла или отчета.
При необходимости можно написать запрос на языке SQL, используя текстовый редактор. Чтобы переключиться в текстовый конструктор запросов, на панели инструментов нажмите кнопку переключателя Редактировать как текст. После изменения запроса в текстовом конструкторе запросов будет невозможно использовать графический конструктор запросов.
Примечание |
---|
Чтобы создать запрос к типам источников данных Oracle, OLE DB, ODBC и Teradata, необходимо использовать текстовый конструктор запросов. |
Примечание по безопасности |
---|
При создании и выполнении запросов пользователи получают доступ к источникам данных. Следует предоставить минимальные разрешения на источники данных, например разрешение только на чтение. При выполнении запроса для соединения с источником данных используются учетные данные текущего пользователя, а не указанные на странице «Сведения об олицетворении». |
Графический конструктор запросов
Графический конструктор запросов позволяет просматривать таблицы и представления баз данных, выполнять интерактивное построение инструкции SQL SELECT, в которой указываются таблицы и столбцы базы данных, из которых нужно получить данные для набора данных. Следует выбрать поля, включаемые в набор данных, и при необходимости указать фильтры, ограничивающие данные в наборе данных. Можно указать, что фильтры используются в качестве параметров, и указывать значение фильтра во время выполнения. Если выбрать несколько таблиц, конструктор запросов описывает связи между наборами двух таблиц.
Графический конструктор запросов состоит из трех областей. В зависимости от того, использует ли запрос таблицы и представления или хранимые процедуры и возвращающие табличное значение функции, макет конструктора запросов изменяется.
Примечание |
---|
База данных Параллельное хранилище данных SQL Server 2008 R2 не поддерживает хранимые процедуры и возвращающие табличные значения функции. |
На следующем рисунке показан графический конструктор запросов при использовании таблиц и представлений.
На следующем рисунке показан графический конструктор запросов при использовании хранимых процедур или возвращающих табличное значение функций.
В следующей таблице описываются функции каждой панели.
Панель |
Функция |
---|---|
Представление базы данных |
Отображается иерархическое представление таблиц, представлений, хранимых процедур и возвращающих табличное значение функций, организованных схемой базы данных. |
Выбранные поля |
Отображается список имен полей базы данных из выбранных элементов на панели «Представление базы данных». Эти поля становятся коллекцией полей для набора данных. |
Параметры функции |
Отображается список входных параметров для хранимых процедур или возвращающих табличное значение функций на панели представления базы данных. |
Связи |
Отображает список связей, которые выводятся из выбранных полей для таблиц или представлений на панели «Представление базы данных», или связей, созданных вручную. |
Примененные фильтры |
Отображается список полей и условия фильтра для таблиц или представлений в области представления базы данных. |
Результаты запроса |
Отображает образец данных для результирующего набора автоматически созданного запроса. |
Панель «Представление базы данных»
На панели «Представление базы данных» отображаются метаданные объектов базы данных, для просмотра которых у пользователя есть разрешения, определяемые соединением с источником данных и учетными данными. В иерархическом представлении отображаются объекты базы данных, организованные схемой базы данных. Можно развернуть узлы для каждой схемы, чтобы просмотреть таблицы, представления, хранимые процедуры и возвращающие табличное значение функции. Разверните таблицу или представление, чтобы отобразить столбцы.
Панель «Выбранные поля»
Панель «Выбранные поля» отображает поля в наборе данных, группы и агрегаты, которые необходимо включить в запрос.
Отображаются следующие параметры.
**Выбранные поля. ** Отображает поля базы данных, выбранные для таблиц или представлений, либо входные параметры для хранимых процедур или возвращающих табличное значение функций. Поля, отображаемые на этой панели, становятся коллекцией полей для набора данных.
Для просмотра коллекции полей для набора данных воспользуйтесь областью данных отчета.
**Группировка и агрегатная обработка. **Переключается между использованием группирования и агрегатов в запросе. При отключении функции группировки и выполнения статистического вычисления после добавления групп и статистических функций последние удаляются. Текст (нет) указывает на то, что группировка и статистические функции не используются. При включении функции группировки и выполнения статистического вычисления добавленные ранее группы и статистические функции будут восстановлены.
**Удалить поле. **Удаляет выбранное поле.
Группа и статистическое выражение
Запросы, адресованные базам данных с большими таблицами, могут возвращать несколько строк данных, слишком длинных для использования, и оказывают влияние на сеть, передающую огромное количество данных. Чтобы ограничить количество строк данных, запрос может включать статистические выражения SQL, объединяющие данные на сервере базы данных.
Агрегаты предоставляют сводки данных, а сами данные группируются, чтобы поддерживать агрегаты, предоставляющие сводные данные. При использовании статистического выражения в запросе другие поля, возвращаемые запросом, автоматически группируются и запрос включает предложение SQL GROUP BY. Можно создавать сводку данных без добавления статистического выражения, используя только параметр Группировка по в списке Группировка и статистическое выражение. Многие статистические выражения содержат версию, использующую ключевое слово DISTINCT. Включение DISTINCT позволяет избежать повторяющихся значений.
Microsoft SQL Server использует Transact-SQL, а Microsoft Параллельное хранилище данных SQL Server 2008 R2 использует SQL. Оба диалекта языка SQL поддерживают предложение, ключевое слово и статистические выражения, предоставляемые конструктором запросов.
Дополнительные сведения о Transact-SQL см. в разделе Справочник по Transact-SQL (компонент Database Engine) электронной документации по SQL Server на сайте msdn.microsoft.com.
Следующая таблица содержит список агрегатов и предоставляет краткое описание каждого из них.
Агрегат |
Описание |
---|---|
Avg |
Возвращает среднее арифметическое значений в группе. Реализует агрегат SQL AVG. |
Count |
Возвращает количество элементов в группе. Реализует агрегат SQL COUNT. |
Count Big |
Возвращает количество элементов в группе. Это статистическое выражение SQL COUNT_BIG. Разница между COUNT и COUNT_BIG заключается в том, что COUNT_BIG всегда возвращает значение типа данных bigint. |
Min |
Возвращает минимальное значение в группе. Реализует агрегат SQL MIN. |
Max |
Возвращает максимальное значение в группе. Реализует агрегат SQL MAX. |
StDev |
Возвращает статистическое стандартное отклонение всех значений в группе. Реализует статистическое выражение SQL STDEV. |
StDevP |
Возвращает статистическое среднеквадратичное отклонение совокупности всех значений в указанном группой выражении. Реализует статистическое выражение SQL STDEVP. |
Sum |
Возвращает сумму всех значений в группе. Реализует статистическое выражение SQL SUM. |
Var |
Возвращает статистическую дисперсию всех значений в группе. Реализует статистическое выражение SQL VAR. |
VarP |
Возвращает статистическую дисперсию для заполнения по всем значениям в группе. Реализует статистическое выражение SQL VARP. |
Avg Distinct |
Возвращает уникальные средние значения. Реализует сочетание статистического выражения AVG и ключевого слова DISTINCT. |
Count Distinct |
Возвращает уникальные счетчики. Реализует сочетание статистического выражения COUNT и ключевого слова DISTINCT. |
Count Big Distinct |
Возвращает уникальное число элементов в группе. Реализует сочетание статистического выражения COUNT_BIG и ключевого слова DISTINCT. |
StDev Distinct |
Возвращает уникальные статистические стандартные отклонения. Реализует сочетание статистического выражения STDEV и ключевого слова DISTINCT. |
StDevP Distinct |
Возвращает уникальные статистические стандартные отклонения. Реализует сочетание агрегата STDEVP и ключевого слова DISTINCT. |
Sum Distinct |
Возвращает уникальные суммы. Реализует сочетание статистического выражения SUM и ключевого слова DISTINCT. |
Var Distinct |
Возвращает уникальные статистические дисперсии. Реализует сочетание статистического выражения VAR и ключевого слова DISTINCT. |
VarP Distinct |
Возвращает уникальные статистические дисперсии. Реализует сочетание статистического выражения VARP и ключевого слова DISTINCT. |
Панель «Параметры функции»
На панели «Параметры функции» отображаются параметры для хранимой процедуры или возвращающей табличное значение функции. Отображаются следующие столбцы.
**Имя параметра **Отображается имя параметра, определяемого хранимой процедурой или возвращающей табличное значение функцией.
Значение. Значение, которое используется для параметра, если запрос выполняется для получения данных, которые будут отображены на панели «Результаты запроса» во время разработки. Это значение не используется во время выполнения.
Панель «Связи»
На панели «Связи» отображаются связи соединения. Связи можно обнаруживать автоматически на основе связей внешнего ключа, извлеченных из метаданных базы данных, или создавать вручную.
Отображаются следующие параметры.
**Автоопределение. **Переключает функцию автоопределения, которая автоматически создает связи между таблицами. Если автоматическое определение включено, конструктор запросов создает связи из внешних ключей в таблицах, в противном случае необходимо создать связи вручную. При выборе таблиц на панели Представление базы данных автоопределение автоматически пытается создать связи. Если включить автоопределение после создания соединений вручную, эти соединения будут удалены.
Важно! При использовании с Параллельное хранилище данных SQL Server 2008 R2 метаданные, необходимые для создания соединений, не предоставляются и связи невозможно обнаружить автоматически. Если запрос извлекает данные из Параллельное хранилище данных SQL Server 2008 R2, все соединения таблицы должны создаваться вручную.
**Добавить связь. **Добавляет связь в список Связь.
Если автоопределение включено, таблицы, столбцы которых используются в запросе, автоматически добавляются в список Связь. Если автоопределение обнаружило связь между двумя таблицами, то одна таблица добавляется в столбец Левая таблица, а другая в столбец Правая таблица, а между ними создается внутреннее соединение. Каждая связь создает предложение JOIN в запросе. Если таблицы не связаны, то они включаются в столбец Левая таблица, а столбец Тип соединения указывает, что таблицы не связаны с другими таблицами. При включенном автоопределении вы не сможете вручную добавлять связи между таблицами, которые автоопределение определило как несвязанные.
При выключенном автоопределении можно добавлять и изменять связи между таблицами. Нажмите Изменить поля, чтобы указать поля, которые необходимо использовать для соединения двух таблиц.
Порядок, в котором представлены связи в списке Связь, соответствует порядку, в котором соединения выполняются в запросе. Можно изменять порядок связей, перемещая их вверх и вниз в списке.
При использовании нескольких связей в запросе на одну из таблиц в каждой связи, за исключением первой таблицы, должна иметься ссылка в предыдущих связях.
Если в предыдущей связи имеется ссылка на обе таблицы в связи, то связь не создает отдельное предложение соединения; вместо этого к предложению соединения, созданному для предыдущей связи, добавляется условие соединения. Тип соединения выводится предыдущей связью, которая ссылается на те же таблицы.
**Изменить поля. **Открывает диалоговое окно Изменить связанные поля, в котором можно добавлять и изменять связи между таблицами. Выберите поля, которые будут соединены, в правой и левой таблицах. Можно соединить несколько полей из левой таблицы и правой таблицы, чтобы указать несколько условий соединения в связи. Два поля, соединяющие левую и правую таблицы, не обязательно должны иметь одинаковые имена. Поля соединения должны иметь совместимые типы данных.
Удалить связь. Удаляет выбранную связь.
Вверх и **Вниз. **Перемещает связи вверх или вниз в списке Связь. Последовательность, в которой связи помещаются в запрос, может влиять на результаты запроса. Связи добавляются в запрос в том порядке, в котором они представлены в списке Связь.
Отображаются следующие столбцы.
Левая таблица. Отображается имя первой таблицы, являющейся частью отношения соединения.
Тип соединения. Отображает тип инструкции SQL JOIN, используемой в автоматически созданном запросе. По умолчанию, если было обнаружено ограничение внешнего ключа, используется INNER JOIN. Другими типами соединений могут быть LEFT JOIN или RIGHT JOIN. Если ни один из данных типов соединения неприменим, столбец Тип соединения отображает значение Без связи. Для несвязанных таблиц не создаются соединения CROSS JOIN, вместо этого необходимо вручную создать связи, соединяя столбцы в левой и правой таблицах. Дополнительные сведения о типах соединений см. в разделе «Основные принципы соединений» в SQL Server электронной документации по SQL Server на сайте msdn.microsoft.com.
Правая таблица. Отображается имя второй таблицы в связи соединения.
**Соединить таблицы. **Содержит список пар соединенных полей; если связь имеет несколько условий соединения, то пары полей соединения разделяются запятыми (,).
Панель «Примененные фильтры»
На панели «Примененные фильтры» отображаются условия, используемые для ограничения числа строк данных, возвращаемых во время выполнения. Условия, указанные в этой панели, используются для создания предложения SQL WHERE. При выборе этого режима происходит автоматическое создание параметра.
Отображаются следующие столбцы.
Имя поля Отображается имя поля, к которому будет применено условие.
Оператор Отображается операция, которая будет использована в критерии фильтра.
Значение Отображается значение, которое будет использовано в критерии фильтра.
Параметр Отображается параметр для добавления параметра к запросу.
Область результатов запроса
На панели результатов запроса отображаются результаты автоматически созданного запроса, заданного выбором в других областях. Столбцы результирующего набора — это поля, указанные на панели «Выбранные поля». Данные строк ограничиваются фильтрами, указанными на панели «Примененные фильтры».
Эти данные представляют значения из источника данных на время выполнения запроса.
Порядок сортировки в результирующем наборе определяется порядком получения данных из источника данных. Порядок сортировки может быть изменен путем изменения текста запроса. Дополнительные сведения об использовании в запросе предложения GROUP BY см. в разделе «GROUP BY (Transact-SQL)» электронной документации по SQL Server.
Панель инструментов графического конструктора запросов
На панели инструментов графического конструктора запросов расположены следующие кнопки, помогающие указать или просмотреть результаты запроса.
Кнопка |
Описание |
---|---|
Изменить как текст |
Переключение в режим текстового конструктора запросов, чтобы просмотреть или изменить автоматически созданный запрос. |
Импорт |
Импорт существующего запроса из файла или отчета. Поддерживаются SQL и RDL-файлы. |
Выполнить запрос |
Выполните запрос. Результирующий набор отображается на панели результатов запроса. |
Основные сведения об автоматически создаваемых запросах
При выборе на панели «Представление базы данных» таблиц и столбцов или хранимых процедур и представлений, конструктор запросов получает из схемы базы данных базовые связи по первичному и внешнему ключам. Путем анализа этих связей конструктор запросов определяет связи между двумя таблицами и добавляет соединения в запрос. Затем можно изменять запрос посредством добавления групп и статистических выражений, добавления или изменения связей и добавления фильтров. Чтобы просмотреть текст запроса, отображающий столбцы, из которых извлекаются данные, соединения между таблицами и любые группы или статистические выражения, нажмите Редактировать как текст.
Текстовый конструктор запросов
Текстовый конструктор запросов предназначен для задания запроса с помощью языка запросов, поддерживаемого источником данных, выполнения запроса и просмотра результатов во время разработки. Можно указать несколько инструкций SQL, запросов или команд языка для создания собственных модулей обработки данных, а также указать запросы, заданные как выражения.
В отличие от графического конструктора запросов, текстовый конструктор запросов не проверяет синтаксис запроса и не изменяет структуру запроса. Это средство конструктора запросов по умолчанию для многих типов источников данных.
В окне текстового конструктора запросов отображаются панель инструментов и следующие две области.
**Запрос **Показывает текст запроса, имя таблицы или имя хранимой процедуры, в зависимости от типа запроса. Не все типы запросов поддерживаются всеми типами источников данных. Например, имя таблицы поддерживается только для типа источника данных OLE DB.
**Результат **Показывает результаты выполнения запроса во время разработки.
Панель инструментов текстового конструктора запросов
Текстовый конструктор запросов предоставляет одну панель инструментов для всех типов команд. В следующей таблице перечислены все кнопки панели инструментов и их функции.
Кнопка |
Описание |
||||
---|---|---|---|---|---|
Изменить как текст |
Переключение между текстовым конструктором запросов и графическим конструктором запросов. Не все источники данных поддерживают графические конструкторы запросов. |
||||
Импорт |
Импорт существующего запроса из файла или отчета. Поддерживаются только SQL и RDL-файлы. |
||||
Выполнить запрос и показать результирующий набор на панели результатов. |
|||||
Тип команды |
Выберите Text, StoredProcedure или TableDirect. Если хранимая процедура имеет параметры, при нажатии на панели инструментов кнопки Выполнить появится диалоговое окно Определение параметров запроса, в котором можно ввести значения параметров.
|
Тип команды Text
При создании набора данных SQL Server конструктор реляционных запросов открывается по умолчанию. Чтобы переключиться в текстовый конструктор запросов, нажмите кнопку переключателя Редактировать как текст на панели инструментов. Текстовый конструктор запросов содержит две панели: панель запросов и панель результатов. На следующем рисунке показана каждая панель.
В следующей таблице описываются функции каждой панели.
Панель |
Функция |
---|---|
Запрос |
Отображает текст SQL-запроса. Используйте эту панель, чтобы написать или изменить SQL-запрос. |
Результат |
Отображает результаты запроса. Чтобы выполнить запрос, щелкните правой кнопкой мыши любую область и выберите команду Выполнить либо нажмите кнопку Выполнить на панели инструментов. |
Пример
Следующий запрос возвращает список имен из таблицы с именем ContactType.
SELECT Name FROM ContactType
При нажатии кнопки Выполнить на панели инструментов выполняется команда на панели Запрос, а результаты, представляющие список имен, выводятся на панели Результат.
Тип команды StoredProcedure
При выборе типа команды StoredProcedureтекстовый конструктор запросов предоставляет две панели: панель запросов и панель результатов. Введите имя хранимой процедуры в области «Запрос» и нажмите кнопку Выполнить на панели инструментов. Если хранимые процедуры используют параметры, откроется диалоговое окно Определить параметры запроса. Введите значения параметров для хранимой процедуры.
На следующем рисунке показаны области «Запрос» и «Результаты» при выполнении хранимой процедуры. В данном случае входные параметры являются константами.
В следующей таблице описываются функции каждой панели.
Панель |
Функция |
---|---|
Запрос |
Отображает имя хранимой процедуры и все входные параметры. |
Результат |
Отображает результаты запроса. Чтобы выполнить запрос, щелкните правой кнопкой мыши любую область и выберите команду Выполнить либо нажмите кнопку Выполнить на панели инструментов. |
Пример
Следующий запрос вызывает хранимую процедуру с именем uspGetWhereUsedProductID. Если хранимая процедура имеет входные параметры, следует указать их значения при запуске запроса.
uspGetWhereUsedProductID
Нажмите кнопку Выполнить (!). В следующей таблице приводится пример параметров uspGetWhereUsedProductID, для которых необходимо указать значения в диалоговом окне Определить параметр запроса.
@StartProductID |
820 |
@CheckDate |
20010115 |
Тип команды TableDirect
При выборе типа команды TableDirect текстовый конструктор запросов предоставляет две панели: панель запросов и панель результатов. Если ввести имя таблицы и нажать кнопку Выполнить, возвращаются все столбцы этой таблицы.
Пример
Для типа источника данных OLE DB следующий запрос к набору данных возвращает результирующий набор для всех типов контактов в таблице ContactType.
ContactType
Вводимое имя таблицы ContactType должно совпадать с именем, указанным при создании SQL-инструкции SELECT * FROM ContactType.