Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационное обеспечение систем управления. Построение запросов пр.pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
3.76 Mб
Скачать

Имя

Отчество

Фамилия

Тип

Роль/Место

Елена

Павловна

Бельтюкова

Пассажир

Ирина

Валентиновна

Щекина

Пассажир

Константин

Игоревич

Баталов

Пассажир

Лариса

Вилльевна

Вашкарина

Член экипажа

Бортпроводник

Максим

Владимирович

Бычков

Член экипажа

Командир

Наталья

Васильевна

Вожакова

Пассажир

Олег

Владимирович

Лядов

Член экипажа

Пилот

Ольга

Юрьевна

Боброва

Пассажир

Светлана

Александровна

Ветошкина

Член экипажа

Бортпроводник

Светлана

Леонидовна

Верушкина

Пассажир

Сергей

Владимирович

Богатырев

Пассажир

Татьяна

Викторовна

Владысик

Пассажир

ЗГ

Елена

Александровна

Воронюк

Пассажир

20А

Мария

Ивановна

Выгузова

Пассажир

20Б

Ольга

Николаевна

Вяткина

Пассажир

20В

Юлия

Дмитриевна

Гаевская

Пассажир

20Г

Василий

Александрович

Глазов

Пассажир

20Д

Дмитрий

Федорович

Глумов

Пассажир

21А

8. ДОБАВЛЕНИЕ ДАННЫХ. КОМАНДА INSERT

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

8.1. Добавление отдельной строки

При добавлении отдельной строки в списке INTO перечисля­ ются столбцы, в которые вводятся значения, а сами значения зада­ ются в списке VALUES. Вместо списка столбцов можно указать символ *; в этом случае предполагается, что вводятся значения всех столбцов таблицы в специфицированном при создании таблицы по­ рядке. Поскольку порядок столбцов может изменяться, то такая конструкция является потенциально опасной, и лучше ее не при­ менять.

соответствующий

коду бортпроводника, поля «Дата вылета»

(EQ FL_DATE) и

«Номер маршрута» (EQJFLJNUM) будут зада­

ны как константы. Таким образом, команда INSERT вставит в таб­ лицу EQUIPAGE столько строк, сколько возвращает внутренний

запрос.

Вы должны были заметить, что в списке столбцов, добавляе­ мых в таблицу EQUIPAGE, отсутствует первичный ключ - код члена экипажа (EQ_ CODE). В самом деле, мы не можем вставлять его для набора строк, т.к. для каждой строки он должен быть уника­ лен. Мы можем выполнить приведенный запрос благодаря исполь­ зованию триггеров, о чем будет рассказано в дальнейшем.

9. ОБНОВЛЕНИЕ УЖЕ ИМЕЮЩИХСЯ ДАННЫХ.

КОМАНДА UPDATE

Уже существующие в таблице данные можно изменить с по­ мощью команды UPDATE. Команда UPDATE не добавляет новых записей в таблицу и не удаляет их, а только дает возможность изме­ нить данные. С помощью одной такой команды можно изменить данные только одной таблицы, но одновременно можно менять данные нескольких столбцов. Одним таким оператором можно из­ менить и одну строку данных, и целый набор строк.

Рассмотрим синтаксис подходящего оператора.

UPDATE имя_таблицы SET столбец! = 'значение' [, столбецЗ = 'значение']

[, столбецЗ = 'значение'] [WHERE условие];

Обратите внимание на использование ключевого слова SET: оно одно, а описаний столбцов несколько. Описания столбцов раз­ деляются запятыми. К этому моменту вы, должно быть, уже почув-j ствовали логику SQL. В операторах SQL запятая обычно использу­ ется для разделения различного типа аргументов.

Изменим фамилию у одной из женщин из таблицы PERSONj запрос на изменение будет иметь вид56:

UPDA ТЕ PERSON SET PR NAME = 'Смирнова' WHERE PRJNAME ='Оборина'

AND P R N A M E 2 = Юлия'

AND P R N A M E 3 = 'Витальевна'

AND PR_BIRTHDA Y = '02.10.1984'

При использовании оператора UPDATE без ключевого слова WHERE нужно быть исключительно внимательным. При отсутст­ вии заданных ключевым словом WHERE условий данные в соот­ ветствующем столбце будут обновлены для всех строк данных. В нашем случае это бы означало, что фамилии всех людей станут «Смирнова». Оператор UPDATE без ключевого слова WHERE ис­ пользуется очень редко.

10. УДАЛЕНИЕ ДАННЫХ ИЗ ТАБЛИЦ. КОМАНДА DELETE

Для удаления данных из таблиц используется команда DELETE. Команда DELETE предназначена не для того, чтобы уда­ лять значения отдельных столбцов, а для того, чтобы удалять целые записи. Оператор DELETE следует применять с осторожностью — слишком уж безотказно он работает.

Чтобы удалить одну или несколько записей из таблицы, ис­ пользуйте следующий синтаксис оператора DELETE.

DELETE FROM имя_таблицы [WHERE условие];

Если ключевое слово WHERE в операторе DELETE опущено, будут удалены все строки таблицы. Поэтому практически всегда необходимо использовать ключевое слово WHERE в операторе DELETE.

В качестве примера удалим все сведенья о билетах с датой вы­ лета ранее 1 января 2000 г.57:

DELETE FROM TICKET

WHERE TC_FL_DATE < '01.01.2000'

При использовании команды DELETE бывает полезно исполь­ зование вложенных запросов SELECT. Удалим из таблицы PERSON тех людей, кто ни разу не летал в качестве пассажира или члена экипажа. Чтобы выполнить это, нужно найти коды личностей всех членов экипажа (из таблицы EQUIPAGE) и всех пассажиров с биле­ тами (из таблицы TICKET). Получаем запрос на удаление58: