3.2.3.    Использование подзапросов с UPDATE

С помощью команды UPDATE можно применять подзапро­сы в любой форме, приемлемой для команды DELETE.

Например, используя связанные подзапросы, можно увели­чить значение размера стипендии на 20 в записях студентов, сдавших экзамены на 4 и 5.

UPDATE STUDENT1

SET STIPEND =   STIPEND + 20

WHERE 4 <=

(SELECT MIN (MARK) FROM EXAM_MARKS

WHERE EXAM_MARKS . STUDENT_ID = STUDENT1. STUDENT_IDi ;

Другой запрос: «Уменьшить величину стипендии на 20 всем студентам, получившим на экзамене минимальную оценку».

UPDATE STUDENT1

SET   STIPEND  =   STIPEND  - 20

WHERE STUDENT_ID IN

(SELECT STUDENT_ID FROM EXAM_MARKS A WHERE MARK =

3. Манипулирование данными

(SELECT MIN (MARK | FROM EXAM_MARKS В

WHERE A . EXAM DATE = B. EXAM DATE));

Упражнения

1. Пусть существует таблица с именем STUDENTI, определения столб­цов которой полностью совпадают с определениями столбцов таб­лицы STUDENT. Вставить в эту таблицу сведения о студентах, ус­пешно сдавших экзамены более чем по пяти предметам обучения.

2. Напишите команду, удаляющую из таблицы SUBJECTI сведения о предметах обучения, по которым студентами не получено ни од­ной оценки.

3. Напишите запрос, увеличивающий данные о величине стипендии на 20% всем студентам, у которых общая сумма баллов превышает значение 50.