В чем разница между первичным и внешним ключом
Python
Senior
Okko
В чем разница между первичным и внешним ключом
Ответы
Первичный ключ (Primary Key) — это уникальный идентификатор записи в таблице. Он гарантирует, что каждая строка имеет уникальное значение и не может быть `NULL`.
Внешний ключ (Foreign Key) — это поле (или набор полей), которое ссылается на первичный ключ другой таблицы. Он обеспечивает целостность данных, проверяя, что значение существует в связанной таблице.
**Пример:**
```
# Таблица Users (первичный ключ)
CREATE TABLE Users (
user_id INT PRIMARY KEY,
name VARCHAR(50)
);
# Таблица Orders (внешний ключ ссылается на Users)
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);
```
**Ключевые отличия:**
- Первичный ключ уникален и не `NULL`, внешний может повторяться и быть `NULL`.
- Первичный ключ идентифицирует запись, внешний — связывает таблицы.
- В одной таблице может быть только один первичный ключ, но несколько внешних.