Выражение INSERT
Выражение INSERT — это DML-оператор, который применяется для добавления новых строк в таблицу.
INSERT обновляет таблицу, вставляя в нее одну или несколько строк. Значения, вставляемые в каждую колонку таблицы, могут быть указаны явно или получены из вложенного запроса.
Синтаксис
INSERT INTO <target_table> [ ( <target_col_name> [ , ... ] ) ]
{
VALUES ( { <value> | DEFAULT | NULL } [ , ... ] ) [ , ( ... ) ] |
<query>
}
Параметры
-
<target_table>— имя целевой таблицы, в которую будут вставлены строки
-
<target_col_name>— имена колонок, в которые будут вставлены значения. Если какие-то колонки таблицы не указаны, то в них будут вставлены значения по умолчанию. Параметр является опциональным. Если его не указывать, то должны быть указаны добавляемые значения для всех колонок.
-
VALUES ( value | DEFAULT | NULL [ , ... ] ) [ , ( ... ) ]— указывает одно или несколько значений для вставки в соответствующие колонки целевой таблицы.-
value— явно указанное значение; может быть литералом или выражением. -
DEFAULT— значение по умолчанию для соответствующей колонки целевой таблицы. -
NULL— пустое значение.
Значения разделяются запятыми.
Вы можете вставить несколько строк, указав дополнительные наборы значений в выражении.
-
-
query— запрос, результат которого будет вставлен в целевую таблицу. Таким образом можно вставлять строки в целевую таблицу из одной или нескольких исходных таблиц.
Пример вставки явно заданных значений
Вставим в таблицу capitals значения для колонок country и capital:
CREATE TABLE capitals (country VARCHAR, capital VARCHAR);
INSERT INTO capitals VALUES
('Russia', 'Moscow'),
('Italy', 'Rome'),
('Spain', 'Madrid'),
('France', 'Paris');
SELECT * FROM capitals;
+---------+---------+
| country | capital |
+---------+---------+
| France | Paris |
+---------+---------+
| Italy | Rome |
+---------+---------+
| Russia | Moscow |
+---------+---------+
| Spain | Madrid |
+---------+---------+
Пример вставки результатов вложенного запроса
Теперь создадим другую таблицу capitals_m и сделаем вставку строк из capitals, которые будут результатом вложенного запроса SELECT. Вставим такие строки из capitals, в которых значение capital содержит M.
CREATE TABLE capitals_m (country VARCHAR, capital VARCHAR);
INSERT INTO capitals_m (country, capital)
SELECT * FROM capitals
WHERE capital LIKE '%M%';
SELECT * FROM capitals_m;
+---------+---------+
| country | capital |
+---------+---------+
| Russia | Moscow |
+---------+---------+
| Spain | Madrid |
+---------+---------+