Какие бывают ключи в реляционных базах данных (SQL)?

«Какие бывают ключи в реляционных базах данных (SQL)?» — вопрос из категории SQL и базы данных, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В SQL используются следующие основные типы ключей:

  1. Первичный ключ (Primary Key): Уникально идентифицирует каждую запись в таблице. Не может быть NULL. Например, id пользователя.
  2. Внешний ключ (Foreign Key): Создает связь между двумя таблицами. Это поле (или набор полей) в одной таблице, которое ссылается на первичный ключ в другой. Обеспечивает целостность данных.
  3. Уникальный ключ (Unique Key): Гарантирует, что все значения в столбце (или комбинации столбцов) различны. В отличие от первичного ключа, может содержать одно значение NULL (зависит от СУБД).
  4. Кандидатный ключ (Candidate Key): Столбец или набор столбцов, которые могли бы стать первичным ключом, то есть уникально идентифицируют запись.
  5. Составной ключ (Composite Key): Первичный или уникальный ключ, состоящий из двух и более столбцов.

Пример создания таблиц с ключами:

CREATE TABLE Departments (
    dept_id INT PRIMARY KEY,
    dept_name VARCHAR(100) UNIQUE
);

CREATE TABLE Employees (
    emp_id INT PRIMARY KEY,
    emp_name VARCHAR(100),
    dept_id INT,
    CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES Departments(dept_id)
);