Для этих примеров представьте две таблицы, a и b, по 3 столбца в каждой.Когда вы вставляете, оператор должен либо использовать:
Метод A ) Здесь мы даем указание базе данных вставлять (ко всем или к определенным столбцам) результаты запроса.Для этого пишем INSERT INTO SELECT ..... например:
INSERT INTO table_a select table_b.* from table_b --Useful when we know how many columns table a and b have;
или
INSERT INTO table_a select b.column_2, b.column_3, b.column_1 from table_b --Usefull if b had more columns and we want those three, or if the order of the columns of b needs id different from the order of the columns of a
[В этом случае все столбцы таблицы будутзаполнить соответствующими столбцами из строк таблицы b, которые возвращает выбранная часть запроса]
или:
INSERT INTO table_a (tab_a_column1, tab_a_column3) select b.column_1, b.column_3 from table_b
[В этом случае толькоуказанные столбцы таблицы a будут заполнены столбцами из таблицы b, которые возвращает выбранная часть запроса]
-> Обратите внимание, что в этих примерах ключевое слово VALUES никогда не используется
Метод B ) В этом случае мы даем указание базе данных вставить в таблицу новую строку с определенными значениями (для всех или для определенных столбцов таблицы).В этом методе мы вообще не используем запрос на выборку:
INSERT INTO table_a VALUES ( 1, 'asdf', 5658 ) ;
В этом примере мы просто даем некоторые значения для вставки.Они будут помещены в соответствующие столбцы таблицы table_a в том порядке, в котором столбцы находятся в таблице.
INSERT INTO table_a (tab_a_column1, tab_a_column3) VALUES (1, 5658);
Числа 1 и 5658 будут вставлены в первый и третий столбцы, а во второй -останется NULL
Итак, при использовании VALUES мы вставляем только одну строку.Но при использовании метода A наш оператор one может вставлять любое количество строк за один раз.Все будет зависеть от того, сколько строк возвращает часть запроса SELECT.
ПРИМЕЧАНИЕ: часть выбора в методе A не имеет ограничений на то, насколько сложным он может быть.Например, он может иметь несколько объединений, где предложения, группировка по ... и т. Д.
Хорошую ссылку, объясняющую INSERT INTO, можно найти здесь: https://www.techonthenet.com/sql/insert.php