Перейти к содержанию

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

Мы уже использовали PRIMARY KEY в таблице и при добавлении в нее новых строк значение этого поля автоматически получало новое число. Это создавало удобство при вводе данных, но это не все возможности первичного ключа:

  • Первичный ключ уникален, в таблице не может быть другой записи с таким же ключом, а значит это минимально необходимый набор данных о записи по которому ее можно найти
  • По первичному ключу автоматически строится индекс, индексы позволяют существенно сократить поиск по таблице и сокращают время выполнения запросов
  • База данных может автоматически добавлять новое значение первичному ключу если он числовой (INTEGER), в некоторых СУБД используется ключевое слово AUTOINCREMENT
  • По первичному ключу формируются связи между таблицами

Уникальность первичного ключа часто используется в жизни. Номер паспорта или код налогоплательщика — это минимальная уникальная характеристика по которым можно найти всю необходимую информацию по человеку в банке или государственной службе. Другие данные о человеке не настолько надежные: имя и фамилия не уникальны, телефон можно поменять, по адресу может проживать несколько человек. А ИНН (если он есть) может быть только у одного человека в стране.

Самый быстрый способ найти одну единственную запись в таблице это искать ее по первичному ключу:

SELECT name FROM author WHERE id = 1;

name            
------------
Лев Толстой     

Первичный ключ — это уникальная минимальная характеристика, по которой можно найти запись в базе.