Пользовательский интерфейс конструктора реляционных запросов

Конструктор отчетов в среде SQL Server Data Tools (SSDT) предоставляет как графический конструктор запросов, так и текстовый конструктор запросов, которые используются для создания запросов, указывающих данные для получения из реляционных баз данных Microsoft База данных SQL Windows Azure и Microsoft Параллельное хранилище данных SQL Server 2008 R2 для набора данных отчета. Графический конструктор запросов используется для просмотра метаданных, интерактивного создания запроса, а также для просмотра его результатов. Текстовый конструктор запросов используется для просмотра запроса, созданного графическим конструктором запросов, или для его изменения. Также можно импортировать существующий запрос из файла или отчета.

ПримечаниеПримечание

Графический конструктор запросов, используемый для создания запросов на извлечение данных из База данных SQL и Параллельное хранилище данных SQL Server 2008 R2, отличается от конструктора запросов, используемого с SQL Server. Для создания запросов для извлечения данных из SQL Server используется Visual Database Tools, предоставляемый Visual Studio. Дополнительные сведения см. в разделе Пользовательский интерфейс графического конструктора запросов.

Примечание по безопасностиПримечание по безопасности

При создании и выполнении запросов пользователи получают доступ к источникам данных. Следует предоставить минимальные разрешения на источники данных, например разрешение только на чтение.

Графический конструктор запросов

Графический конструктор запросов позволяет просматривать таблицы и представления баз данных, выполнять интерактивное построение инструкции SQL SELECT, в которой указываются таблицы и столбцы базы данных, из которых нужно получить данные для набора данных. Следует выбрать поля, включаемые в набор данных, и при необходимости указать фильтры, ограничивающие данные в наборе данных. Можно указать, что фильтры используются в качестве параметров, и указывать значение фильтра во время выполнения. Если выбрать несколько связанных таблиц, конструктор запросов описывает связи между наборами двух таблиц.

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

ПримечаниеПримечание

База данных Параллельное хранилище данных SQL Server 2008 R2 не поддерживает хранимые процедуры и возвращающие табличные значения функции.

На следующем рисунке показан графический конструктор запросов при использовании таблиц и представлений.

Графический конструктор запросов

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

Хранимая процедура в графическом конструкторе запросов

В следующей таблице описывается функция каждой панели.

  • Представление базы данных
    Отображается иерархическое представление таблиц, представлений, хранимых процедур и возвращающих табличное значение функций, организованных схемой базы данных.

  • Выбранные поля
    Отображается список имен полей базы данных из выбранных элементов на панели «Представление базы данных». Эти поля становятся коллекцией полей для набора данных отчета.

  • Параметры функции
    Отображается список входных параметров для хранимых процедур или возвращающих табличное значение функций на панели представления базы данных.

  • Связи
    Отображает список связей, которые выводятся из выбранных полей для таблиц или представлений на панели «Представление базы данных», или связей, созданных вручную.

  • Примененные фильтры
    Отображается список полей и условия фильтра для таблиц или представлений в области представления базы данных.

  • Результаты запроса
    Отображает образец данных для результирующего набора автоматически созданного запроса.

Панель «Представление базы данных»

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

Панель «Выбранные поля»

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

Отображаются следующие параметры.

  • **Выбранные поля. ** Отображает поля базы данных, выбранные для таблиц или представлений, либо входные параметры для хранимых процедур или возвращающих табличное значение функций. Поля, отображаемые в этой панели, становятся коллекцией полей для набора данных отчета.

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

  • **Группировка и агрегатная обработка.   **Переключается между использованием группирования и агрегатов в запросе. При отключении функции группировки и выполнения статистического вычисления после добавления групп и статистических функций последние удаляются. Текст (нет) указывает на то, что группировка и статистические функции не используются. При включении функции группировки и выполнения статистического вычисления добавленные ранее группы и статистические функции будут восстановлены.

  • **Удалить поле. **Удаляет выбранное поле.

Группа и статистическое выражение

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

Агрегаты предоставляют сводки данных, а сами данные группируются, чтобы поддерживать агрегаты, предоставляющие сводные данные. При использовании статистического выражения в запросе другие поля, возвращаемые запросом, автоматически группируются и запрос включает предложение SQL GROUP BY. Можно создавать сводку данных без добавления статистического выражения, используя только параметр Группировка по в списке Группировка и статистическое выражение. Многие статистические выражения содержат версию, использующую ключевое слово DISTINCT. Включение DISTINCT позволяет избежать повторяющихся значений.

Параллельное хранилище данных SQL Server 2008 R2использует Transact-SQL, а MicrosoftПараллельное хранилище данных SQL Server 2008 R2 использует SQL. Оба диалекта языка SQL поддерживают предложение, ключевое слово и статистические выражения, предоставляемые конструктором запросов.

Дополнительные сведения о Transact-SQL см. в разделе Справочник по Transact-SQL (компонент Database Engine) электронной документации по SQL Server на сайте msdn.microsoft.com.

Следующая таблица содержит список статистических выражений и предоставляет краткое описание каждого из них.

Агрегат

Описание

Avg

Возвращает среднее арифметическое значений в группе. Реализует агрегат SQL AVG.

Количество

Возвращает количество элементов в группе. Реализует статистическое выражение 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. При выборе режима параметров происходит автоматическое создание параметра отчета. Параметры отчета, основанные на параметрах запроса, позволяют пользователю указывать для запроса значения, управляющие данными в отчете.

Отображаются следующие столбцы.

  • Имя поля. Отображается имя поля, к которому будет применено условие.

  • Оператор Отображается операция, которая будет использована в критерии фильтра.

  • Значение. Отображается значение, которое будет использовано в критерии фильтра.

  • Параметр Отображается параметр для добавления параметра к запросу. С помощью диалогового окна «Свойства набора данных» можно просмотреть связи между параметрами запроса и параметрами отчета.

Панель результатов запроса

В панели результатов запроса отображаются результаты автоматически созданного запроса, заданного выбором в других областях. Столбцы результирующего набора — это поля, указанные на панели «Выбранные поля». Данные строк ограничиваются фильтрами, указанными на панели «Примененные фильтры». Если в запрос включены статистические выражения, то в результирующий набор будут включены новые столбцы статистических выражений. Например, если столбец Color обработан с помощью агрегата Count, результат запроса будет содержать новый столбец. По умолчанию для этого столбца задается имя Count_Color.

Эти данные представляют значения из источника данных на время выполнения запроса. Данные не сохраняются в определении отчета. При обработке в отчет возвращаются реальные данные.

Порядок сортировки в результирующем наборе определяется порядком получения данных из источника данных. Порядок сортировки может быть изменен путем изменения запроса или после получения данных для отчета.

Панель инструментов графического конструктора запросов

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

Кнопка

Описание

Изменить как текст

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

Импорт

Импорт существующего запроса из файла или отчета. Поддерживаются SQL и RDL-файлы.

Выполнить запрос

Выполните запрос. Результирующий набор отображается в панели результатов запроса.

Основные сведения об автоматически создаваемых запросах

При выборе в панели «Представление базы данных» таблиц и столбцов или хранимых процедур и представлений, конструктор запросов получает из схемы базы данных базовые связи по первичному и внешнему ключам. Путем анализа этих связей конструктор запросов определяет связи между двумя таблицами и добавляет соединения в запрос. Затем можно изменять запрос посредством добавления групп и статистических выражений, добавления или изменения связей и добавления фильтров. Чтобы просмотреть текст запроса, отображающий столбцы, из которых извлекаются данные, соединения между таблицами и любые группы или статистические выражения, нажмите Редактировать как текст.

Текстовый конструктор запросов

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

См. также

Основные понятия

Конструкторы запросов служб Reporting Services