В этом учебном пособии вы узнаете, как использовать MySQL оператор INSERT с синтаксисом и примерами.
Описание
MySQL оператор INSERT используется для вставки одной записи или нескольких записей в таблицу в MySQL.
Синтаксис
Синтаксис простой формы оператора INSERT для вставки одной записи с использованием ключевого слова VALUES в MySQL:
(column1, column2, ... )
VALUES
(expression1, expression2, ... ),
(expression1, expression2, ... ),
...;
Теперь полный синтаксис оператора INSERT для вставки одной записи с использованием ключевого слова VALUES:
INTO table
(column1, column2, ... )
VALUES
(expression1, expression2, ... ),
(expression1, expression2, ... ),
[ ON DUPLICATE KEY UPDATE
dup_column1 = dup_expression1,
dup_column2 = dup_expression2,
... ];
ИЛИ
Синтаксис простой формы оператора INSERT для вставки нескольких записей с использованием подзапроса в MySQL:
(column1, column2, ... )
SELECT expression1, expression2, ...
FROM source_table
[WHERE conditions];
Теперь полный синтаксис оператора INSERT для вставки нескольких записей с использованием подзапроса:
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.
Например:
1 2 3 4 |
INSERT INTO suppliers (supplier_id, supplier_name) VALUES (100, 'Acer'); |
Этот MySQL пример INSERT приведет к тому, что одна запись будет вставлена в таблицу suppliers. Новая запись будет иметь supplier_id 100 и supplier_name 'Acer'.
Пример с использованием подзапроса.
Вы также можете создавать более сложные MySQL операторы INSERT, используя подзапросы.
Например:
1 2 3 4 5 |
INSERT INTO suppliers (supplier_id, supplier_name) SELECT account_no, name FROM customers WHERE customer_id < 300; |
Поместив инструкцию SELECT в оператор INSERT, вы можете быстро выполнить множественную вставку.
С этим типом вставки вы можете проверить количество вставленных строк. Вы можете определить количество строк, которые будут вставлены, вызывая функцию mysql_info или запуская следующее MySQL предложение SELECT перед выполнением вставки.
1 2 3 |
SELECT count(*) FROM customers WHERE customer_id < 300; |