Разница между ограничениями NOT NULL и CHECK в Oracle заключается в их функциях.
NOT NULL указывает, что значения в определённом столбце не могут быть равны NULL (отсутствие значения или неопределённое значение). 1 Это ограничение гарантирует, что каждая запись в столбце содержит конкретное значение и не допускает пустых ячеек. 1
CHECK используется для определения условий, которым должны удовлетворять значения в столбце. 1 Если условие не выполняется, операция вставки или обновления будет отклонена. 1
Некоторые особенности ограничений:
- NOT NULL может быть применено к разнообразным типам данных, включая числовые, строковые, даты и другие. 1
- CHECK позволяет определить сложное условие, которому должны соответствовать значения в конкретном столбце. 1 Это условие может включать в себя математические операторы, логические выражения и функции. 1
- В одной таблице можно установить несколько ограничений CHECK для разных столбцов или для одного и того же столбца с применением различных условий. 1
- В современных версиях Oracle самостоятельное ограничение NOT NULL технически оформляется как ограничение вида CHECK с условием для проверки: имя_столбца IS NOT NULL. 2