4 Манипулирование данными
Для управления данными в таблице и их манипуляцией предназначены команды DML (Data Manipulation Language): INSERT (вставка), UPDATE (обновление), DELETE (удалить). С помощью этих команд данные заносятся в поля и исключаются из них.
Ввод в таблицу значений полей
Команда добавления данных INSERT используется для вставки содержимого одной или нескольких новых строк в указанную таблицу или запрос. Упрощенный формат команды:
INSERT INTO <имя таблицы >
VALUES (<значение>, <значение>...);
Имя таблицы в команде INSERT должно быть определено до выполнения команды INSERT в команде CREATE TABLE. Значения в списке значений (<значение>...) должны иметь тип данных, соответствующий типу данных столбцов таблицы. Значения вводятся в таблицу в порядке следования столбцов. Программа сообщает пользователю о добавлении записи.
Пример. Ввести запись в таблицу Spisok:
INSERT INTO Spisok
VALUES (‘ГЭФ’, 1, ‘ГК-11’, ‘Петькин’, 25000, 400);
Если значение какого-либо поля неизвестно, то в списке значений можно вставлять NULL-значение. Предположим, неизвестен размер стипендии:
VALUES ‘ГЭФ’, 1, ‘ГК-11’, ‘Петькин’, NULL, 400);
Вставка результатов запроса (команда INSERT).
С помощью команды INSERT можно по запросу извлечь значения из одной таблицы и разместить их в другой; Для этого в команде INSERT предложение VALUES заменяется на SELECT. Столбцы таблиц должны быть одного типа данных.
Пример. Все строки таблицы Spisok 1-го курса расположить в таблице Spisok1;
INSERT INTO Spisok1
FROM Spisok
WHERE kurs = 1;
Изменение значения полей (команда UPDATE).
Командой UPDATE можно изменить в строке некоторые или все значения. В команде указываются имя таблицы и изменения. Предположим, приказом ректора всем студентам, которые получают стипендию, устанавливается новый (одинаковый для всех) размер стипендии в размере 50 000 руб.
Для этого подается команда:
UPDATE Spisok
SET stip = 50 000;
В команде UPDATE в предложении WHERE можно задать обновление только определенных строк.
Пример.
UPDATE Spisok
SET stip = 50 000
WHERE kurs=I;
В предложении SET команды UPDATE можно через запятую указать любое количество значений для столбцов.
Одной командой UPDATE нельзя обновить несколько таблиц.
В команде UPDATE в предложении SET можно применять скалярные выражения для изменения значения поля. Предположим, всем студентам размер стипендии увеличен на 25 %; требуется внести изменения:
UPDATE Spisok
SET stip = (stip *25)/100;
Итак, команда UPDATE предназначена для замены значений в строках (записях) таблицы.
Удаление строк из таблицы (команда DELETE).
Командой DELETE удаляются не отдельные значения полей строки, а целые строки. После выполнения команды DELETE для всей таблицы она становится пустой, например:
DELETE FROM Spisok;
Для удаления конкретно указанных строк можно использовать предикат DELETE FROM Spisok WHERE stip = 0; или указать значение первичного ключа для удаления одной записи
DELETE FROM Spisok
WHERE fio = ‘Петькин’;
В командах INSERT, DELETE, UPDATE можно применять подзапросы.