Разница между первичным ключом и уникальным ключом

Я использую базу данных mysql. У меня есть путаница между первичным ключом и уникальным ключом.

Пожалуйста, помогите мне, где я должен создать первичный и уникальный ключ. Я имею в виду, в какой ситуации мы создаем уникальный ключ или первичный ключ.

Ответ 1

Основной ключ:

  • В таблице может быть только один первичный ключ
  • В некоторых СУБД это не может быть NULL - например, MySQL добавляет NOT NULL
  • Первичный ключ - это уникальный идентификатор ключа записи

Уникальный ключ:

  • Может быть более одного уникального ключа в одной таблице
  • Уникальный ключ может иметь значения NULL
  • Это может быть ключ кандидата
  • Уникальный ключ может быть NULL; несколько строк могут иметь значения NULL и поэтому не могут считаться "уникальными"

Ответ 2

Уникальный ключ (Великобритания). Это столбец или группа столбцов, которые могут идентифицировать уникальность в строке.

Первичный ключ (PK). Он также столбца или группы столбцов, которые могут идентифицировать уникальность в строке.

Итак, основной ключ - это просто другое имя для уникального ключа, но реализация по умолчанию в SQL Server отличается для первичного и уникального ключей.

По умолчанию:

  • PK создает кластерный индекс, а Великобритания создает Non Clustered Index.
  • PK не является нулевым, но UK допускает null (Примечание: по умолчанию)
  • На столе может быть только один ПК, но может быть несколько британских
  • Вы можете переопределить реализацию по умолчанию в зависимости от ваших потребностей.

На самом деле это зависит от вашей цели при принятии решения о создании Великобритании или ПК. Отсюда следует аналогия "Если есть команда из трех человек, так что все они сверстники, но будет один из них, которые будут парой сверстников: ПК и Великобритания имеют схожие отношения". Я бы предложил прочитать эту статью: Пример, данный автором, может показаться не подходящим, но попытайтесь получить общую идею.

http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html

Ответ 3

Для организации или бизнеса существует так много физических объектов (таких как люди, ресурсы, машины и т.д.) и виртуальных объектов (их Задачи, транзакции, действия). Как правило, бизнес должен регистрировать и обрабатывать информацию этих субъектов бизнеса. Эти бизнес-объекты идентифицируются в пределах всей бизнес-области с помощью ключа.

В соответствии с предполагаемой РСУБД ключ (ключ кандидата (a.k.a) - это значение или набор значений, которые однозначно идентифицируют объект.

Для DB-таблицы существует так много ключей, которые могут иметь право на Первичный ключ. Чтобы все ключи, первичный ключ, уникальный ключ и т.д. Коллективно назывались "Ключ кандидата". Тем не менее, DBA выбрал ключ из ключа-кандидата для поиска записей, называется Первичный ключ.

Разница между основным ключом и уникальным ключом

1. Поведение: Основной ключ используется для идентификации строки (записи) в таблице, тогда как уникальный ключ предназначен для предотвращения дублирования значений в столбце (за исключением нулевой записи).

2. Индексирование: По умолчанию SQL-движок создает кластерный индекс первичного ключа, если он не существует, и некластеризованный указатель на уникальном ключе.

3. Nullability: Первичный ключ не включает значения Null, тогда как уникальный ключ может.

4. Существование: Таблица может иметь не более одного первичного ключа, но может иметь несколько уникальных ключей.

5. Модифицируемость:. Вы не можете изменить или удалить первичные значения, но значения Unique-key могут.

Для получения дополнительной информации и примеров:

http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html

Ответ 4

Первичный ключ должен быть уникальным.

Уникальный ключ не обязательно должен быть основным ключом - см. ключ кандидата.

То есть в таблице может быть несколько комбинаций столбцов, которые могут однозначно идентифицировать строку - только один из них может быть выбран в качестве первичного ключа. Другие, хотя и уникальны, являются ключами-кандидатами.

Ответ 5

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

Также по той же причине первичный ключ не может быть NULL (по крайней мере, в Oracle, не уверен в других базах данных)

Так как он идентифицирует строку, она никогда не должна изменяться. Изменение первичных ключей неизбежно вызовет серьезную боль и, вероятно, вечное проклятие.

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

С другой стороны, уникальные ключи могут меняться настолько, насколько вам хочется.

Ответ 6

Разница между первичным ключом и уникальным ключом

+-----------------------------------------+-----------------------------------------------+
|                Primary Key              |                    Unique Key                 |
+-----------------------------------------+-----------------------------------------------+
| Primary Key can't accept null values.   | Unique key can accept only one null value.    |
+-----------------------------------------+-----------------------------------------------+
| By default, Primary key is clustered    | By default, Unique key is a unique            |
| index and data in the database table is | non-clustered index.                          |
| physically organized in the sequence of |                                               |
| clustered index.                        |                                               |
+-----------------------------------------+-----------------------------------------------+
| We can have only one Primary key in a   | We can have more than one unique key in a     |
| table.                                  | table.                                        |
+-----------------------------------------+-----------------------------------------------+
| Primary key can be made foreign key     | In SQL Server, Unique key can be made foreign |
| into another table.                     | key into another table.                       |
+-----------------------------------------+-----------------------------------------------+

Вы можете найти подробную информацию от:
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html

Ответ 7

Основной ключ - это уникальный ключ.

Каждая таблица должна иметь не более ONE первичный ключ, но может иметь несколько уникальных ключей. Первичный ключ используется для однозначной идентификации строки таблицы. Первичный ключ не может быть NULL, поскольку NULL не является значением.

Ответ 8

  • Думайте, что имя таблицы - занятый.
  • Основной ключ
  • Первичный ключ не может принимать нулевые значения. Первичный ключ обеспечивает уникальность столбца. У нас может быть только один первичный ключ в таблице.
  • Уникальный ключ
  • Уникальный ключ может принимать нулевые значения. уникальный ключ также обеспечивает уникальность столбца. Вы можете подумать, если уникальный ключ содержит нулевые значения, то почему он может быть уникальным? да, хотя он может принимать нулевые значения, он обеспечивает уникальность столбца. просто посмотрите на картинку. Здесь Emp_ID является первичным, а Citizen ID уникальным. Надеюсь, вы понимаете. Мы можем использовать несколько уникальных ключей в таблице. enter image description here

Ответ 9

Я знаю, что этому вопросу уже несколько лет, но я бы хотел дать ответ на этот вопрос, объясняя, почему, а не как

Назначение первичного ключа: уникальная идентификация строки в базе данных => строка представляет один экземпляр типа сущности, смоделированный таблицей. Первичный ключ обеспечивает целостность объекта, AKA Entity Integrity. Первичный ключ будет кластеризованным индексом, т.е. он определяет порядок, в котором данные физически хранятся в таблице.

Назначение уникального ключа: Хорошо, с помощью первичного ключа у нас есть способ уникальной идентификации строки. Но у меня есть такая потребность в бизнесе, чтобы другой столбец/набор столбцов имели уникальные значения. Технически, учитывая, что этот столбец (столбцы) уникален, он может быть кандидатом для обеспечения целостности объекта. Но, насколько нам известно, этот столбец может содержать данные, поступающие из сторонней организации, в которых у меня могут возникнуть сомнения относительно уникальности. Я не могу доверять этому, чтобы обеспечить целостность объекта. Я просто делаю это уникальным ключом для выполнения моих бизнес-требований.

Вот и вы!

Ответ 10

Как первичный ключ, так и уникальный ключ используются для обеспечения уникальности столбца. Итак, когда вы выбираете один за другим?

В таблице может быть только один первичный ключ. Если вы хотите применить уникальность в двух или более столбцах, мы используем уникальное ограничение ключа.

Разница между основным ключом и уникальным ограничением ключа

1. В таблице может быть только один первичный ключ, но более одного уникального ключа

2. Первичные ключи не допускают значения null, тогда как уникальные ключи позволяют одно значение null

Alter Table Table_Name
Add Constraint Constraint_Name Unique/Primary Key(Column_Name)

Ответ 11

Если ваш проект базы данных таков, что им не нужен внешний ключ, вы можете пойти с уникальным ключом (, но помните, что уникальный ключ допускает одиночное пустое значение).

Если база данных требует внешнего ключа, то вы оставите без выбора, вы должны перейти с первичным ключом.

Чтобы увидеть разницу между уникальным и первичным ключом, посетите здесь

Ответ 12

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

Ответ 13

  • Первичный ключ используется для идентификации строки (записи) в таблице, тогда как уникальный ключ предназначен для предотвращения дублирования значений в столбце (за исключением нулевой записи).

  • По умолчанию SQL-движок создает Clustered Index для первичного ключа, если он не существует, и Non-Clustered Index on Unique-key.

Ответ 14

Уникальный ключ: - Его следует использовать, когда нужно указать уникальное значение. В случае уникального ключа это также означает, что допускаются также нулевые значения. Уникальные ключи - это те ключи, которые уникальны и не похожи в этом столбце, как, например, имя вашего питомца..it может быть ничем не похожим на null, и если вы спрашиваете в контексте базы данных, то следует отметить, что каждый null отличается от другого null в базе данных. EXCEPT-SQL Server, где null = null равно true


первичный ключ: - Его следует использовать, когда нужно дать уникальную идентификацию строки. Первичным является ключ, который уникален для каждой строки в ограничении базы данных, состоит в том, что он не допускает пустое значение в нем. Поэтому вы могли видеть, что база данных иметь столбец с автоматическим приращением, и это первичный ключ таблицы. Кроме того, его можно использовать в качестве внешнего ключа в другой таблице. Например, можно указать orderId в таблице заказов, billId в таблице счетов.

Теперь возвращаемся к ситуации, когда его использовать: -

1) первичный ключ в столбце, который не может быть нулевым в таблице, и вы используете в качестве внешнего ключа в другой таблице для создания отношений

2) уникальный ключ в таблице, где он не влияет в таблице или во всей базе данных, берете ли вы нулевое значение для определенного столбца, например, закуски в ресторане, возможно, вы не принимаете закуски в ресторане

Ответ 15

Основные ключи

Основное назначение первичного ключа - предоставить средства для идентификации каждой записи в таблице.

Первичный ключ предоставляет средства для идентификации строки, используя данные в строке. Первичный ключ может основываться на одном или нескольких столбцах, таких как имя и фамилия; однако во многих проектах первичным ключом является автоматически генерируемое число из столбца идентификаторов.

Первичный ключ имеет следующие характеристики:

  1. Для таблицы может быть только один первичный ключ.
  2. Первичный ключ состоит из одного или нескольких столбцов.
  3. Первичный ключ обеспечивает целостность сущности таблицы.
  4. Все определенные столбцы должны быть определены как NOT NULL.
  5. Первичный ключ однозначно идентифицирует строку.
  6. Первичные ключи приводят к CLUSTERED уникальным индексам по умолчанию.

Уникальные ключи

Уникальный ключ также называется уникальным ограничением. Уникальное ограничение может использоваться для обеспечения уникальности строк в базе данных.

Разве мы уже не делаем это с первичным ключом? Да, мы делаем, но таблица может иметь несколько наборов столбцов, которые вы хотите уникальные.

В SQL Server уникальный ключ имеет следующие характеристики:

  1. В таблице может быть несколько уникальных ключей.
  2. Уникальные ключи по умолчанию приводят к НЕКЛАСТЕРНЫМ уникальным индексам.
  3. Один или несколько столбцов составляют уникальный ключ.
  4. Столбец может быть NULL, но допускается по одному NULL на столбец.
  5. На ограничение уникальности может ссылаться ограничение внешнего ключа.

источник: здесь

Ответ 16

разница между первичным ключом и уникальным ключом

И Primary key и Unique Key используются для однозначного определения строки в таблице. Primary Key создает clustered index столбца, тогда как Unique creates an unclustered index of the column.

A Primary Key не допускает NULL value, однако a Unique Key допускает one NULL value.

Ответ 17

Основные функции первичных ключей:

Он должен содержать уникальное значение для каждой строки данных. Он не может содержать нулевые значения. Только один первичный ключ в таблице.

Уникальные ключевые особенности:

Он также может содержать уникальное значение для каждой строки данных.

Он также может содержать нулевые значения.

Несколько уникальных ключей в таблице.

Ответ 18

  • См. скриншоты для справки

    Использование данных первичного ключа хранится в базе данных по умолчанию в порядке возрастания кластеризованного индекса **

    В Sql Server См. "Экранный снимок" введите описание изображения здесь

    По умолчанию основной ключ является кластеризованным индексом, а данные в таблице базы данных физически организованы в последовательности кластерного индекса, тогда как по умолчанию уникальный ключ является уникальным некластеризованным индексом. **

  • Мы можем иметь только один первичный ключ в таблице, тогда как у нас может быть более одного уникального ключа в таблице.

  • Первичный ключ не может принимать нулевые значения, тогда как уникальный ключ может принимать только одно нулевое значение.

  • Первичный ключ всегда уникален и никогда не является нулевым, в то время как уникальный ключ может принимать только одно нулевое значение.