TGViewer
Алена QA-Pop Алена QA-Pop @qa_pop · 521 subscribers
Post #474 671
Что такое первичный ключ и внешний ключ в базе данных. Зачем они нужны?
Первичный ключ (Primary Key) и внешний ключ (Foreign Key) - это два фундаментальных элемента реляционной базы данных, обеспечивающих целостность данных и связь между таблицами.

Что такое Primary Key (PK)?
Назначение: уникальная идентификация записи в таблице.
Главные свойства:
Значение обязательно уникальное и не может быть NULL.
В таблице может быть только один PK.
Может состоять из одного или нескольких атрибутов (составной ключ).

Пример:
В таблице "Пользователи" поле user_id - это PK, и оно уникально для каждого пользователя.
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100)
);


Что такое Foreign Key (FK)?
Назначение: устанавливает связь между таблицами, ссылаясь на первичный ключ другой таблицы.
Главные свойства:
Может содержать повторяющиеся значения, но все они должны ссылаться на существующие записи в другой таблице.
Значения NULL могут быть разрешены для этого поля.
Обеспечивает целостность данных и предотвращает "браки" (ссылки на несуществующие данные).

Пример:
В таблице "Заказы" поле user_id - это FK, ссылается на user_id из таблицы "Пользователи".
CREATE TABLE orders (
order_id INT PRIMARY KEY,
order_date DATE,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);


Зачем нужны эти ключи?
- Обеспечивают уникальность данных(PK).
- Позволяют связывать таблицы, создавая реляционную базу данных (PK + FK).
- Гарантируют целостность: нельзя добавить заказ для несуществующего пользователя или удалить пользователя, если у него есть заказы.
- Упрощают работу с большими объемами данных: связи позволяют быстро получать связанные данные через JOIN.

Первичный ключ - это уникальный идентификатор записи, всегда гарантирует её однозначное распознавание.
Внешний ключ - это ссылка на первичный ключ другой таблицы, обеспечивает связи между данными и целостность: нельзя добавить "висящие" записи, нарушающие структуру данных.
Эти механизмы - основа структурирования данных и поддержания их логической непротиворечивости в реляционных базах данных. #qa

📱 Вопросы с собесов + ответы читайте на бусти
  • 🔥 12
  • ❤ 6
More from @qa_pop
  1. Dec 18, 2025Когда ты слишком хороший QA - это не всегда плюс Если ты тот самый QA, который «тащит всё…
  2. Nov 25, 2025TCP против UDP: что выбрать? Каждый раз, отправляя данные в интернете, система делает выбо…
  3. Nov 19, 2025Коллеги, по состоянию здоровья я приостановила записи на консультации/созвоны/помощь в лич…
  4. Nov 7, 2025📱 СОБЕСЕДОВАНИЕ QA: Основные виды SQL-команд: DML, DDL, DCL и DQL? SQL (Structured Query…
  5. Nov 2, 2025Что выбрать для API-тестирования: Postman или полноценный фреймворк Выбор между Postman и…
  6. Oct 29, 2025📱 СОБЕСЕДОВАНИЕ QA: Внезапный ночной баг после релиза. Что делать? Пятница, вечер, релиз…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →