INSERT оператор MySQL

В этом учебном пособии вы узнаете, как использовать MySQL оператор INSERT с синтаксисом и примерами.

Описание

MySQL оператор INSERT используется для вставки одной записи или нескольких записей в таблицу в MySQL.

Синтаксис

Синтаксис простой формы оператора INSERT для вставки одной записи с использованием ключевого слова VALUES в MySQL:

INSERT INTO table
(column1, column2, … )
VALUES
(expression1, expression2, … ),
(expression1, expression2, … ),
…;

Теперь полный синтаксис оператора INSERT для вставки одной записи с использованием ключевого слова VALUES:

INSERT [ LOW_PRIORITY | DELAYED | HIGH_PRIORITY ] [ IGNORE ]
INTO table
(column1, column2, … )
VALUES
(expression1, expression2, … ),
(expression1, expression2, … ),
[ ON DUPLICATE KEY UPDATE
dup_column1 = dup_expression1,
dup_column2 = dup_expression2,
… ];

ИЛИ
Синтаксис простой формы оператора INSERT для вставки нескольких записей с использованием подзапроса в MySQL:

INSERT INTO table
(column1, column2, … )
SELECT expression1, expression2, …
FROM source_table
[WHERE conditions];

Теперь полный синтаксис оператора INSERT для вставки нескольких записей с использованием подзапроса:

INSERT [ LOW_PRIORITY | HIGH_PRIORITY ] [ IGNORE ]
INTO table
(column1, column2, … )
SELECT expression1, expression2, …
FROM source_table
[WHERE conditions]
[ ON DUPLICATE KEY UPDATE
dup_column1 = dup_expression1,
dup_column2 = dup_expression2,
… ];

Параметры или аргументы

LOW_PRIORITY – необязательный. Вставка будет отложена до тех пор, пока не будет процессов читающих из таблицы.
DELAYED — необязательный. Вставленные строки помещаются в буфер до тех пор, пока таблица не будет доступна, и следующий оператор SQL может быть выдан этим процессом.
HIGH_PRIORITY — необязательный. Вставка будет иметь более высокий приоритет, переопределяя приоритеты «вставки» базы данных.
IGNORE — необязательный. Если указано, все ошибки, возникающие во время вставки, игнорируются и обрабатываются вместо этого как предупреждения.
table — таблица в которую вставляются записи.
column1, column2 — столбцы таблицы для вставки значений.
expression1, expression2 – значения столбцов для установки в таблице. Таким образом, column1 присваивается значение expression1, column2 присваивается значение expression2 и т. д.
source_table — исходная таблица при вставке данных из другой таблицы.
WHERE conditions — необязательный. Условия, которые должны быть выполнены для вставленных записей.
ON DUPLICATE KEY UPDATE — необязательный. Если указано и вставлена строка, которая будет нарушать первичный ключ или уникальный индекс, обновление будет выполняться вместо вставки. dup_column1 будет присвоено значение dup_expression1, dup_column2 будет присвоено значение dup_expression2 и т. д.

Примечание

  • При вставке записей в таблицу с использованием MySQL оператора INSERT вы должны указать значение для каждого столбца NOT NULL.
  • Вы можете опустить столбец из MySQL оператора INSERT, если столбец допускает значения NULL.

Пример использования ключевого слова VALUES

Самый простой способ создать MySQL запрос INSERT для отображения значений с помощью ключевого слова VALUES.
Например:

Этот MySQL пример INSERT приведет к тому, что одна запись будет вставлена в таблицу suppliers. Новая запись будет иметь supplier_id 100 и supplier_name ‘Acer’.

Пример с использованием подзапроса.

Вы также можете создавать более сложные MySQL операторы INSERT, используя подзапросы.
Например:

Поместив инструкцию SELECT в оператор INSERT, вы можете быстро выполнить множественную вставку.
С этим типом вставки вы можете проверить количество вставленных строк. Вы можете определить количество строк, которые будут вставлены, вызывая функцию mysql_info или запуская следующее MySQL предложение SELECT перед выполнением вставки.