Что такое ограничения (Constraints)?

В SQL ограничения (constraints) – это правила и условия, которые применяются к данным в таблицах базы данных для обеспечения целостности данных и соблюдения бизнес-правил. Ограничения задаются на уровне определения структуры таблицы и могут автоматически проверяться СУБД при вставке, обновлении или удалении данных. Ограничения используются для обеспечения точности, надежности и целостности данных. Вот некоторые распространенные типы ограничений в SQL:

  1. Ограничение PRIMARY KEY:
    • Уникальное ограничение, которое обеспечивает уникальность значений в столбце или группе столбцов и идентифицирует уникальную запись в таблице.
    • Гарантирует, что в столбце (или столбцах), определенном как PRIMARY KEY, нет повторяющихся значений.
    • Обеспечивает быстрый доступ к записям с помощью PRIMARY KEY.

Пример:

sql

CREATE TABLE students ( student_id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50) );

  1. Ограничение FOREIGN KEY:
    • Связывает значения в одной таблице (дочерней) с значениями в другой таблице (родительской) и обеспечивает целостность ссылок между таблицами.
    • Гарантирует, что значения в столбце дочерней таблицы ссылаются на существующие значения в родительской таблице.
    • Обеспечивает соблюдение бизнес-правил и связей между данными.

Пример:

sql

CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );

  1. Ограничение UNIQUE:
    • Гарантирует уникальность значений в столбце или группе столбцов, но не используется для идентификации записей как PRIMARY KEY.
    • Позволяет хранить значения, которые должны быть уникальными, но не обязательно идентифицировать записи.

Пример:

sql

CREATE TABLE employees ( employee_id INT UNIQUE, first_name VARCHAR(50), last_name VARCHAR(50) );

  1. Ограничение CHECK:
    • Определяет условия, которые значения в столбце должны удовлетворять.
    • Позволяет задавать пользовательские бизнес-правила для данных в таблице.

Пример:

sql

CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(100), unit_price DECIMAL(10, 2), quantity INT, CHECK (unit_price > 0 AND quantity >= 0) );

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