Модуль 00 · урок 6

Первинний ключ: як відрізнити рядки

У магазині GadgetHub є два товари з однаковою назвою Cotton T-Shirt — від різних постачальників. Як засновнику точно вказати на ОДИН конкретний, а не переплутати? Потрібен надійний ідентифікатор.

Проблема: однакові назви

Назва не завжди унікальна — два товари можуть зватися однаково. Як тоді точно вказати на ОДИН рядок? Потрібен гарантовано унікальний ідентифікатор.

Первинний ключ

Первинний ключ (PRIMARY KEY) — це стовпець, що унікально визначає кожен рядок. У products це id.

Він:

  • унікальний — двох рядків з однаковим id бути не може;
  • не порожній — id завжди має значення (ніколи не NULL, а що таке NULL, дізнаєшся в наступному уроці);
  • стабільний — після створення його не міняють.

Завдяки id можна точно сказати «товар №7», навіть якщо є десять товарів з однаковою назвою. Зазвичай id присвоюється автоматично: СКБД сама видає наступний номер (тип SERIAL), тож тобі про це думати не треба.

id name 5 Electric Kettle 1.7L 6 Cotton T-Shirt 7 Run+ Sneakers Cotton T-Shirt 14 … … PRIMARY KEY унікальний · не NULLunique · not NULL único · no NULL однакова назва —same name — mismo nombre — різні iddifferent id distinto id

Подивись сам

У завданні — запит, що виводить id і name, відсортовані за id. Поглянь: два товари звуться Cotton T-Shirt, але їхні id різні — саме id їх і розрізняє.

Підсумок

  • PRIMARY KEY / id дає змогу однозначно знайти будь-який рядок — навіть якщо назви повторюються.
  • Унікальний, не NULL, стабільний.
  • id зазвичай генерується автоматично (SERIAL).