Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сетевые БД / Lec_2014 / консп_лек_1.doc
Скачиваний:
55
Добавлен:
11.04.2015
Размер:
671.23 Кб
Скачать

3.1.2. Вставка, обновление и удаление строк в таблицах

Рассмотрим вопрос о том, как вводить, изменять и удалять данные таблиц с помощью команд INSERT, UPDATE и DELETE языка SQL.

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

INSERT INTO таблица

(поле [,])

{ VALUES ( выражение [,] ) | запрос }

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

INSERT INTO sal

VALUES (1008, ‘Tom’, NULL, NULL)

В следующем примере показан второй вариант команды INSERT: команда вставляет строки в таблицу SAL_COPY, копируя их из таблицы SAL

INSERT INTO sal_copy

SELECT * FROM sal

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

UPDATE таблица

SET { поле = { выражение | запрос } [,] | ( поле [,]) = запрос }

[ WHERE условие ]

В приведенном ниже примере командой UPDATE увеличивается на 50 рейтинг покупателей, чьи заказы оформлял продавец с номером 1001.

UPDATE cust SET rating=rating + 50

WHERE snum = 1001;

Команда DELETE имеет следующий синтаксис.

DELETE [ FROM ] таблица

[ WHERE условие ]

Если в команде DELETE опустить фразу WHERE, то при таком простом варианте будут удалены все строки из таблицы. Следует отметить, что при этом сама таблица не будет удалена их базы данных, но она станет пустой. Пример удаления всех заказов из таблицы ORD показан ниже.

DELETE FROM ord

Для удаления строк, отвечающих заданному условию, в команду DELETE требуется включить фразу WHERE с условием удаления. Так, следующем примере удаляются заказы, сумма которых не превышает 100.

DELETE FROM ord WHERE amt <= 100;

3.2. Управление транзакциями

ТРАНЗАКЦИЯ - это логическая единица работы, составленная из одной или нескольких команд SQL. Транзакция - это атомарная единица; результаты всех команд SQL, составляющих транзакцию, должны быть либо все ПОДТВЕРЖДЕНЫ (применены к базе данных), либо все ОТМЕНЕНЫ. Транзакции должны состоять лишь из тех команд SQL, которые в совокупности осуществляют одно согласованное изменение данных.

Транзакция начинается с первой выполняемой команды SQL. Транзакция заканчивается, когда она либо подтверждается, либо отменяется, что может быть сделано явно (командами COMMIT или ROLLBACK) или неявно (когда выдается команда DDL).

3.2.1. Подтверждение транзакций

ПОДТВЕРЖДЕНИЕ транзакции означает объявление постоянными всех изменений, которые были выполнены командами SQL внутри этой транзакции.

Для подтверждения транзакции используйте команду COMMIT. Следующие предложения эквивалентны и подтверждают текущую транзакцию:

COMMIT WORK;

COMMIT;

3.2.2. Откат транзакций

ОТКАТ означает отмену всех изменений данных, которые были сделаны командами SQL в неподтвержденной транзакции.

Чтобы отменить всю, используйте команду ROLLBACK. Например, каждое из следующих предложений откатывает всю текущую транзакцию:

ROLLBACK WORK;

ROLLBACK;

Соседние файлы в папке Lec_2014