Ответ
Первичный ключ (Primary Key, PK) — это ограничение, накладываемое на столбец или группу столбцов таблицы для уникальной идентификации каждой строки.
Обязательные свойства:
- Уникальность: В таблице не может быть двух строк с одинаковым значением PK.
- Отсутствие NULL: Все столбцы, входящие в PK, не могут содержать значения NULL.
- Один на таблицу: У таблицы может быть только один первичный ключ.
Примеры создания:
-- PK на один столбец
CREATE TABLE Employees (
employee_id INT PRIMARY KEY, -- Первичный ключ
name VARCHAR(100) NOT NULL
);
-- Составной PK (из нескольких столбцов)
CREATE TABLE Order_Items (
order_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (order_id, product_id) -- Составной ключ
);
Зачем он нужен?
- Гарантия целостности данных: Предотвращает дублирование записей.
- Связи между таблицами: PK является целевым столбцом для внешних ключей (Foreign Key) в других таблицах.
- Индексирование: По умолчанию для PK создается уникальный индекс, что ускоряет поиск и операции соединения (JOIN).
Ответ 18+ 🔞
Давай разжую тебе про первичный ключ, чтобы ты не только умом понял, но и печенью прочувствовал. Представь, что таблица в базе — это как наша общага.
Первичный ключ (Primary Key, PK) — это, блядь, твой уникальный номер студенческого билета в этом ебучем общежитии данных. По нему тебя и идентифицируют, чтобы не перепутать с другим таким же лохом.
Железобетонные правила, от которых никуда не денешься:
- Уникальность, ёпта: Не может быть двух студентов с одинаковым номером билета. Иначе пиздец — кто кому стипендию получил, кто в какой комнате живёт? Хаос, блядь.
- Без пустоты (NULL): Номер билета должен быть всегда. Не может быть записи «анонимус» или «я ещё подумаю». Или есть номер, или пошёл нахуй из базы.
- Один — как яйцо у мужчины: У таблицы может быть только один первичный ключ. Не два, не три — один. Как голова. Или ты её теряешь, работая с плохой базой.
Как это выглядит в коде, сука?
-- Простой ключ, один столбец. Как номер паспорта.
CREATE TABLE Employees (
employee_id INT PRIMARY KEY, -- Вот он, красавец, главный идентификатор
name VARCHAR(100) NOT NULL
);
-- А вот составной ключ, хитрая жопа. Когда уникальность — это комбинация.
-- Как номер заказа И номер товара в нём. По отдельности могут повторяться, а вместе — нет.
CREATE TABLE Order_Items (
order_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (order_id, product_id) -- Уникальность в паре, блядь!
);
А нахуя это всё, спрашивается?
- Чтобы не было пиздеца: Гарантирует, что каждая запись — особенная, как снежинка. Никаких дублей-клонов.
- Чтобы таблицы дружили: Этот самый PK другие таблицы цепляют своими внешними ключами (Foreign Key), чтобы строить связи. Как гвоздь в стену, за который всё цепляется.
- Чтобы всё летало: Под капотом для PK автоматом создаётся индекс. Это как отсортированный список всех номеров билетов, по которому поиск — хук-плюх, мгновенно. Особенно когда таблицы между собой соединяешь (JOIN делаешь).
Короче, без первичного ключа твоя база — это не база, а сраное болото, в котором утонет любая, даже самая простая логика. Запомни это, как «отче наш», блядь.