Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2 Проектирование серверной части приложе...doc
Скачиваний:
3
Добавлен:
16.11.2019
Размер:
241.15 Кб
Скачать

Тема 2.7 Добавление, изменение, удаление записей

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

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

Для добавления записей в объект используется оператор

INSERT INTO <объект> [(столбец1[, столбец2 …])]

{VALUES (<значение>[,< значение 2>…]) | <оператор SELECT>}

  • объект – это таблица базы данных или просмотр (VIEW).

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

Поставить в соответствие столбцам списки значений можно двумя способами:

  1. явное указание значений после слова VALUES

  2. формирование значений при помощи оператора SELECT.

Явное указание списка значений применяется для добавления одной записи и имеет формат

INSERT INTO <объект> [(столбец1[, столбец2 …])]

VALUES (<значение>[,< значение 2>…])

Значения присваиваются столбцам по порядку следования тех и других в операторе.

Указание значений при помощи оператора INSERT имеет формат

INSERT INTO <объект> [(столбец1[, столбец2 …])]

<оператор SELECT>

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

Пример:

Пусть в БД определена таблица RASHOD_DATA. По составу и порядку следования полей аналогичная таблице RASHOD.

CREATE TABLE RASHOD (N_RASH INTEGER NOT NULL,

DATA_RASH DATE NOT NULL,

KOLVO INTEGER NOT NULL,

TOVAR VARCHAR(20) NOT NULL COLLATE PXW_CYRL,

POKUP VARCHAR(20) NOT NULL COLLATE PXW_CYRL,

PRIMARY KEY (N_RASH);

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

INSERT INTO RASHOD_DATA

SELECT * FROM RASHOD WHERE DAT_RASH=<текущая дата>

Изменение записей.

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

Формат оператора UPDATE:

UPDATE <объект>

SET столбец1=<значение1> [,столбец2=<значение2>…]

[WHERE <условия поиска >]

Корректировка выполняется для всех записей, удовлетворяющих условию поиска, которое задается так же, как в операторе SELECT.

Если опустить WHERE <условия поиска > в объекте будут изменены все записи.

Пример:

UPDATE RASHOD

SET KOLVO=KOLVO+2

WHERE TOVAR=”Молоко”

Удаление записей

Оператор DELETE предназначен для удаления группы записей из объекта. В частном случае может быть удалена только одна запись.

Формат оператора DELETE:

DELETE FROM <объект>

[WHERE <условия поиска >]

Удаляются все записи, удовлетворяющие условию поиска.

Если опустить WHERE <условия поиска > в объекте будут удалены все записи.

Пример:

DELETE RASHOD

WHERE TOVAR=”Мясо”