Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
11.02.2015
Размер:
134.66 Кб
Скачать

Операторы манипуляции данными

Следующая группа операторов предназначена для манипулирования

данными в таблицах. В нее входят операторы выбора (SELECT)

строк из таблицы (или таблиц), уничтожения (DELETE) строк в

таблице, вставки (INSERT) строк, и изменения (UPDATE) значений

в существующих в таблице строках.

Оператор delete.

Уничтожить в таблице kadry все строки, в которых номер цеха ра-

вен 4, а фамилия кончается на буквы "ов"

---------------------------------------------------------------

DELETE FROM kadry WHERE ceh=4 AND fio MATCHES "*ов"

---------------------------------------------------------------

В результате из списков будут вычеркнуты работники 4-го цеха

"Петров", "Иванов", "Сидоров" и т.п

Как видим, INFORMIX предоставляет националистически озабоченным

руководителям мощные средства для воплощения в жизнь своих идей.

А этот оператор уничтожит ВСЕ строки в таблице kadry, владель-

цем которой является moshkow, но не саму таблицу

---------------------------------------------------------------

DELETE FROM moshkow.kadry

---------------------------------------------------------------

Простейшая форма оператора select.

Первый пример находит в таблице kadry строку, в которой столбец

tabnum=345 . Из этой строки берутся только три указаных столбца.

Второй пример выбирает ВСЕ строки из таблицы ceh, и все столбцы.

---------------------------------------------------------------

SELECT fio, dolvn, zarplata FROM kadry WHERE tabnom=345

SELECT * FROM ceh

SELECT kadry.fio, ceh.nameceh WHERE kadry.nomerceh=ceh.nomerceh

---------------------------------------------------------------

Третий пример выбирает фамилии работников из таблицы кадры, а

названия цехов, в которых они работают, из таблицы ceh.

Оператор insert.

может вставить в таблицу одну строку, если используется в форме

INSERT INTO ... VALUES, а может вставить в таблицу целый набор

строк, выбранных подзапросом SELECT из другой таблицы.

---------------------------------------------------------------

INSERT INTO kadry VALUES (4,0,"Грицько",num,"10/25/1939",NULL)

INSERT INTO customer VALUES (ps_customer.*)

# ps_customer - переменная типа RECORD - аналог структуры в

# языке Си. Этот оператор вставляет значения элементов записи

# ps_customer в соответствующие поля таблицы customer

INSERT INTO kadry (tabnom, fio, nomerceh, dolvnostx)

SELECT 0 , fio, 4, dolvnostx FROM kadryold

WHERE nomerceh=3 AND fio IS NOT NULL

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

---------------------------------------------------------------

Если мы хотим, чтобы при вставлении строки в столбец типа SERI-

AL автоматически заносилось очередное значение счетчика, нужно

вставлять в этот столбец константу 0.

Если не во все столбцы вставляемой строки вносится значение

(как это сделано в третьем операторе), то незаполненные столбцы

заполняются значением NULL.

В операторах DELETE, UPDATE, SELECT может присутствовать WHERE

предложение, в котором можно задать условия на строки, которые

требуется обработать (соответственно уничтожить, изменить или

выбрать). Рассмотрим примеры использования WHERE предложения.

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