MySQL CRUD INSERT


Для додавання даних в БД в MySQL використовується команда INSERT , яка має наступний формальний синтаксис:

INSERT [INTO] імя_таблиці [(список_стовпців)] VALUES (значення1, значення2, ... значенняN)

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

Наприклад, нехай в базі даних productsdb є наступна таблиця Products :

CREATE DATABASE productsdb;
USE productsdb;

CREATE TABLE Products
(
    Id INT AUTO_INCREMENT PRIMARY KEY,
    ProductName VARCHAR(30) NOT NULL,
    Manufacturer VARCHAR(20) NOT NULL,
    Price DECIMAL NOT NULL,
    ProductCount INT DEFAULT 0
);

Додамо в цю таблицю один рядок за допомогою наступного коду:

INSERT INTO `products` (`Id`, `ProductName`, `Manufacturer`, `ProductCount`, `Price`) 
VALUES (NULL, 'iPhone X', 'Apple', 5, 76000);

У даному випадку значення будуть передаватися стовпцями по позиції. Тобто стобцу ProductName передається рядок "iPhone X ", колонки Manufacturer - рядок "Apple " і так далі.

Важливо, щоб між значеннями і типами даних стовпців була відповідність. Так, стовпець ProductName представляє тип varchar , тобто рядок. Відповідно до даної колонки ми можемо передати строкове значення в одинарних лапках. А стовбець ProductCount представляє тип int , тобто ціле число, тому даному стовпцю потрібно передати цілі числа, але ніяк не рядки.

Після вдалого виконання в MySQL Workbench в полі виведення повинен з'явитися зелений маркер і повідомлення "1 row (s) affected".

Необов'язково при додаванні даних вказувати значення абсолютно для всіх стовпців таблиці. Наприклад, в прикладі вище не вказано значення для стовпця Id . Але оскільки для даного стовпця визначено атрибут AUTO_INCREMENT , то його значення буде автоматично генеруватися.

Також ми можемо опускати при додаванні такі стовпці, які підтримують значення NULL або для яких вказано значення за замовчуванням, тобто для них визначені атрибути NULL або DEFAULT . Так, в таблиці Products стовпець ProductCount має значення за замовчуванням - число 0. Тому ми можемо при додаванні опустити цей стовпець, і йому буде передаватися число 0:

INSERT INTO `products` (`ProductName`, `Manufacturer`, `Price`) 
VALUES ('Galaxy S10', 'Samsung', 63000);

За допомогою ключових слів DEFAULT і NULL можна вказати, що в якості значення буде використовувати значення за замовчуванням або NULL відповідно:

INSERT INTO `products` (`ProductName`, `Manufacturer`, `Price`, `ProductCount`) 
VALUES ('Nokia 10', 'HDM Global', 41000, DEFAULT);

або

INSERT INTO `products` (`ProductName`, `Manufacturer`, `Price`, `ProductCount`) 
VALUES ('Nokia 10', 'HDM Global', 41000, NULL);

Множинне додавання

Також ми можемо додати відразу кілька рядків:

INSERT INTO `products` (`ProductName`, `Manufacturer`, `Price`, `ProductCount`) 
VALUES
('iPhone X', 'Apple', 51000, 3),
('P20 Lite', 'Huawei', 34000, 4),
('Galaxy S10', 'Samsung', 46000, 2);

Наш партнер:
beta test mp3 playlist downloader