- •Раздел 2 проектирование серверной части приложения баз данных
- •Тема 2.1 sql-сервер InterBase и его основные компоненты
- •Тема 2.2 Физическая организация базы данных InterBase.
- •Тема 2.3 Создание базы данных.
- •Тема 2.4 Домены
- •Создание домена.
- •Тема 2.5 Создание таблиц
- •Определение ключей и ссылочных целостностей.
- •Тема 2.6 Работа с индексами.
- •Тема 2.7 Добавление, изменение, удаление записей
- •Добавление записей
- •Изменение записей.
- •Тема 2.8 Работа с просмотрами view.
- •Тема 2.9 Работа с хранимыми процедурами.
- •Изменение и удаление хранимых процедур
- •Алгоритмический язык хранимых процедур.
- •Тема 2.10 Работа с триггерами
- •Создание триггеров.
- •Тема 2.11 Использование генераторов.
Тема 2.7 Добавление, изменение, удаление записей
Язык SQL ориентирован на выполнение операций над группами записей, хотя в некоторых случаях операция может проводиться и над отдельной записью. Поэтому, операторы добавления, изменения и удаления записей в общем случае вызывают соответствующие операции над группами записей.
Добавление записей
Для добавления записей в объект используется оператор
INSERT INTO <объект> [(столбец1[, столбец2 …])]
{VALUES (<значение>[,< значение 2>…]) | <оператор SELECT>}
объект – это таблица базы данных или просмотр (VIEW).
список столбцов указывает столбцы, которым будут присвоены значения в добавляемых записях. Список может быть опущен. В этом случае подразумеваются все столбцы объекта, причем в том порядке, в котором они определены в данном объекте.
Поставить в соответствие столбцам списки значений можно двумя способами:
явное указание значений после слова VALUES
формирование значений при помощи оператора 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=”Мясо”