MySQL INSERT INTO Query: Як додати рядок у таблицю (приклад)
⚡ Розумний підсумок
MySQL INSERT INTO Запит додає нові рядки до таблиці, або явно називаючи цільові стовпці, або надаючи значення для кожного стовпця. Правильне цитування рядків, чисел і дат визначає, чи збережуться збережені дані неушкодженими.

Що таке INSERT INTO?
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
Припустимо, що у нас є наступний список нових членів бібліотеки, яких потрібно додати до бази даних.
| Повні імена | Дата народження | пол | Фізична адреса | Поштова адреса | Контактний номер | Адреса електронної пошти |
|---|---|---|---|---|---|---|
| Леонард Хофштадтер | чоловік | Вудрест | 0845738767 | |||
| Шелдон Купер | чоловік | Вудрест | 0976736763 | |||
| Раджеш Кутраппалі | чоловік | Вудрест | 0938867763 | |||
| Леслі Вінкл | 14/02/1984 | чоловік | Вудрест | 0987636553 | ||
| Говард Воловиц | 24/08/1981 | чоловік | Південний парк | ПО Box 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 | Джанет Джонс | жінка | 21-07-1980 | Ділянка № 4 вул | Приватна сумка | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Джанет Сміт Джонс | жінка | 23-06-1980 | Мелроуз 123 | NULL | NULL | jj@fstreet.com |
| 3 | Роберт Філ | чоловік | 12-07-1989 | 3-я вулиця 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Глорія Вільямс | жінка | 14-02-1984 | 2-а вулиця 23 | NULL | NULL | NULL |
| 5 | Леонард Хофштадтер | чоловік | NULL | Вудрест | NULL | 845738767 | NULL |
| 6 | Шелдон Купер | чоловік | NULL | Вудрест | NULL | 0976736763 | NULL |
| 7 | Раджеш Кутраппалі | чоловік | NULL | Вудрест | NULL | 0938867763 | NULL |
| 8 | Леслі Вінкл | чоловік | 14-02-1984 | Вудрест | NULL | 0987636553 | NULL |
| 9 | Говард Воловиц | чоловік | 24-08-1981 | Південний парк | ПО Box 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`))
Виконайте наведений вище скрипт, щоб створити таблицю. Тепер давайте вставимо всі рядки з таблиці категорій до таблиці архіву категорій.
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_id | category_name | зауваження |
|---|---|---|
| 1 | Комедія | Фільми з гумором |
| 2 | Романтичний | Історії кохання |
| 3 | Epic | Сюжети стародавніх фільмів |
| 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); }
