MySQL INSERT INTO Query: Як додати рядок у таблицю (приклад)

⚡ Розумний підсумок

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

  • 📥 Основний синтаксис: INSERT INTO `table_name`(column_1,column_2) VALUES (value_1,value_2) створює один новий рядок у вказаній таблиці.
  • 🔤 Правило цитування: Рядкові значення та значення дати вимагають одинарних лапок; числові значення подаються без лапок.
  • 0️⃣ Провідна нульова пастка: Номер телефону без лапок зчитується як число, тому початковий нуль без лапок опускається.
  • 🔀 Порядок стовпців: Порядок стовпців у запиті не має значення, за умови, що кожне значення відповідає відповідному стовпцю.
  • 🕳️ Пропущені стовпці: Стовпці, пропущені поза оператором, отримують NULL або їх оголошене значення за замовчуванням.
  • 📑 Від столу до столу: INSERT INTO … SELECT копіює рядки між таблицями, коли структури стовпців вирівнюються.

Що таке 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`;
членський_ номер повні_ імена пол дата народження фізична адреса Поштова адреса контактний номер e-mail
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);
}

Поширені запитання

MySQL відхиляє його з помилкою дублювання запису. Використовуйте INSERT IGNORE, щоб пропустити рядок без жодних помилок, або INSERT … ON DUPLICATE KEY UPDATE, щоб оновити існуючий рядок.

Виконайте SELECT LAST_INSERT_ID() одразу після вставки або викличте mysqli_insert_id($conn) у PHP. Це повертає ключ AUTO_INCREMENT, згенерований для останнього рядка у вашому власному з'єднанні.

Ніколи не об'єднуйте введені користувачем дані в рядок запиту. Використовуйте підготовлені оператори зі зв'язаними параметрами, щоб значення передавались окремо від SQL і не можуть виконуватися як команди.

Так. Помічники зі штучним інтелектом перетворюють електронні таблиці або прості описи на оператори INSERT, і MySQL Верстак можна їх запустити. Перевірте порядок стовпців та цитування, оскільки модель може вгадати схему.

Спочатку вставте його в копію розробника. Рядки, згенеровані штучним інтелектом, можуть порушувати зовнішні ключі, перевищувати довжину стовпців або створювати недійсні дати. Запустіть пакет у транзакції, щоб його можна було відкотити.

Підсумуйте цей пост за допомогою: