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

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

Оператор DEFAULT в Oracle SQL используется для задания значения по умолчанию для столбца таблицы. Это значение будет автоматически подставляться при вставке строки, если пользователь не указал ничего явно.

Значения DEFAULT повышают надёжность и читаемость базы данных, особенно в:

  • логировании

  • управлении статусами

  • автоматических метках времени

  • управлении флагами и признаками


🔤 Написание

При создании таблицы:

sql
CREATE TABLE tasks (
task_id NUMBER,
status VARCHAR2(20) DEFAULT 'new'
);

При добавлении столбца:

sql
ALTER TABLE tasks
ADD created_at DATE DEFAULT SYSDATE;

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

  • В бизнес-правилах (например, статус = ‘черновик’)

  • В значениях дат (например, SYSDATE)

  • В флагах ('Y', 'N', 0, 1)

  • В автоматизации системного ввода

  • В проектах с минимальным набором обязательных данных


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

1️⃣ Статус по умолчанию

sql
CREATE TABLE orders (
order_id NUMBER,
status VARCHAR2(20) DEFAULT 'pending'
);

2️⃣ Дата создания по умолчанию

sql
CREATE TABLE posts (
post_id NUMBER,
created_at DATE DEFAULT SYSDATE
);

3️⃣ Добавление столбца с ДЕФАУЛТ

sql
ALTER TABLE users
ADD is_active CHAR(1) DEFAULT 'Y';

4️⃣ Вставка строки без указания DEFAULT-значения

sql
INSERT INTO orders (order_id)
VALUES (101);
-- status будет 'pending'

5️⃣ Проверка значения по умолчанию

sql
SELECT order_id, status FROM orders;

6️⃣ Функция как ДЕВАУЛТ

sql
CREATE TABLE logs (
log_id NUMBER,
log_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

7️⃣ Числовое значение по умолчанию

sql
CREATE TABLE products (
product_id NUMBER,
stock NUMBER DEFAULT 0
);

8️⃣ Изменение через ALTER TABLE

sql
ALTER TABLE products
MODIFY stock DEFAULT 10;

9️⃣ Удаление DEFAULT (в Oracle — сбрасывается через MODIFY)

sql
ALTER TABLE products
MODIFY stock DEFAULT NULL;

🔟 Использование в представлениях (через виртуальные столбцы)

sql
CREATE TABLE transactions (
id NUMBER,
net_amount NUMBER,
tax NUMBER DEFAULT 0.2,
total_amount GENERATED ALWAYS AS (net_amount * (1 + tax)) VIRTUAL
);

🧩 DEFAULT в Oracle SQL. Заключение

Оператор DEFAULT — это простой, но мощный инструмент Oracle SQL, который делает таблицы умнее и устойчивее. Он:

✅ Снижает вероятность ошибок при вставке
✅ Упрощает API-интерфейсы
✅ Повышает читаемость бизнес-логики

💡 Запомни:

  • Значение по умолчанию подставляется только при отсутствии значения

  • Можно использовать функции, например SYSDATE, CURRENT_TIMESTAMP

  • Изменить DEFAULT можно через ALTER TABLE MODIFY


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

DECIMAL в Oracle SQL — как точно хранить числа с фиксированной точкой


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