Операторы языка SQL для манипулирования данными INSERT, DELETE, UPDATE
Для демонстрации работы операторов берется БД СЕССИЯ
Оператор ввода данных INSERT
Синтаксис:
INSERT INTO имя таблицы [()] VALUES ();
Например, введем нового студента в таблицу s2 БД Сессия:
INSERT INTO s2 ( ФИО, Группа)
VALUES ('Сидоров П.П.', '02-КТ-21');
Задание списка столбцов необязательно тогда, когда, как в данном случае, вводится строка с заданием значений всех столбцов. При таком вводе предполагается, что информация будет вводиться в том порядке, в котором они описаны в операторе CREATE TABLE. Так как в рассматриваемом примере вводится полная строка, то можно не задавать список столбцов, ограничиться только заданием перечня значений, в этом
случае оператор ввода будет выглядеть следующим образом:
INSERT INTO S2 VALUES ('Сидоров П.П.', '02-КТ-21');
Между списком имен столбцов и списком значений должно быть следующее соответствие:
- количество элементов в обоих списках должно быть
одинаковым;
- между положением элементов в списках должно быть строгое соответствие, которое определяется слева направо: первый элемент одного списка соответствует первому элементу второго списка и т.д.;
• типы данных соответствующих элементов списков должны быть одинаковые и принадлежать к одному и тому же домену.
Оператор удаления данных DELETE
Оператор удаления данных позволяет удалить одну или несколько строк из таблицы в соответствии с условиями, которые задаются для удаляемых строк.
Синтаксис оператора DELETE следующий:
DELETE FROM имя_таблицы
[WHERE условия_Отбора ]
Условия отбора определяют, какие строки должны быть удалены. Если условия отбора не задаются, то из таблицы удаляются все существующие в ней строки. Однако это не означает, что удаляется вся таблица. Исходная таблица остается, но она остается пустой, незаполненной.
Например, если нам надо удалить результаты прошедшей сессии, то мы можем удалить все строки из отношения s1 следующим оператором:
DELETE FROM s1;
Условия отбора в части WHERE имеют тот же вид, что и условия фильтрации в операторе SELECT. Эти условия определяют, какие строки из исходного отношения будут удалены. Например, исключение по какой-либо причине студента Крисса P.O. из таблицы s2 можно выполнить оператором:
DELETE FROM s2
WHERE ФИО = 'Крисс P.O.';
Оператор обновления данных UPDATE
Операция обновления данных UPDATE используется тогда, когда требуется изменить содержимое базы данных. Данный оператор, также как и другие операторы обновления информации БД, применяется к одной конкретной таблице и имеет следующий формат:
UPDATE имя_таблицы
SET имя_столбца1 = новое_значение1 [,имя__стол0ца2 =
новое_значение2...] [WHERE условие_отбора]
Здесь в предложении UPDATE указывается имя обновляемой таблицы, в предложении SET указываются имена столбцов и новые данные. Новые данные должны быть совместимы с теми данными, которые они призваны заменить.
Часть WHERE является необязательной, также как и в операторе DELETE .
Она позволяет отобрать строки, к которым будет применена операция модификации. Если условие отбора не задается, то операция модификации будет применена ко всем строкам таблицы.
Рассмотрим операцию обновления данных таблицы базы данных НИР. Предположим, что решено все начисления специалистам увеличить на 10%. Операция обновления информации в связи с этим будет выглядеть следующим образом:
UPDATE r3
SET Начисления = Начисления * 1.1;
В том случае, когда модификацию информации необходимо производить выборочно, требуется использование предложения WHERE.
Пример : Имеется таблица S1 в базе данных СЕССИЯ
Допустим, что в БД Сессия следует произвести изменение данных, поскольку студентка Думская М.Т. пересдала экзамен по физике и получила оценку
"отлично" вместо "удовлетворительно".
Для решения поставленной задачи необходимо выполнить следующую операцию:
UPDATE s1 SET s1.Оценка = 5
WHERE s1.ФИО = 'Думская М.Т.' AND s1.Дисциплина = 'ФИЗИКА';