Что такое ограничения (constraints) в базах данных?

Ответ

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

Основные типы ограничений:

  1. PRIMARY KEY (Первичный ключ)

    • Уникально идентифицирует каждую запись в таблице. Неявно включает в себя UNIQUE и NOT NULL.
      CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));
  2. FOREIGN KEY (Внешний ключ)

    • Обеспечивает ссылочную целостность, связывая строку в одной таблице со строкой в другой.
      CREATE TABLE orders (id INT, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id));
  3. UNIQUE (Уникальность)

    • Гарантирует, что все значения в столбце (или группе столбцов) являются уникальными.
      CREATE TABLE products (id INT, sku VARCHAR(50) UNIQUE);
  4. NOT NULL (Непустое значение)

    • Запрещает хранить NULL в столбце. Поле должно всегда иметь значение.
      CREATE TABLE employees (id INT, name VARCHAR(50) NOT NULL);
  5. CHECK (Проверка)

    • Проверяет, соответствует ли значение в столбце заданному условию.
      CREATE TABLE products (price DECIMAL(10, 2) CHECK (price > 0));
  6. DEFAULT (Значение по умолчанию)

    • Предоставляет значение по умолчанию для столбца, если оно не указано при вставке новой записи.
      CREATE TABLE orders (status VARCHAR(20) DEFAULT 'pending', created_at TIMESTAMP DEFAULT NOW());

Использование ограничений — это фундаментальный подход для поддержания качества данных на уровне СУБД, что снижает вероятность ошибок в логике приложения.