Что такое 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. Это предотвращает создание "осиротевших" записей, которые не имеют соответствующих данных в связанной таблице.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться