Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
43
Добавлен:
16.03.2016
Размер:
20.6 Mб
Скачать

0 Запросах

Таблицы данных — не единственные объекты БД, хранящиеся в БД SQL Server. Ваша БД SQL Server может также содержать запросы, бесконечно полезные процедуры для поиска (или изменения) нужных записей.

У объектов, которые приверженцы программы Access называют запросами, совсем иное существование в SQL Server. Там, где вы видите запросы, программа SQL Server видит три объекта разных типов.

  • View (Представление). Представление — приблизительный аналог запроса на выборку (select query) — он выбирает записи (возможно, из связанных таблиц) и отображает их на листе данных.

  • User-defined function (Пользовательская функция). Пользовательская функция аналогична запросу на выборку с параметрами. (Как вы уже знаете, параметры позволяют запрашивать порцию информации сразу перед выполнением запроса. Эту информацию затем можно применить для отбора записей и выполнения вычисления.)

  • Stored procedure (Хранимая процедура). Хранимая процедура — тяжеловес среди объектов БД SQL Server. Она может выполнять целый ряд задач, таких как выбор записей, фиксация изменений, выполнение транзакций. Вы не будете использовать большую часть этих возможностей, когда создадите хранимую процедуру в программе Access. Вместо этого вы будете применять хранимые процедуры для создания аналога запроса на изменение в SQL Server, который фиксирует в БД одиночную операцию обновления, добавления или удаления.

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

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

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

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

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

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

  2. Выберите таблицу (или таблицы, которые хотите использовать) и затем щелкните мышью кнопку 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.

Соседние файлы в папке Управление данными