Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Входные наборы

Входные наборы

Как часть SELECT ... FROM В запросе на поиск задает набор для вывода или для операции курсора, точно так же и другие операторы DML (INSERT, UPDATE и DELETE) задают входные наборы, идентифицируя данные, над которыми выполняется операция.

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

Следующий пример определяет входной набор, состоящий из трех столбцов таблицы TABLEB. Константы в предложении VALUES о будут проверяться на присутствие трех значений и на наличие у них корректных типов данных:

INSERT INTO TABLEB(COLA, COLB, COLC)

VALUES(99, 'Christmas 2004', '2004-12-25');

Оператор INSERT имеет альтернативный синтаксис, в котором предложение VALUES о заменяется на выборку набора из одной или более других таблиц, реальных или виртуальных. Операторы INSERT подробно обсуждаются в разд. "Оператор INSERT".

Оператор UPDATE определяет свой входной набор, задавая одну таблицу и список из одного или более столбцов вместе с их значениями в предложении SET. Он идентифицирует строки, принимающие участие в операции, в предложении WHERE:

UPDATE TABLEB

SET COLB ='Labor Thanksgiving Day (Japan)',

COLC = '2002-23-11'

WHERE . . .

Операторы UPDATE подробно обсуждаются в разд. "Оператор UPDATE".

Запрос DELETE не может задавать столбцы в своем входном наборе - этот набор всегда определяется неявно * (все столбцы). Он идентифицирует строки, принимающие участие в операции, в предложении WHERE. Например, следующий запрос удалит все строки, где COLC (типа данных DATE) является датой, раньше 13 декабря 1999 г.:

DELETE FROM TABLEB

WHERE COLC < '1999-12-13';

Операторы DELETE подробно обсуждаются в разд. "Оператор DELETE".

Оглавление книги


Генерация: 1.738. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз