Модульні уроки (1/4)
Вставлення даних: INSERT
Досі ви читали дані. Настав час написати. INSERT є
команда, яка додає нові рядки до таблиці.
Основний синтаксис
INSERT INTO tabella (col1, col2, …)
VALUES (val1, val2, …);Приклад нашого набору даних:
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Marco', 'Bianchi', 'marco.bianchi@example.com', 'Verona', 'Italia', '2025-07-15');Присвоєння імен стовпцям є рекомендованою практикою: це створює запит
стійкий до майбутніх змін схеми (наприклад, новий додатковий стовпець phone
нічого не ламає) та самодокументи.
Багаторядний INSERT
Один оператор, кілька рядків — набагато швидше, ніж N окремих INSERTs:
INSERT INTO categories (name, parent_id) VALUES
('Gaming', 1),
('Smart Home', 1),
('Cucina vegana', 8);ПОВЕРНЕННЯ: читання щойно вставлених значень
Речення, характерне для PostgreSQL: RETURNING повертає рядки, які
були щойно створені. Надзвичайно зручний для отримання автоматично згенерованого id:
INSERT INTO categories (name, parent_id)
VALUES ('Gaming', 1)
RETURNING id, name;Результатом є однорядкова таблиця з id (призначена SERIAL) і
name.
Що станеться, якщо стовпець відсутній
Якщо ви пропустите стовпець у INSERT:
- якщо
NOT NULLбез DEFAULT → помилка; - якщо він має
DEFAULT(включаючиSERIALдля ідентифікатора) → який використовується; - якщо приймає
NULL→ стаєNULL.
-- Va bene: id è SERIAL (auto), country ha NOT NULL ma forniamo tutti i campi
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Olivia', 'Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');
-- Errore: first_name è NOT NULL e non è fornito
INSERT INTO customers (last_name, email, city, country, signed_up_on)
VALUES ('Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');Ваша черга
Вставте в таблицю клієнтів нового клієнта з ім’ям «Marco», прізвищем «Bianchi», адресою електронної пошти «marco.bianchi@example.com», містом «Verona», країною «Italia» та signed_up_on «2025-07-15». Явно назвіть усі стовпці.
Показати підказку
Порядок значень у VALUES має відповідати порядку вказаних вами стовпців.
Рішення доступне після 3 спроб
Повторна вправа
Вставте нову категорію «Ігри» як дочірню категорію «Elettronica» (id = 1). Використовуйте речення RETURNING, щоб повернути ідентифікатор та назву новоствореної категорії.
Показати підказку
RETURNING приймає список стовпців (або '*') так само, як SELECT.
Рішення доступне після 3 спроб