Осваиваем инструкцию INSERT INTO SQL
Инструкция INSERT INTO SQL и INSERT INTRO SELECT используются для вставки новых строк в таблицу. Существует два способа использования инструкций:
- Только значения: Первый метод предусматривает указание только значений данных, которые нужно вставить без имен столбцов.
Синтаксис:
INSERT INTO имя_таблицы VALUES (значение1, значение2, значение3,...);
имя_таблицы: имя таблицы.
значение1, значение2,.. : значения первого столбца, второго столбца,... для новой записи
- Имена столбцов и значения: При втором методе указываются имена столбцов и значения строк для вставки:
Синтаксис:
INSERT INTO имя_таблицы (столбец1, столбец2, столбец3,..) VALUES (значение1, значение2, значение3,...);
имя_таблицы: имя таблицы.
столбец1: имя первого столбцы, второго столбца ...
значение1, значение2,.. : значения первого столбца, второго столбца,... для новой записи

Запросы:
Способ 1 (вставка только значений):
INSERT INTO Student VALUES ('5','HARSH','WEST BENGAL','8759770477','19');
Результат:
После использования INSERT INTO SELECT таблица Student теперь будет выглядеть следующим образом:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
5 | HARSH | WEST BENGAL | 8759770477 | 19 |
Способ 2 (вставка значений только в указанные столбцы):
INSERT INTO Student (ROLL_NO, NAME, Age) VALUES ('5','PRATIK','19');
Результат:
Таблица Student теперь будет выглядеть следующим образом:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
5 | PRATIK | null | null | 19 |
Обратите внимание, что для столбцов, значения для которых не указаны, задается null.
Использование SELECT в инструкции INSERT INTO
Можно использовать инструкцию MySQL INSERT SELECT для копирования строк из одной таблицы и их вставки в другую.
Использование этого оператора аналогично использованию INSERT INTO. Разница в том, что оператор SELECT применяется для выборки данных из другой таблицы. Ниже приведены различные способы использования INSERT INTO SELECT:
- Вставка всех столбцов таблицы: можно скопировать все данные таблицы и вставить их в другую таблицу.
Синтаксис:
INSERT INTO первая_таблица SELECT * FROM вторая_таблица;
первая_таблица: имя первой таблицы.
вторая_таблица: имя второй таблицы.
Мы использовали инструкцию SELECT для копирования данных из одной таблицы и инструкцию INSERT INTO для их вставки в другую.
- Вставка отдельных столбцов таблицы. Можно скопировать только те столбцы таблицы, которые необходимо вставить в другую таблицу.
Синтаксис:
INSERT INTO первая_таблица(имена_столбцов1) SELECT имена_столбцов2 FROM вторая_таблица;
первая_таблица: имя первой таблицы.
вторая_таблица: имя второй таблицы.
имена_столбцов1: имена столбцов, разделенные запятой(,) для таблицы 1.
имена_столбцов2: имена столбцов, разделенные запятой(,) для таблицы 2.
Мы использовали инструкцию SELECT для копирования данных только из выбранных столбцов второй таблицы и инструкцию INSERT INTO MySQL SELECT для их вставки в первую таблицу.
- Копирование определенных строк из таблицы. Можно скопировать определенные строки из таблицы для последующей вставки в другую таблицу с помощью условия WHERE с оператором SELECT. В этом случае нужно использовать соответствующее условие в WHERE.
Синтаксис:
INSERT INTO таблица1 SELECT * FROM таблица2 WHERE условие;
таблица1: имя первой таблицы.
таблица2: имя второй таблицы.
условие: условие для выбора строк.
Таблица 2: LateralStudent
ROLL_NO | NAME | ADDRESS | PHONE | Age |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |
8 | NIRAJ | NOIDA | 9786543210 | 19 |
9 | SOMESH | ROHTAK | 9687543210 | 20 |
Запросы:
Способ 1 (вставка всех строк и столбцов):
INSERT INTO Student SELECT * FROM LateralStudent;
Результат:
Этот запрос вставит все данные таблицы LateralStudent в таблицу Student. После применения INSERT INTO SQL SELECT таблица Student будет выглядеть следующим образом:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |
8 | NIRAJ | NOIDA | 9786543210 | 19 |
9 | SOMESH | ROHTAK | 9687543210 | 20 |
Способ 2 (вставка отдельных столбцов):
INSERT INTO Student(ROLL_NO,NAME,Age) SELECT ROLL_NO, NAME, Age FROM LateralStudent;
Результат:
Этот запрос вставит данные из столбцов ROLL_NO, NAME и Age таблицы LateralStudent в таблицу Student. Для остальных столбцов таблицы Student будет задано значение null. После применения SQL INSERT SELECT таблица будет выглядеть следующим образом:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | Null | null | 18 |
8 | NIRAJ | Null | null | 19 |
9 | SOMESH | Null | null | 20 |
- Выбор определенных строк для вставки:
INSERT INTO Student SELECT * FROM LateralStudent WHERE Age = 18;
Результат:
Этот запрос выберет только первую строку из таблицы LateralStudent для вставки в таблицу Student. После применения INSERT SELECT таблица будет выглядеть следующим образом:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |