Первичный ключ против уникального ключа
Столбец или набор столбцов, которые можно использовать для идентификации или доступа к строке или набору строк в базе данных, называется ключом. Уникальный ключ - это ключ, который может однозначно идентифицировать строку в таблице в контексте реляционных баз данных. Уникальный ключ состоит из одного столбца или набора столбцов. Первичный ключ - это также комбинация столбцов в таблице, которые однозначно идентифицируют строку. Но это считается частным случаем уникального ключа.
Что такое уникальный ключ?
Как упоминалось ранее, уникальный ключ - это один столбец или набор столбцов, которые могут однозначно идентифицировать строку в таблице. Таким образом, уникальный ключ ограничен так, что никакие два значения его не равны. Одним из важных свойств является то, что уникальные ключи не применяют ограничение NOT NULL. Поскольку NULL представляет отсутствие значения, если две строки имеют NULL в столбце, это не означает, что значения равны. Столбец, определенный как уникальный ключ, допускает только одно значение NULL в этом столбце. Затем это можно использовать для уникальной идентификации этой конкретной строки. Например, в таблице, содержащей информацию об ученике, идентификатор ученика может быть определен как уникальный ключ. Поскольку никакие два студента не могут иметь одинаковый идентификатор, он однозначно идентифицирует одного студента. Таким образом, столбец идентификатора студента удовлетворяет всем свойствам уникального ключа. В зависимости от структуры базы данных таблица может иметь более одного уникального ключа..
Что такое первичный ключ?
Первичный ключ также является столбцом или комбинацией столбцов, который однозначно определяет строку в таблице реляционной базы данных. Таблица может иметь не более одного первичного ключа. Первичный ключ обеспечивает неявное ограничение NOT NULL. Таким образом, столбец, определенный как первичный ключ, не может иметь значения NULL. Первичный ключ может быть обычным атрибутом в таблице, который гарантированно уникален, например, номер социального страхования, или это может быть уникальное значение, сгенерированное системой управления базами данных, такой как глобальный уникальный идентификатор (GUID) в Microsoft SQL Server. Первичные ключи определяются через ограничение PRIMARY KEY в стандарте ANSI SQL. Первичный ключ также может быть определен при создании таблицы. SQL позволяет составлять первичный ключ из одного или нескольких столбцов, и каждый столбец, включенный в первичный ключ, неявно определяется как NOT NULL. Но некоторые системы управления базами данных требуют явного указания столбцов первичного ключа NOT NULL.
Разница между первичным ключом и уникальным ключом
Хотя и первичный ключ, и уникальный ключ являются одним или несколькими столбцами, которые могут однозначно идентифицировать строку в таблице, они имеют некоторые важные различия. Самое главное, таблица может иметь только один первичный ключ, в то время как она может иметь более одного уникального ключа. Первичный ключ можно рассматривать как частный случай уникального ключа. Другое отличие состоит в том, что первичные ключи имеют неявное ограничение NOT NULL, в то время как уникальный ключ не имеет этого ограничения. Поэтому столбцы уникальных ключей могут содержать или не содержать значения NULL, а столбцы первичных ключей не могут содержать значения NULL..