Что такое первичный ключ (Primary Key)?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое первичный ключ (Primary Key)?
Первичный ключ — это уникальный идентификатор записи в таблице базы данных. Это одно или несколько полей, которые однозначно определяют каждую строку в таблице, гарантируя её уникальность и исключая дубликаты.
Основные характеристики первичного ключа:
-
Уникальность — каждое значение первичного ключа встречается в таблице только один раз. Никакие две записи не могут иметь одинаковое значение ключа.
-
Обязательность (NOT NULL) — первичный ключ не может содержать пустые значения (NULL). Это гарантирует, что каждая запись имеет корректный идентификатор.
-
Неизменяемость — значение первичного ключа не должно изменяться в течение жизни записи. Изменение ключа может нарушить целостность данных и связи между таблицами.
-
Минимальность — первичный ключ должен состоять из минимального количества полей, необходимого для уникальной идентификации.
Типы первичных ключей:
Простой первичный ключ — состоит из одного поля:
CREATE TABLE users (
user_id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
Составной (композитный) первичный ключ — состоит из двух и более полей:
CREATE TABLE order_items (
order_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (order_id, product_id)
);
Примеры использования:
Автоинкрементирующийся числовой ключ (наиболее распространённый вариант):
CREATE TABLE customers (
customer_id SERIAL PRIMARY KEY,
name VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
UUID в качестве первичного ключа (для распределённых систем):
CREATE TABLE products (
product_uuid UUID PRIMARY KEY DEFAULT gen_random_uuid(),
product_name VARCHAR(200),
price DECIMAL(10,2)
);
Роль первичного ключа в базе данных:
- Целостность данных — СУБД использует первичный ключ для предотвращения дублирования и обеспечения консистентности.
- Производительность — первичный ключ автоматически индексируется, что ускоряет поиск записей.
- Связь между таблицами — первичные ключи служат основой для создания внешних ключей (Foreign Keys) и связей между таблицами.
- Уникальная идентификация — позволяет однозначно ссылаться на конкретную запись в других частях приложения.
Практический пример запроса:
-- Создание таблицы с первичным ключом
CREATE TABLE employees (
employee_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
salary DECIMAL(10,2),
department_id INT
);
-- Попытка вставить запись с дублирующимся ключом (вызовет ошибку)
INSERT INTO employees (employee_id, first_name, last_name, salary)
VALUES (1, "Иван", "Петров", 50000);
INSERT INTO employees (employee_id, first_name, last_name, salary)
VALUES (1, "Петр", "Иванов", 60000); -- Ошибка: PRIMARY KEY violation
Первичный ключ — это фундаментальная концепция в проектировании баз данных, обеспечивающая логическую и физическую целостность информации.