Изменение данных основных таблиц.

Самая простая операция изменения данных — вставка новой строки:

insert into <имя таблицы>(<список полей>) values (<список значений>)

Пример 53Например, чтобы добавить в таблицу ball новую строку, нужно записать следующее:

insert into ball (stud._nom.er, dis, dat, form, res) values ('010001', 'Практикум на ЭВМ', '29.12.2003', 'Зачет', 85)

Если какой-либо столбец таблицы в списке полей не указан, то будет попытка вставить на его место значение по умолчанию, если оно есть, или NULL, если значение по умолчанию отсутствует.

Пример 54Например, оператор

insert into ball(stud_nomer, dis, dat, res) values ('010001', 'Практикум на ЭВМ', '29.12.2003', 85)

приведет к вставке строки

010001 Практикум, на ЭВМ 04-01.2004 Экзамен 100

Оператор

insert into ball(stud_nomer, dis) values ('010001', 'Практикум на ЭВМ')

вставит

010001 Практикум на ЭВМ NULL Экзамен NULL

Л оператор

insert into ball(stud_nomer) values ('010001')

приведет к ошибке и не выполнится, т,ак как для поля dis значение по умолчанию не задано, а значение NULL это поле не допускает.

Задача 87 (Библиотека) Напишите оператор, добавляющий в базу данных информацию о выдаче читателю какой-либо книги.

Задача88 (Супермаркет)Напишит,е оператор, добавляющий в базу данных информацию о покупке.

Задача 89 (CD) Напишите операторы для занесения в базу данных информации о новом альбоме.

Задача 90 (Банк) Напишите операторы необходимые для занесения в базу данных информации о новом, клиенте и об открытии им счета.

Более сложный оператор — удаление данных из таблицы:

delete from <имя таблицы> [where <условие>]

Если условие отсутствует, то удаляются все строки из таблицы. Если оно записано, то удаляются только строки, ему удовлетворяющие.

Пример 55 Например, чтобы удалить всю информацию из таблицы ball о студенте с номером '010001', следует, написать:

delete from ball where stud_nomer = '010001'

Правила написания условия такие же, как в инструкции whereоператора select.

Задача 91 (Библиотека) Напишите оператор, удаляющий из базы данных информацию о какой-либо книге, и всю связанную с ней инфор­мацию (об авторах, о ее выдаче читателям).

Задача 92 (CD) Напишите операторы для удаления из базы данных информации об альбоме и связанной с ней информации.

Задача 93 (Банк) Напишите операторы, необходимые для закрытия счета клиентом.

Задача 94 (Банк) Напишите оператюры, которые для какого-либо клиента закрывают счета, единоличным владельцем котюрых он яв­ляется, а для счетов, у котюрых есть совладельцы, клиент, удаляется из их числа.

Оператор изменения существующих строк:

update <имя таблицы>

set <имя поля> = <значение> [,<имя поля> = <значение> [, ... ]] [where <условие>]

При выполнении оператора в указанные после слова setполя записыва­ются соответствующие значения. Если присутствует инструкция where,то изменения касаются лишь строк, удовлетворяющих условию, иначе — всех строк таблицы.

 

Пример 56Если, например, нужно изменить номер студента с '010001' на '010010', то следует, изменить таблицы student и ball:

update student set nomer = '010010' where nomer='010001'

update ball set stud_nomer = '010010' where stud_nomer='010001'

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

Пример 57 Если нужно увеличить все баллы за экзамен по информа­тике на 5, то это можно сделать так:

update ball set res = res + 5 where dis = 'Информатика' and form = 'Экзамен'

Как и в операторе select,в инструкциях whereоператоров deleteи update можно использовать подзапросы.

Пример 58Например, чтобы студентам, набравшим, наибольшее число баллов на экзалчене по информатике, установить результат в 100 баллов, можно выполнить т.акой оператор:

update ball set res = 100

where dis = 'Информатика' and form = 'Экзамен' and res = any( select max(res) from ball

where dis = 'Информатика' and form = 'Экзамен')

Задача 95 (Библиотека) Напишите оператор, предназначенный для того, чтобы занести информацию о возвращении книги читателем.

Задача96 (Супермаркет)Напишите оператюр, который снижает, цену на 5% на товары, цена которых превышает 1000.

Задача 97 (Банк)Напишите оператор, который заносит некоторую сумму на определенный счет.

Задача 98 (Банк)Напишите операторы, кот.орый заносит общую сумму в 10000 на счета, владельцем или совладельцем которых являет­ся г-н Иванов И.И., распределяя ее равномерно по всем таким счетам.

Задача 99 (Банк)Напишите оператор, который заносит сумму в 10000 на счет, единоличным владельцем которого является г-н Иванов И.И., и на котором находится наименьшая среди всех таких счетов сумма. Считать, что такой счет только один.