MySQL Запрос INSERT INTO: как добавить строку в таблицу (пример)
⚡ Умное резюме
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,…) определяет значения, которые будут добавлены в новую строку.
При предоставлении значений данных для вставки в новую таблицу следует учитывать следующее:
- Строковые типы данных – все строковые значения должны быть заключены в одинарные кавычки.
- Числовые типы данных – все числовые значения следует указывать напрямую, без заключения в одинарные или двойные кавычки.
- Типы данных даты — значения даты заключаются в одинарные кавычки в формате «ГГГГ-ММ-ДД».
Вставка нескольких строк одновременно
Одна инструкция INSERT может содержать несколько строк. Разделяйте каждое множество значений запятой. Одна инструкция работает быстрее, чем множество, поскольку индекс обновляется только один раз.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Пример запроса INSERT INTO
Предположим, что у нас есть следующий список новых членов библиотеки, которые необходимо добавить в базу данных.
| Полные имена | Дата рождения | пол | Физический адрес | почтовый адрес | Контактный номер | Ваш e-mail |
|---|---|---|---|---|---|---|
| Леонард Хофштадтер | M | Вудкрест | 0845738767 | |||
| Шелдон Купер | M | Вудкрест | 0976736763 | |||
| Раджеш Кутраппали | M | Вудкрест | 0938867763 | |||
| Лесли Винкль | 14/02/1984 | M | Вудкрест | 0987636553 | ||
| Говард Воловиц | 24/08/1981 | M | Южный парк | Почтовый ящик 4563 | 0987786553 | lwolowitz@email.me |
Давайте вставим данные по одной строке за раз, начиная с Леонарда Хофстадтера. Мы будем рассматривать номер телефона как числовой тип данных и не заключать его в одинарные кавычки.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
При выполнении приведенного выше скрипта из контактного номера Леонарда удаляется цифра 0, поскольку это значение рассматривается как числовое, и ведущий ноль не имеет значения.
Чтобы избежать подобных проблем, значение необходимо заключить в одинарные кавычки, как показано ниже.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Совет: Номера телефонов, почтовые индексы и аналогичные идентификаторы следует хранить в текстовом столбце, например, типа VARCHAR. Числовые столбцы не могут содержать ведущий ноль.
Изменение порядка столбцов
Изменение порядка столбцов не влияет на запрос 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 вставить запрос.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Давайте теперь воспользуемся Оператор SELECT чтобы просмотреть все строки в таблице участников.
SELECT * FROM `members`;
| Количество членов | полные имена | пол | Дата рождения | Физический адрес | почтовый адрес | контактный_ номер | |
|---|---|---|---|---|---|---|---|
| 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 |
Обратите внимание, что из контактного номера Леонарда Хофстадтера исчез первый ноль, как и ожидалось. В приведенных номерах он сохранился.
Вставка в таблицу из другой таблицы
Команда INSERT также может использоваться для вставки данных в таблицу из другой таблицы. Основной синтаксис показан ниже.
INSERT INTO table_1 SELECT * FROM table_2;
Теперь создадим фиктивную таблицу для категорий фильмов, которая будет называться categories_archive. Ниже приведён скрипт. создает таблицу.
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`))
Выполните приведенный выше скрипт для создания таблицы. Теперь давайте вставим все строки из таблицы categories в таблицу categories archive.
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`;
| ид_категории | category_name | замечания |
|---|---|---|
| 1 | комедия | Фильмы с юмором |
| 2 | Романтический | Любовные истории |
| 3 | Эпический | Сюжетные древние фильмы |
| 4 | Хоррор | NULL, |
| 5 | Научная фантастика | NULL, |
| 6 | Триллер | NULL, |
| 7 | Экшн | NULL, |
| 8 | Романтическая комедия | NULL, |
| 9 | Мультфильмы | NULL, |
| 10 | Мультфильмы | NULL, |
Пример PHP: вставка в MySQL Таблица
Функция mysqli_query используется для выполнения SQL Запросы из PHP. Он выполняет операторы INSERT, SELECT, UPDATE и DELETE и имеет следующий синтаксис.
mysqli_query($db_handle,$query);
ВОТ,
- «mysqli_query(…)» — это функция, выполняющая SQL-запросы.
- "$query" — это SQL-запрос, который необходимо выполнить.
- “$db_handle” — это ссылка для подключения к серверу, возвращаемая функцией mysqli_connect.
Пример
$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); }
