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,…) определяет значения, которые будут добавлены в новую строку.
При предоставлении значений данных для вставки в новую таблицу следует учитывать следующее:
- Строковые типы данных – все строковые значения должны быть заключены в одинарные кавычки.
- Числовые типы данных. Все числовые значения следует указывать напрямую, не заключая их в одинарные или двойные кавычки.
- Типы данных даты — значения даты заключаются в одинарные кавычки в формате «ГГГГ-ММ-ДД».
Пример:
Предположим, что у нас есть следующий список новых членов библиотеки, которые необходимо добавить в базу данных.
Полные имена | Дата рождения | пол | Физический адрес | почтовый адрес | Контактный номер | Ваш 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`;
Количество членов | полные имена | пол | Дата рождения | Физический адрес | почтовый адрес | контактный_ номер | |
---|---|---|---|---|---|---|---|
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`
дает следующие результаты, показанные ниже.
ид_категории | 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-вставки в таблицу может использоваться для выполнения следующих типов запросов:
- Вставить
- Выберите
- Обновление ПО
- удалять
Он имеет следующий синтаксис.
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 также может использоваться для вставки данных из одной таблицы в другую.