INSERT в Oracle SQL — как добавлять строки в таблицу

🟢 INSERT в Oracle SQL. Введение

Добавление новых данных — одна из основных задач при работе с базой. Оператор INSERT в Oracle SQL используется для вставки строк в таблицы. Он поддерживает как простую вставку одной строки, так и массовую вставку из других таблиц или подзапросов.


🔤 Написание

sql
INSERT INTO таблица (столбец1, столбец2, ...)
VALUES (значение1, значение2, ...);

Или:

sql
INSERT INTO таблица
SELECT ...
FROM другая_таблица;

🔄 Где используется INSERT

  • Добавление одной или нескольких строк

  • Импорт данных из других таблиц

  • Автоматическая генерация значений с NEXTVAL

  • Использование в процедурах и скриптах

  • Вставка с возвратом значений через RETURNING INTO


🧪 10 Примеров использования INSERT

1️⃣ Вставка одной строки

sql
INSERT INTO employees (employee_id, first_name, last_name)
VALUES (207, 'Иван', 'Иванов');

2️⃣ Вставка всех столбцов (если знаешь порядок)

sql
INSERT INTO departments
VALUES (280, 'HR', 100, 1700);

3️⃣ Множественная вставка через подзапрос

sql
INSERT INTO hr_archive
SELECT * FROM employees WHERE department_id = 50;

4️⃣ Вставка с использованием последовательности

sql
INSERT INTO users (user_id, username)
VALUES (user_seq.NEXTVAL, 'new_user');

5️⃣ RETURNING INTO — вернуть значение после вставки

plsql
DECLARE
v_id NUMBER;
BEGIN
INSERT INTO orders (order_id, customer_id)
VALUES (orders_seq.NEXTVAL, 101)
RETURNING order_id INTO v_id;
END;

6️⃣ INSERT с DEFAULT

sql
INSERT INTO products (product_name)
VALUES ('Новый продукт'); -- остальные поля по умолчанию

7️⃣ INSERT через EXECUTE IMMEDIATE

plsql
EXECUTE IMMEDIATE 'INSERT INTO log_table (message) VALUES (''Событие'')';

8️⃣ INSERT в временную таблицу

sql
INSERT INTO temp_results
SELECT employee_id, salary FROM employees WHERE department_id = 20;

9️⃣ Вставка даты

sql
INSERT INTO events (event_id, event_date)
VALUES (1, TO_DATE('2025-06-18', 'YYYY-MM-DD'));

🔟 Обработка ошибок при вставке (PL/SQL)

plsql
BEGIN
INSERT INTO clients (client_id, name) VALUES (100, 'Альфа');
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
DBMS_OUTPUT.PUT_LINE('Клиент уже существует');
END;

🧩 Заключение

Оператор INSERT позволяет гибко и надёжно добавлять данные в таблицы, будь то одна строка, множество записей или результат подзапроса. Это фундамент любой операции наполнения данных.

💡 Запомни:

  • Используй VALUES для одной строки, SELECT — для множественных

  • Следи за порядком и типами столбцов

  • Автоматизируй с NEXTVAL и RETURNING

  • В PL/SQL INSERT может сопровождаться логикой и обработкой ошибок


🔜 Следующая статья:

INNER в Oracle SQL — как выполнять соединение таблиц по совпадающим значениям


 

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии