Уроки модуля (1/4)
Вставка данных: ВСТАВИТЬ
До сих пор вы читали данные. Пришло время написать кое-что. 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).
ничего не ломает) и самодокументируется.
Многорядная ВСТАВКА
Один оператор, несколько строк — гораздо быстрее, чем N отдельных INSERT:
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@example.com», городом «Верона», страной «Италия» и подписью «15 июля 2025 г.». Явно назовите все столбцы.
Показать подсказку
Порядок значений в VALUES должен соответствовать порядку названных вами столбцов.
Решение доступно после 3 попыток
Обзор упражнения
Вставьте новую категорию «Игры» как дочернюю категорию «Elettronica» (id = 1). Используйте предложение RETURNING, чтобы вернуть идентификатор и имя вновь созданной категории.
Показать подсказку
RETURNING принимает список столбцов (или '*') точно так же, как SELECT.
Решение доступно после 3 попыток