Изменение данных основных таблиц.
Самая простая операция изменения данных — вставка новой строки:
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 на счет, единоличным владельцем которого является г-н Иванов И.И., и на котором находится наименьшая среди всех таких счетов сумма. Считать, что такой счет только один.