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

 

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

1.     Выберите на ленте Create > Other > Query Wizard (Создание > Другие > Мастер запросов).

На экране появится диалоговое окно New Query (Новый запрос), предлагающее помощь в создании запросов SQL Server разных типов. В данном случае нужно просто создать обычный запрос, отбирающий некоторые полезные данные.

2.         Выберите режим Design View (Конструктор) и щелкните мышью кнопку ОК.
Отображается диалоговое окно Add Table (Добавить таблицу).

3.         Выберите таблицу (или таблицы, которые хотите использовать) и затем щелкните мышью кнопку Add (Добавить), чтобы включить ее в ваш запрос. Когда закончите, нажмите кнопку Close (Закрыть).

На экране появится Конструктор запросов (query designer). Теоретически он работает более или менее так же, как Конструктор запросов программы Access с теми же параметрами. Однако выглядит он немного иначе (рис. 20.13).

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

 

4.   Выберите поля, которые хотите включить в результаты запроса.

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

Рис. 20.14. Данный пример демонстрирует четыре поля, все с установленным флажком в столбце Output, что означает их отображение в таблице результатов

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

5.   Если хотите отсортировать поле, выберите в поле Sort Type (Тип сортировки) вариант Ascending (по возрастанию) или Descending (по убыванию).

Если хотите сортировать по нескольким полям, задайте параметр Sort Type (Тип сортировки) для каждого поля, которое хотите использовать. Кроме того, надо указать число в столбце Sort Order (Порядок сортировки), чтобы сообщить Конструктору запросов, какую сортировку выполнять первой. Например, если сортируется группа фамилий и имен сначала по фамилии, а затем по имени, следует задать в параметре Sort Order (Порядок сортировки) число 1 для поля LastName (фамилия) и число 2 для поля FirstName (имя).

 

 

Подсказка

Если хотите использовать поле для сортировки или фильтрации, но не хотите выводить его в таблице результатов, сбросьте флажок в столбце Output (Вывод).

 

6.  Если хотите применить фильтрацию, задайте условие отбора в столбце Criteria (Условия) в строке соответствующего поля.

Для числовых значений выполнить эту задачу довольно просто, поскольку выражения для фильтра точно такие же, как в программе Access. Можно использовать те же операции (например, знаки +, -, /, * для вычислений и знаки =, < и > для сравнения чисел). Но если хотите работать с текстом или датами, ознакомьтесь с синтаксическими отличиями в программах SQL Server и Access в примечании "Для тех, кто понимает. Синтаксические различия" далее в этом разделе.

Условия отбора можно применять к любому количеству полей. Если хотите задать несколько разных условий и отобразить записи, удовлетворяющие любому из них, дополнительные условия определите в столбце Or (Или), как показано на рис. 20.15.

Рис. 20.15. Это поле соответствует любым ценам менее 10 и более 50 долларов

 

 

7.   Если хотите применить вычисляемое поле, добавьте его в конец списка, заполнив поля в столбцах Column (Столбец) и Alias (Псевдоним) (рис. 20.16).

Рис. 20.16. Вы заметили, что в именах полей применяются странные имена, состоящие из трех частей (имя Price становится dbo.OrderDetails.Price). Это имя означает, что поле Price находится в таблице, названной OrderDetails, которая была создана владельцем БД (dbo) (Программа SQL Server применяет в выражениях такие имена, чтобы устранить возможную неоднозначность. Но не беспокойтесь — Конструктор запросов преобразует обычные имена в трехчастные автоматически.)

Синтаксис вычисляемого поля в Конструкторе запросов SQL Server несколько отличается. Вместо синтаксической записи ColumnName: Expression (ИмяСтолбца: Выражение)

 

имя поля помещается в поле Alias (Псевдоним), а выражение в поле Column (Столбец).

Несмотря на то, что можно ввести выражение, используя просто имена полей, Конструктор запросов автоматически преобразует их в трехчастные имена. На рис. 20.16 показано, что вы увидите, если введете простое вычисляемое выражение Price*Quantity, вычисляющее стоимость одной строки заказа.

Если хотите создать вычисляемое выражение, использующее текст или даты, прежде познакомьтесь с синтаксическими отличиями в программах SQL Server и Access.

 

 

Для тех, кто понимает. Синтаксические различия

 

Если запрос создается с применением проекта Access, он становится на самом деле объектом БД SQL Server. Именно программа SQL Server хранит запрос и выполняет его. Это важно, поскольку разновидность языка SQL (структурированный язык запросов), которая применяется в программе Access, немного отличается от букета, который вы найдете в программе SQL Server. Эти незначительные различия могут заставить споткнуться большую часть искушенных создателей запросов.

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

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

‘Maple Magic’, а не"Maple Magic".

•       В датах также применяют одинарные кавычки, не знаки решетки. Поэтому ищите заказы, сделанные до ‘1/30/2008’,а не до #1/30/2008#.

•       При слиянии двух фрагментов текста используйте символ +, а не символ &. Итак, для получения   полного    имени    в    вычисляемом    выражении    применяйте    строку FirstName  +   ‘    ‘   +  LastName,а не строку FirstName   &+   "   "   &   LastName.

Вы не можете применять функции Access. У программы SQL Server есть собственная библиотека функций и, несмотря на то, что многие из них такие же или похожи на знакомые и любимые вами функции Access, различия присутствуют в изобилии. Самый безопасный подход — найти функцию, которую хотите использовать, в справочном руководстве SQL Server Books Online (см. на рис. 20.2, как его загрузить из Интернета). В этом случае вы сможете проверить функцию и увидеть, действует ли она так же, как ее дубликат в программе Access.

 

8. Когда создание запроса закончено, щелкните правой кнопкой мыши заголовок вкладки и затем выберите строку Datasheet View (Режим таблицы) (или выберите на ленте Function & View Tools | Design > Tools > Run (Работа с функциями и представлениями Конструктор > Сервис > Выполнить)).

Программа Access предложит сохранить ваш запрос. Когда вы сделаете это, то увидите ваши результаты на привычном листе данных, так же как в случае выполнения запроса в БД Access. Затем можно напечатать или отредактировать полученные результаты.

 

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100