Запрос MySQL INSERT INTO: как добавить строку в таблицу (пример)

Что такое ВСТАВИТЬ В?

ВСТАВИТЬ В используется для хранения данных в таблицах. Команда INSERT создает в таблице новую строку для хранения данных. Данные обычно предоставляются прикладными программами, которые работают поверх базы данных.

Основной синтаксис

Давайте посмотрим на основной синтаксис команды INSERT INTO MySQL:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

ВОТ

  • INSERT INTO `table_name` — это команда, которая сообщает серверу MySQL добавить новую строку в таблицу с именем `table_name`.
  • (column_1,column_2,…) указывает столбцы, которые будут обновлены в новой строке MySQL.
  • VALUES (value_1,value_2,…) определяет значения, которые будут добавлены в новую строку.

При предоставлении значений данных для вставки в новую таблицу следуетwing следует считать:

  • Строковые типы данных – все строковые значения должны быть заключены в одинарные кавычки.
  • Числовые типы данных. Все числовые значения следует указывать напрямую, не заключая их в одинарные или двойные кавычки.
  • Типы данных даты — значения даты заключаются в одинарные кавычки в формате «ГГГГ-ММ-ДД».


Пример:

Предположим, что у нас есть следующееwing список новых членов библиотеки, которых необходимо добавить в базу данных.

Полные имена Дата рождения пол Физический адрес почтовый адрес Контактный номер Ваш e-mail
Леонард Хофштадтер M Вудкрест 0845738767
Шелдон Купер M Вудкрест 0976736763
Раджеш Кутраппали M Fairview 0938867763
Лесли Винкль 14/02/1984 M 0987636553
Говард Воловиц 24/08/1981 M South Park Почтовый ящик 4563 0987786553 lwolowitz@email.me

Давайте вставим данные один за другим. Начнем с Леонарда Хофштадтера. Мы будем рассматривать номер контакта как числовой тип данных и не заключать его в одинарные кавычки.

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);

Выполнение приведенного выше сценария удаляет 0 из контактного номера Леонарда. Это связано с тем, что значение будет рассматриваться как числовое значение, а ноль (0) в начале опускается, поскольку он не имеет значения.

Чтобы избежать таких проблем, значение должно быть заключено в одинарные кавычки, как показано ниже:

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`)  VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');

В приведенном выше случае ноль (0) не будет отброшен.


Изменение порядка столбцов не влияет на запрос INSERT в MySQL, если правильные значения сопоставлены с правильными столбцами.

Запрос, показанный ниже, демонстрирует вышеизложенное.

INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`)  VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');

В приведенных выше запросах столбец даты рождения пропущен. По умолчанию MySQL вставит значения NULL в столбцы, которые пропущены в запросе INSERT.

Давайте теперь вставим запись о Лесли, в которой указана дата рождения. Значение даты должно быть заключено в одинарные кавычки в формате «ГГГГ-ММ-ДД».

INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`)  VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');

Все приведенные выше запросы указывали столбцы и сопоставляли их со значениями в операторе вставки MySQL. Если мы предоставляем значения для ВСЕХ столбцов в таблице, то мы можем исключить эти столбцы из запроса на вставку MySQL.

Пример:-

INSERT INTO `members`  VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');

Давайте теперь воспользуемся Оператор SELECT для просмотра всех строк в таблице участника.

SELECT * FROM `members`;
Количество членов полные имена пол Дата рождения Физический адрес почтовый адрес контактный_ номер e-mail
1 Джанет Джонс F 21-07-1980 Первая улица, участок № 4 Частная сумка 0759 253 542 janetjones@yagoo.cm
2 Джанет Смит Джонс F 23-06-1980 Мелроуз 123 NULL, NULL, jj@fstreet.com
3 Роберт Фил M 12-07-1989 3-я улица, 34 NULL, 12345 rm@ttreet.com
4 Глория Уильямс F 14-02-1984 2-я улица, 23 NULL, NULL, NULL,
5 Леонард Хофштадтер M NULL, Вудкрест NULL, 845738767 NULL,
6 Шелдон Купер M NULL, Вудкрест NULL, 0976736763 NULL,
7 Раджеш Кутраппали M NULL, Вудкрест NULL, 0938867763 NULL,
8 Лесли Винкль M 14-02-1984 Вудкрест NULL, 0987636553 NULL,
9 Говард Воловиц M 24-08-1981 Южный парк Почтовый ящик 4563 0987786553 lwolowitz@email.me

Обратите внимание, что в контактном номере Леонарда Хофштадтера удален ноль (0). В других контактных номерах в начале не опущен ноль (0).

Вставка в таблицу из другой таблицы

Команда INSERT также может использоваться для вставки данных в таблицу из другой таблицы. Основной синтаксис показан ниже.

INSERT INTO table_1 SELECT * FROM table_2;

Давайте теперь посмотрим на практический пример. Для демонстрационных целей мы создадим фиктивную таблицу категорий фильмов. Мы назовем новую таблицу категорий категории_архив. Сценарий, показанный ниже создает таблицу.

CREATE TABLE `categories_archive` (    	  `category_id` int(11) AUTO_INCREMENT,    	  `category_name` varchar(150)  DEFAULT NULL,    	  `remarks` varchar(500) DEFAULT NULL,    	  PRIMARY KEY (`category_id`))

Выполните приведенный выше сценарий, чтобы создать таблицу.

Давайте теперь вставим все строки из таблицы категорий в таблицу архива категорий. Сценарий, показанный ниже, помогает нам добиться этого.

INSERT INTO `categories_archive` SELECT * FROM `categories`;

Выполнение приведенного выше сценария вставляет все строки из таблицы категорий в таблицу архива категорий. Обратите внимание, что для работы сценария структуры таблиц должны быть одинаковыми. Более надежный сценарий — это сценарий, который сопоставляет имена столбцов в таблице вставки с именами в таблице, содержащей данные.

Запрос, показанный ниже, демонстрирует его использование.

INSERT INTO `categories_archive`(category_id,category_name,remarks)  SELECT category_id,category_name,remarks FROM `categories`;

Выполнение запроса SELECT

SELECT * FROM `categories_archive`

дает фоллоwing результаты показаны ниже.

ид_категории category_name замечания
1 комедия Фильмы с юмором
2 Романтический Любовные истории
3 Эпический Сюжетные древние фильмы
4 Ужас NULL,
5 Научная фантастика NULL,
6 Триллер NULL,
7 Действие NULL,
8 Романтическая комедия NULL,
9 Мультфильмы NULL,
10 Мультфильмы NULL,

Пример PHP: вставка в таблицу MySQL

Функция mysqli_query используется для выполнения SQL запросы.

Функция SQL-вставки в таблицу может использоваться для выполнения следующих действий:wing типы запросов:

  • Вставить
  • Выберите
  • Обновление ПО
  • удалять

Он имеет следующееwing синтаксис.

mysqli_query($db_handle,$query);

ВОТ,

«mysqli_query(…)» — это функция, выполняющая SQL-запросы.

«$query» — SQL-запрос, который необходимо выполнить.

«$link_identifier» не является обязательным, его можно использовать для передачи ссылки на подключение к серверу.

Пример

$servername = "localhost";
$username = "alex";
$password = "yPXuPT";
$dbname = "afmznf";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')";
		if (mysqli_query($conn, $sql)) {
			echo "New record created successfully".'<br>';
		} else {
		echo "Error: " . $sql. "<br>" . mysqli_error($conn);
	}
}

Итоги

  • Команда INSERT используется для добавления новых данных в таблицу. MySql добавит новую строку после выполнения команды.
  • Значения даты и строки должны быть заключены в одинарные кавычки.
  • Числовые значения не обязательно заключать в кавычки.
  • Команда INSERT также может использоваться для вставки данных из одной таблицы в другую.