INSERT - додавання даних

Базовий синтаксис INSERT

Команда INSERT додає нові записи в таблицю:

INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);

Додавання одного запису

INSERT INTO users (name, email, age)
VALUES ('Петро Іваненко', 'petro@example.com', 29);
Порада: Завжди вказуй список колонок явно. Це робить код зрозумілішим та захищає від помилок при зміні структури таблиці.

Додавання кількох записів

INSERT INTO users (name, email, age)
VALUES
  ('Петро Іваненко', 'petro@example.com', 29),
  ('Світлана Коваль', 'svitlana@example.com', 35),
  ('Дмитро Бойко', 'dmytro@example.com', 27);

INSERT з DEFAULT

Якщо колонка має значення за замовчуванням:

INSERT INTO products (name, price)
VALUES ('Новий товар', 100);
-- category отримає значення DEFAULT (якщо є)

INSERT з RETURNING

PostgreSQL дозволяє отримати дані щойно доданого запису:

INSERT INTO users (name, email, age)
VALUES ('Новий користувач', 'new@example.com', 25)
RETURNING id, name;

Це особливо корисно для отримання автоматично згенерованого id.

INSERT з SELECT

Можна вставляти дані з іншого запиту:

INSERT INTO archive_users (name, email)
SELECT name, email FROM users WHERE age > 60;

Обробка конфліктів (UPSERT)

PostgreSQL підтримує ON CONFLICT для обробки дублікатів:

INSERT INTO users (email, name, age)
VALUES ('existing@example.com', 'Updated Name', 30)
ON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name;

Практика

Спробуй в SQL пісочниці:

  1. INSERT INTO users (name, email, age) VALUES ('Test User', 'test@test.com', 20);
  2. SELECT * FROM users; - перевір, що запис додано

У наступному уроці навчимося оновлювати та видаляти записи.

Наступний урок: UPDATE та DELETE →