Оператор SQL «INSERT INTO» может использоваться для добавления строк данных в таблицу в базе данных.
Синтаксис
Ниже приведен обычный вариант использования «INSERT INTO», когда вы вставляете значения вручную. После оператора "INSERT INTO" erfpsdftncz имя таблицы в которую будут добавляться данные, список столбцов (не обязательно), которые должны быть заполнены данными. Затем следует ключевое слово «VALUES» и фактические значения, которые вы хотите вставить.
INSERT INTO table_name (column_a, column_b)
VALUES ("value_a", "value_b");
Соответственно фактические значения из "VALUES" будут записаны в соответствующие столбцы.
Выше мы указали, что можно не указывать список столбцов, т.е. запрос на добавление может выглядеть следующим образом:
INSERT INTO table_name VALUES ("value_a", "value_b");
Такой вариант запроса применим ТОЛЬКО В ТОМ СЛУЧАЕ, если количество переданных значений соответствует количеству столбцов в таблице.
Т.е. если в таблице есть автогенерируемые поля, такие как: autoincrement, timestamps и т.д., тогда используем первый вариант написания запроса.
Оператор "INSERT INTO" позваляет добавлять в запрос сразу несколько записей в рамках одного запроса:
INSERT INTO table_name (column_list)
VALUES
(value_list_1),
(value_list_2),
...
(value_list_n);
Для этого через запяту необходимо указать списки значений, которые мы хотим добавить в таблицу.
Например:
INSERT INTO promotions (promotion_name, discount, start_date,expired_date)
VALUES
( '2019 Summer Promotion', 0.15, '20190601', '20190901'),
('2019 Fall Promotion', 0.20, '20191001', '20191101'),
('2019 Winter Promotion', 0.25, '20191201','20200101');
Этот запрос добавит три новые записи в таблицу promotions
В этом примере в таблицу promotions вставляются три новые строки, и возвращается список идентификаторов новых записей:
INSERT INTO promotions ( promotion_name, discount, start_date, expired_date)
OUTPUT inserted.promotion_id
VALUES
('2020 Summer Promotion',0.25,'20200601','20200901'),
('2020 Fall Promotion',0.10,'20201001','20201101'),
('2020 Winter Promotion', 0.25,'20201201','20210101');
В этом примере мы добавили оператор OUTPUT со столбцом, который мы хотим вернуть, используя синтаксис insert.column_name. Если вы хотите вернуть значения из нескольких столбцов, вы можете использовать следующий синтаксис:
OUTPUT inserted.column1, inserted.column2...