Осваиваем инструкцию 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_NONAMEADDRESSPHONEAge
1RamDelhi945512345118
2RAMESHGURGAON956243154318
3SUJITROHTAK915625313120
4SURESHDelhi915676897118
3SUJITROHTAK915625313120
2RAMESHGURGAON956243154318
5HARSHWEST BENGAL875977047719

Способ 2 (вставка значений только в указанные столбцы):

INSERT INTO Student (ROLL_NO, NAME, Age) VALUES ('5','PRATIK','19');

Результат:

Таблица Student теперь будет выглядеть следующим образом:

ROLL_NONAMEADDRESSPHONEAge
1RamDelhi945512345118
2RAMESHGURGAON956243154318
3SUJITROHTAK915625313120
4SURESHDelhi915676897118
3SUJITROHTAK915625313120
2RAMESHGURGAON956243154318
5PRATIKnullnull19

Обратите внимание, что для столбцов, значения для которых не указаны, задается 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_NONAMEADDRESSPHONEAge
7SOUVIKDUMDUM987654321018
8NIRAJNOIDA978654321019
9SOMESHROHTAK968754321020

Запросы:

Способ 1 (вставка всех строк и столбцов):

INSERT INTO Student SELECT * FROM LateralStudent;

Результат:

Этот запрос вставит все данные таблицы LateralStudent в таблицу Student. После применения INSERT INTO SQL SELECT таблица Student будет выглядеть следующим образом:

ROLL_NONAMEADDRESSPHONEAge
1RamDelhi945512345118
2RAMESHGURGAON956243154318
3SUJITROHTAK915625313120
4SURESHDelhi915676897118
3SUJITROHTAK915625313120
2RAMESHGURGAON956243154318
7SOUVIKDUMDUM987654321018
8NIRAJNOIDA978654321019
9SOMESHROHTAK968754321020

Способ 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_NONAMEADDRESSPHONEAge
1RamDelhi945512345118
2RAMESHGURGAON956243154318
3SUJITROHTAK915625313120
4SURESHDelhi915676897118
3SUJITROHTAK915625313120
2RAMESHGURGAON956243154318
7SOUVIKNullnull18
8NIRAJNullnull19
9SOMESHNullnull20
  • Выбор определенных строк для вставки:
INSERT INTO Student SELECT * FROM LateralStudent WHERE Age = 18;

Результат:

Этот запрос выберет только первую строку из таблицы LateralStudent для вставки в таблицу Student. После применения INSERT SELECT таблица будет выглядеть следующим образом:

ROLL_NONAMEADDRESSPHONEAge
1RamDelhi945512345118
2RAMESHGURGAON956243154318
3SUJITROHTAK915625313120
4SURESHDelhi915676897118
3SUJITROHTAK915625313120
2RAMESHGURGAON956243154318
7SOUVIKDUMDUM987654321018

Пожалуйста, оставляйте ваши мнения по текущей теме статьи. За комментарии, дизлайки, подписки, лайки, отклики огромное вам спасибо!

Пожалуйста, оставляйте ваши комментарии по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, отклики, подписки, дизлайки, лайки!

Вадим Дворниковавтор-переводчик статьи «SQL INSERT INTO Statement»