Вставка записей осуществляется с помощью оператора INSERT, который позволяет добавлять к таблицам одну или несколько записей. При добавлении одной записи оператор INSERT имеет формат:
INSERT INTO <Имя таблицы> [(<Список полей>)] VALUES (<Список значений>);
В результате выполнения этого оператора к таблице, имя которой указано после слова INTO, добавляется одна запись. Для добавленной записи заполняются поля, перечисленные в списке. Значения полей берутся из списка, расположенного после слова VALUES. Список полей и список значений должны соответствовать друг другу по числу элементов и по типу. При присваивании значений для первого поля берется первое значение, для второго второе и т.д. При этом порядок полей и значений может отличаться от порядка полей в таблице. Пример запроса на добавление записи:
INSERT INTO store (S_Name, S_Price, S_Quantity) VALUES ("Торшер", 499.9, 10);
Здесь в таблицу склада Store добавляется новая запись, в которой присваиваются значения полям названия товара, его цены и количества.
Список полей в инструкции INSERT может отсутствовать, в этом случае необходимо указать значения для всех полей таблицы. Порядок и тип этих значений должны соответствовать порядку и типу полей таблицы. При добавлении к таблице сразу нескольких записей оператор INSERT имеет формат:
INSERT INTO <ИМЯ таблицы> (<Список полей>) Оператор SELECT;
В данном случае значения полей новых записей определяются через значения полей записей, отобранных с помощью оператора SELECT. Число добавленных записей равно числу отобранных записей. Список значений полей, возвращаемых инструкцией SELECT, должен соответствовать списку оператора INSERT по числу и типу полей.
С помощью вставки группы записей можно скопировать данные из одной таблицы в другую, например, при резервном копировании или архивировании записей. При этом обе таблицы обычно имеют одинаковую структуру или их структуры частично совпадают. Ниже запрос на добавление нескольких записей:
INSERT INTO CardsArchives (Code, Move, Date) SELECT C_Code, C_Move, C_Date FROM Cards WHERE C_Date BETWEEN 1.1.02 AND 31.12.02
В архивную таблицу CardsArchives добавляется группа записей из таблицы Cards движения товара. Для записей, сделанных в 2005 г., в архив копируются код товара, приход или расход и дата. Если необходимо выполнить не копирование, а перемещение записей в архив, то после успешного копирования можно удалить записи в исходной таблице с помощью оператора DELETE.
Перемещение записей целесообразно оформлять в рамках транзакции, чтобы обеспечить надежность выполнения операции и сохранение целостности БД.