Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Б/Д.doc
Скачиваний:
19
Добавлен:
25.04.2019
Размер:
389.63 Кб
Скачать

Параметры

Описывают имя и тип данных каждого параметра в запросе с параметрами.

Синтаксис:

PARAMETERS имя типДанных [, имя типДанных [, ...]]

ИМЯ – имя параметра. используется для обращения к этому параметру. Значение аргумента имя может быть строкой, которая отображается в окне диалога при выполнении запроса. Строку, содержащую пробелы и знаки препинания, необходимо заключить в квадратные скобки ([ ]) . Например, допустимыми значениями этого аргумента являются [Минимальная цена] и [Сведения за какой месяц Вы хотите получить?].

ТИПДАННЫХ – один из первичных типов данных SQL ядра Microsoft Jet или их синонимы.

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

Описание PARAMETERS является необязательным, однако, если оно присутствует, то должно находиться перед всеми остальными инструкциями, в том числе, перед инструкцией SELECT.

Для разделения параметров в описании следует использовать запятые. В следующем примере описаны два параметра:

PARAMETERS [Минимальная цена] Currency Currency, [Начальная дата] DateTime;

В предложении WHERE или HAVING можно использовать аргумент имя, но не типДанных.

При выполнении запроса с параметрами Microsoft Access выводит приглашение пользователю ввести параметры, определяющие условия отбора в запросе. Это позволяет создать запрос, возвращающий записи на основе заданного пользователем условия.

В аргументах текст, перечисленных в описании PARAMETERS, задается текст, выводящийся в каждом из диалоговых окон, которые открываются для ввода соответствующего параметра при запуске запроса. Эти диалоговые окна создаются автоматически.

Перекрёстные запросы

(Является аналогом сводных таблиц в MS Excel).

Синтаксис:

TRANSFORM статистическаяФункция AS значение

SELECT оператор FROM таблица GROUP BY [значение]

PIVOT списокИмёнСтолбцов

СТАТИСТИЧЕСКАЯФУНКЦИЯ – функция, которая выполняется над данными, указанными в операторе SELECT.

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

Transform Count(Код) as Значение

Select Отдел, Count(Код) as [Итоговое значение]

From Сотрудники

Group By Отдел

Pivot Format([Родился], “mmm”) in (“Янв”,”Фев” …)

Обновление данных (запрос Update)

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

Синтаксис:

UPDATE таблица

SET новоеЗначение

WHERE условиеОтбора;

Таблица – имя таблицы, данные в которой следует изменить.

НовоеЗначение – выражение, определяющее значение, которое должно быть вставлено в указанное поле обновленных записей.

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

Инструкцию UPDATE особенно удобно использовать для изменения сразу многих записей или в том случае, если записи, подлежащие изменению, находятся в разных таблицах. Одновременно можно изменить значения нескольких полей. Следующая инструкция SQL увеличивает зарплату отделу проектирования на 20% и устанавливает премию20%.

UPDATE Сотрудники

SET Сотрудники.Зарплата = Зарплата*1.2, Сотрудники.премия = 20

WHERE (((Сотрудники.Отдел)="Проектирование"));

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

В следующем примере премия в 30% утанавливается всем подчиненым Ткаченко

UPDATE Сотрудники INNER JOIN [Начальники] ON Сотрудники.номер_отдела = Начальники.Код SET Сотрудники.премия = 30

WHERE (((Начальники.Фамилия)="Ткаченко"));