Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИОСУ.doc
Скачиваний:
33
Добавлен:
19.03.2015
Размер:
14.55 Mб
Скачать

42. Операторы insert, delete, update. Форматы операторов и назначение.

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

INSERT INTO <Имя таблицы> (<Список полей>) VALUES (<Список значений>)/ <SELECT>;

Указать списки значений можно в явном виде с помощью слова VALUES или с использованием оператора SELECT.

В результате выполнения этого оператора к таблице, имя которой указано после слова INTO, добавляется одна запись. Для добавленной записи заполняются поля, перечисленные в списке. Значения полей берутся из списка, расположенного после слова VALUES. Списки полей и списки значений должны соответствовать друг другу по числу и типу их элементов. При присвоении значений для первого поля берется первое значение, для второго - второе и т.д.

INSERT INTO RASHOD (N_RASH, DAT_RASH, KOLVO, TOVAR, POKUP)

VALUES (17, “01.01.10”, 10, “Принтер”, “Глобус НИИ”)

INSERT INTO <Имя таблицы> (<Список полей>) <оператор SELECT>

Эта форма позволяет создать дополнительную (виртуальную) таблицу, в которую вставляется необходимая запись. При этом новая таблица может быть создана с помощью оператора:

CREATE TABLE <Имя таблицы> (<имя поля 1><тип поля 1>, <имя поля 2><тип поля 2>…)

CREATE TABLE RASHOD_DATA (DATA_RASH date, KOLVO integer, TOVAR varchar(20), POKUP varchar(20), primary key (N_RASH)) – виртуальная таблица.

В этом случае:

INSERT INTO RASHOD_DATA

SELECT *

FROM RASHOD

WHERE DATA_RASH=”01.01.10”

Для удаления записей используется оператор DELETE, имеющий формат:

DELETE FROM <Имя таблицы> [WHERE <Условие отбора>];

Из таблицы, имя которой указано после слова FROM, удаляются все записи, которые удовлетворяют критерию отбора.

DELETE FROM RASHOD

WHERE DATA_RASHOD=”01.01.10”

Редактирование записей - это изменение значений полей в группе записей, Оно выполняется оператором UPDATE:

UPDATE <Имя таблицы> SET <Имя поля>=<Выражение>, <Имя поля>=<Выражение> [WHERE <Условие отбора>];

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

UPDATE RASHOD

SET CENA=CENA+10

WHERE CENA=100

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

Связи между данными, хранимыми в разных отношениях, в реляционной БД устанавливаются с помощью использования внешних ключей — для установления связи между кортежем из отношения Aс определённым кортежем отношенияBв предусмотренные для этого атрибуты кортежа отношенияAзаписывается значение первичного ключа целевого кортежа отношенияB. Таким образом, всегда имеется возможность выполнить две операции:

  • определить, с каким кортежем в отношении B связан определённый кортеж отношения A;

  • найти все кортежи отношения A, имеющие связи с определённым кортежем отношения B.

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

Если вышеприведённое условие не выполняется, говорят, что в базе данных нарушена ссылочная целостность. Такая БД не может нормально эксплуатироваться, так как в ней разорваны логические связи между зависимыми друг от друга фактами. Непосредственным результатом нарушения ссылочной целостности становится то, что корректным запросом не всегда удаётся получить корректный результат.

Обязательным (хотя и не достаточным) условием сохранения ссылочной целостности базы данных является поддержка транзакций. Транзакция – одновременное выполнение нескольких изменений в разных таблицах.

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

Транзакция может быть:

- неявная – запускается и завершается автоматически;

- явная – ей управляет программист.

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