← Назад ко всем вопросам

Что такое Foreign key и Primary key?

1️⃣ Как кратко ответить

Primary key — это уникальный идентификатор записи в таблице базы данных, который обеспечивает уникальность каждой строки. Foreign key — это столбец или набор столбцов, который устанавливает связь между двумя таблицами, ссылаясь на primary key другой таблицы.

2️⃣ Подробное объяснение темы

В реляционных базах данных ключи играют важную роль в организации и управлении данными. Два основных типа ключей — это Primary key и Foreign key.

Primary Key

Primary key (первичный ключ) — это столбец или набор столбцов в таблице, который уникально идентифицирует каждую запись (строку) в этой таблице. Primary key должен быть уникальным и не может содержать NULL значений. Это гарантирует, что каждая запись в таблице может быть однозначно идентифицирована.

Зачем нужен Primary Key:

  • Обеспечивает уникальность записей.
  • Ускоряет поиск и операции над данными.
  • Используется для создания связей между таблицами.

Пример использования Primary Key:

CREATE TABLE Users (
    UserID INT PRIMARY KEY,  -- UserID является первичным ключом
    UserName VARCHAR(100),
    Email VARCHAR(100)
);

В этом примере UserID — это primary key таблицы Users. Он уникально идентифицирует каждого пользователя.

Foreign Key

Foreign key (внешний ключ) — это столбец или набор столбцов, который используется для создания связи между двумя таблицами. Foreign key ссылается на primary key другой таблицы, обеспечивая целостность данных и поддерживая отношения между таблицами.

Зачем нужен Foreign Key:

  • Обеспечивает целостность данных между связанными таблицами.
  • Поддерживает отношения "один ко многим" или "многие ко многим".
  • Предотвращает удаление или изменение данных, на которые есть ссылки.

Пример использования Foreign Key:

CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,  -- OrderID является первичным ключом
    OrderDate DATE,
    UserID INT,
    FOREIGN KEY (UserID) REFERENCES Users(UserID)  -- UserID является внешним ключом, ссылающимся на Users
);

В этом примере UserID в таблице Orders является foreign key, который ссылается на UserID в таблице Users. Это устанавливает связь между заказами и пользователями, гарантируя, что каждый заказ связан с существующим пользователем.

Как это работает

  • Primary Key: Когда вы создаете таблицу с primary key, база данных автоматически создает индекс для этого ключа, что ускоряет операции поиска и обеспечивает уникальность значений.
  • Foreign Key: При добавлении или изменении данных в таблице с foreign key, база данных проверяет, существует ли соответствующее значение в таблице, на которую ссылается foreign key. Это предотвращает создание "осиротевших" записей, которые не имеют соответствующих данных в связанной таблице.

Тема: Базы данных
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки