Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы на экзаменн-е вопросы за 1-й курс. Препод- Рудой И.Б / Ответы / 24 Основы языка SQL. Манипуляция данными. Примеры

..doc
Скачиваний:
39
Добавлен:
25.05.2014
Размер:
28.16 Кб
Скачать

Вопрос 24. Основы языка SQL. Манипуляция данными. Примеры.

Операторы Манипуляции Данными.

Следующая группа операторов предназначена для манипулирования данными в таблицах. В нее входят операторы выбора (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

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

Если мы хотим, чтобы при вставлении строки в столбец типа SERIAL автоматически заносилось очередное значение счетчика, нужно вставлять в этот столбец константу 0. Если не во все столбцы вставляемой строки вносится значение (как это сделано в третьем операторе), то незаполненные столбцы заполняются значением NULL.

В операторах DELETE, UPDATE, SELECT может присутствовать WHERE предложение, в котором можно задать условия на строки, которые требуется обработать (соответственно уничтожить, изменить или выбрать). Рассмотрим примеры использования WHERE предложения.

Оператор UPDATE.

Меняет значения столбцов, в строках, удовлетворяющим WHERE условию.

UPDATE kadry SET fio="Зыкова" WHERE fio="Гирусова"

UPDATE ceh SET kod_ceha[1,4]=nameceh[5,8] WHERE

nomerceh BETWEEN 3 AND 5 OR nameceh IN ("токарный","литейный")

В таблице ceh в цехах номер 3,4,5 а так же в токарном и литейном первые четыре символа в коде цеха будут заменены на подстроку поля nameceh из той же строки.