Gymterview
junior

Какие ограничения на целостность данных существуют в SQL?

Ограничения целостности (constraints) — правила, которые СУБД автоматически проверяет при вставке, обновлении и удалении данных, не позволяя привести базу в некорректное состояние.

Ограничение Назначение Тип целостности
PRIMARY KEY Уникальная идентификация записи Целостность сущности
UNIQUE Отсутствие дубликатов в столбце/наборе столбцов Целостность сущности
FOREIGN KEY Связь между таблицами Ссылочная целостность
CHECK Ограничение допустимых значений Целостность предметной области
NOT NULL Запрет пустых значений Целостность предметной области
  • PRIMARY KEY — набор полей (один или более), значения которых образуют уникальную комбинацию для однозначной идентификации записи. Для таблицы может быть создан только один первичный ключ. Автоматически создаёт уникальный индекс и подразумевает NOT NULL.
  • UNIQUE — гарантирует отсутствие дубликатов в столбце или наборе столбцов. В отличие от PRIMARY KEY, допускает NULL-значения.
  • FOREIGN KEY — указывает на PRIMARY KEY другой таблицы, защищая от действий, нарушающих связи между таблицами (например, удаление записи, на которую ссылаются).
  • CHECK — задаёт условие, которому должно удовлетворять значение столбца (например, CHECK (age >= 0)).
  • NOT NULL — запрещает хранение NULL в столбце, гарантируя наличие значения.

На собеседовании: перечислите все пять ограничений и объясните, какой тип целостности каждое из них обеспечивает. Частая ошибка — забыть NOT NULL или CHECK.