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

Запросы на выполнение действия

Запрос на выполнение действия

директива SQL

Добавление записи

INSERT INTO

Обновление

UPDATE

Удаление

DELETE

Создание таблицы

SELECT…INTO

Пример1

INSERT INTO Клиенты

SELECT [Город] = “Рославль”

FROM [Заинтересованные лица]

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

Пример2

UPDATE [Прейскурант]

SET цена = цена * 1,1

WHERE [Категория] = “Шторы”

Цены на все шторы в таблице Прейскурант повышаются на 10%.

Пример3

DELETE FROM Заказы

WHERE [Дата заказа] < 1.01.06

Пример4

SELECT Заказы.*

INTO [Архив заказов]

FROM Заказы

WHERE [Дата заказа] < 1.01.06

Из записей таблицы Заказы формируется новая таблица «Архив заказов», которая содержит заказы до января 2006 года.

Формирование SQL- запросов

  1. Преобразование запроса по образцу QBE-запроса в SQL–запрос.

  • В окне запросов сформировать запрос, из которого необходимо создать SQL–запрос.

  • Выбрать инструмент SQL или войти в меню ВИД и выбрать команду SQL. На экране появится окно с текстом готового SQL–запроса.

  1. Непосредственное формирование SQL–запроса.

  • Перейти в режим конструирования запроса, оставить окно конструирования пустым.

  • Войти в меню ВИД и выбрать команду SQL .

  • Сформировать запрос. Нельзя использовать просто клавишу Enter для перехода к новой строке (нажать <Ctrl>+<Enter>)

  • Для сохранения запроса выполнить команду меню ФАЙЛ, СОХРАНИТЬ.

  • Если SQL–запрос не содержит синтаксических ошибок, то после сохранения Access автоматически преобразует SQL–запрос в запрос по образцу, и можно проверить его в окне конструирования QBE-запроса.

Для выполнения запроса выбрать инструмент ВЫПОЛНИТЬ (кнопка с восклицательным знаком) на панели инструментов или войти в меню ЗАПРОС и выбрать команду ВЫПОЛНИТЬ.

Использование триггеров

Триггер - это специальный вид хранимых процедур. Триггер выполняется при попытке изменения данных, которые он защищает. Это обязательно происходит, когда в таблице выполняются изменения, связанные с командами SQL INSERT, UPDATE, DELETE.

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

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

Триггер имеет следующие характеристики:

  • он связан с таблицами;

  • выполняется автоматически независимо от того, как происходит изменение данных (помощью команды UPDATE, в процессе работы пользовательского приложения, написанного на Visual Basic и т.д.).

  • триггер не может быть вызван напрямую и не имеет параметров;

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

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

Правила использования триггеров:

  • таблицы могут иметь только три триггера: один для UPDATE (триггер на модификацию), один для INSERT (триггер на добавление новых записей) и один для DELETE (триггер на удаление). Все три действия может обрабатывать один триггер.

  • триггер может применяться только к одной таблице;

  • только владелец таблицы может добавлять триггеры в таблицу или удалять их из нее;

  • триггеры не могут создаваться для представлений или временных таблиц, хотя триггеры вправе ссылаться на них;

  • триггеры используются для поддержки целостности данных.

30