Изменение данных при помощи SQL
Практически всюду таблица и запрос в операторах SQL не отличаются друг от друга. Для краткости будем говорить «таблица», подразумевая «таблица или запрос».
Оператор Update выполняет изменение значений в одном или нескольких столбцах в одной или нескольких записях таблицы. Следующий запрос в таблице «Договор» увеличивает стоимость в договорах, заключенных после «01.01.2010»:
UPDATE Договор SET стоимость = стоимость*1.1 WHERE дата>#01.01.2010#
Оператор Delete позволяет удалить из таблицы строки, удовлетворяющие заданному условию. Например, удаление договоров, заключенных до «01.01.2000», выглядит следующим образом:
DELETE Договор WHERE дата < #01.01.2000#
Оператор Select Into создает таблицу и добавляет в нее записи. Удобный механизм для создания некоторых временных таблиц для передачи в этом виде на другой компьютер. Применяется для переноса в таблицу, имеющую меньшее количество полей, например, при переносе данных из внутренней базы, в которой на складе хранится и приходная и отпускная цена товара, в таблицы, предназначенные для хранения на Web-сервере. Таблица для web имеет колонки – наименование товара и цена. Кроме того, оставшиеся в небольшом количестве товары мы не предлагаем в Интернет, т.к. затраты на доставку окупаются только для оптовых продаж.
SELECT Товар.Наименование, Склад.цена INTO Склад_в FROM Товар, Склад WHERE (Товар.Код=Склад.Товар) AND (Склад.Кол > 10)
Оператор Insert реализован в двух форматах: для одновременного добавления нескольких строк одновременно и для добавления одной строки. Многострочный оператор предназначен для копирования записей из одной таблицы в другую. Такие действия могут потребоваться, например, для переноса в архивную копию. В отличие от вышеприведенного примера с Select Into записи добавляются в уже существующую таблицу. Это нам подходит в случае, если у нас несколько складов, а формируем мы одну выходную таблицу.
INSERT INTO Склад_в (Товар, цена) SELECT Товар.Наименование, Склад_обуви.цена FROM Товар, Склад_обуви WHERE (Товар.Код=Склад_обуви.Товар) AND (Склад_обуви.Кол > 10)
INSERT INTO Склад_в (Товар, цена) SELECT Материал.Наименование, Склад_матер.цена FROM Материал, Склад_матер WHERE (Материал.Код=Склад_матер. Материал) AND (Склад__матер.Кол > 200)
Можно копировать данные во внешнюю базу данных, причем внешняя база может быть даже другого формата, формат указывается в разделе IN. Например, расположенную на web-сервере базу переписываем свою таблицу выполненных заказов.
INSERT INTO Вып_Заказ IN "C:\DBASE\DATA\ZAKAZ" "dBASE IV;" SELECT Заказ.N, Заказ.Отдано, Заказ.Дата_вып FROM Заказ
Можно добавлять одну запись, непосредственно в команде задавая значения полей. Чаще такое нужно при разработке клиентского приложения, в котором пользователь вводит данные с клавиатуры в некоторые поля формы, а по нажатию им кнопки «отправить» новая запись добавляется в базу данных.
INSERT INTO Накладная (Дата, Клиент) VALUES (#28.12.2010#,"ООО Орион")