Я использую базу данных MySQL. У меня путаница между первичным ключом и уникальным ключом.
Пожалуйста, помогите мне, где я должен создать первичный и уникальный ключ. Я имею в виду, в какой ситуации мы создаем уникальный ключ или первичный ключ.
Я использую базу данных MySQL. У меня путаница между первичным ключом и уникальным ключом.
Пожалуйста, помогите мне, где я должен создать первичный и уникальный ключ. Я имею в виду, в какой ситуации мы создаем уникальный ключ или первичный ключ.
PRIMARY KEY = UNIQUE KEY + Not Null CONSTRAINT
Ответы:
Основной ключ:
NULL
- например, MySQL добавляетNOT NULL
Уникальный ключ:
NULL
значенияNULL
; несколько строк могут иметьNULL
значения и, следовательно, не могут считаться «уникальными»источник
Уникальный ключ (Великобритания) : это столбец или группа столбцов, которые могут идентифицировать уникальность в строке.
Первичный ключ (PK) : это также столбец или группа столбцов, которые могут идентифицировать уникальность в строке.
Таким образом, первичный ключ - это просто другое имя уникального ключа, но реализация по умолчанию в SQL Server отличается для первичного и уникального ключа.
По умолчанию:
Это действительно зависит от вашей цели при принятии решения о создании Великобритании или ПК. Это следует из аналогии типа «Если есть команда из трех человек, значит, все они равные, но будет один из них, который будет парой равных: PK и Великобритания имеют аналогичные отношения». Я бы предложил прочитать эту статью: пример, приведенный автором, может показаться неуместным, но постарайтесь получить общее представление.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
источник
[table_name]_pkey
в таблицу добавлен новый столбец (с именем по умолчанию ) (я слышал, это называется суррогатным ключом). Источник: postgresqltutorial.com/postgresql-primary-key Я новичок во всем этом, поэтому я был бы признателен за более знающий плакат, чтобы указать на нюансы, которые я пропустил.Для организации или бизнеса существует так много физических объектов (таких как люди, ресурсы, машины и т. Д.) И виртуальных объектов (их задачи, транзакции, действия). Как правило, бизнес должен записывать и обрабатывать информацию об этих бизнес-объектах. Эти бизнес-объекты идентифицируются в рамках всего бизнес-домена с помощью ключа.
В соответствии с перспективой СУБД, ключ (он же ключ-кандидат) представляет собой значение или набор значений, которые однозначно идентифицируют объект.
Для таблицы DB существует так много ключей, которые могут иметь первичный ключ. Таким образом, все ключи, первичный ключ, уникальный ключ и т. Д. Вместе называются ключом-кандидатом. Однако администратор базы данных, выбравший ключ из ключа-кандидата для поиска записей, называется Первичным ключом.
Разница между первичным ключом и уникальным ключом
1. Поведение: первичный ключ используется для идентификации строки (записи) в таблице, тогда как уникальный ключ предназначен для предотвращения дублирования значений в столбце (за исключением пустой записи).
2. Индексация: по умолчанию SQL-движок создает кластерный индекс по первичному ключу, если он не существует, и некластеризованный индекс по уникальному ключу.
3. Обнуляемость: Первичный ключ не содержит нулевых значений, тогда как Уникальный ключ может.
4. Существование: таблица может иметь не более одного первичного ключа, но может иметь несколько уникальных ключей.
5. Модифицируемость: Вы не можете изменять или удалять первичные значения, но значения уникального ключа могут.
Для получения дополнительной информации и примеров:
http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html
источник
Первичный ключ должен быть уникальным.
Уникальный ключ не должен быть первичным ключом - см. Ключ-кандидат .
То есть в таблице может быть несколько комбинаций столбцов, которые могут однозначно идентифицировать строку - только один из них может быть выбран в качестве первичного ключа. Остальные, хотя и уникальные, являются ключами-кандидатами.
источник
Вы можете найти подробную информацию по адресу :
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
источник
Первичный ключ имеет семантику идентификации строки базы данных. Поэтому для данной таблицы может быть только один первичный ключ, в то время как может быть много уникальных ключей.
Также по той же причине первичный ключ не может быть NULL (по крайней мере, в Oracle, не уверен насчет других баз данных)
Поскольку он определяет строку, он никогда не должен меняться. Изменение первичных ключей неизбежно вызовет серьезную боль и, возможно, вечное проклятие.
Поэтому в большинстве случаев вам нужен какой-то искусственный идентификатор для первичного ключа, который используется не для чего-либо, кроме идентификации отдельных строк в таблице.
Уникальные ключи, с другой стороны, могут меняться столько, сколько вы хотите.
источник
Первичный ключ - это уникальный ключ.
Каждая таблица должна содержать не более ОДНОГО первичного ключа, но может иметь несколько уникальных ключей. Первичный ключ используется для уникальной идентификации строки таблицы. Первичный ключ не может быть,
NULL
такNULL
как не является значением.источник
источник
Я знаю, что этому вопросу уже несколько лет, но я хотел бы дать ответ на него, объясняя, почему, а не как
Назначение первичного ключа : уникальная идентификация строки в базе данных => строка представляет отдельный экземпляр типа сущности, смоделированный таблицей. Первичный ключ обеспечивает целостность объекта, AKA Entity Integrity. Первичный ключ будет кластеризованным индексом, т.е. он определяет порядок, в котором данные физически хранятся в таблице.
Назначение уникального ключа : Хорошо, с помощью первичного ключа у нас есть способ уникальной идентификации строки. Но у меня есть такая потребность в бизнесе, чтобы другой столбец / набор столбцов имели уникальные значения. Технически, учитывая, что этот столбец (столбцы) уникален, он может быть кандидатом для обеспечения целостности объекта. Но, насколько нам известно, этот столбец может содержать данные, поступающие из сторонней организации, в которых у меня могут возникнуть сомнения относительно уникальности. Я не могу доверять этому, чтобы обеспечить целостность объекта. Я просто делаю это уникальным ключом для выполнения моих бизнес-требований.
Вот и вы!
источник
Если ваш дизайн базы данных таков, что им не нужен внешний ключ, то вы можете использовать уникальный ключ ( но помните, что уникальный ключ допускает одно нулевое значение ).
Если ваша база данных требует внешнего ключа, то вы оставляете без выбора, вы должны идти с первичным ключом.
Чтобы увидеть разницу между уникальным и первичным ключом, посетите здесь
источник
1) первичный ключ в столбце, который не может быть нулевым в таблице, и вы используете в качестве внешнего ключа в другой таблице для создания отношений
2) уникальный ключ в таблице, где в таблице или во всей базе данных он не влияет на то, берете ли вы нулевое значение для определенного столбца, например, закуски в ресторане, возможно, вы не принимаете закуски в ресторане
источник
разница между первичным ключом и уникальным ключом
Оба
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
.источник
Просто первичный ключ является уникальным и не может быть нулевым, уникальный может быть нулевым и не может быть уникальным.
источник
may not be unique
значит здесь?Основные ключи
Основное назначение первичного ключа - предоставить средства для идентификации каждой записи в таблице.
Первичный ключ предоставляет средства для идентификации строки, используя данные в строке. Первичный ключ может основываться на одном или нескольких столбцах, таких как имя и фамилия; однако во многих проектах первичным ключом является автоматически генерируемое число из столбца идентификаторов.
Первичный ключ имеет следующие характеристики:
Уникальные ключи
Уникальный ключ также называется уникальным ограничением. Уникальное ограничение может использоваться для обеспечения уникальности строк в базе данных.
Разве мы уже не делаем это с первичным ключом? Да, мы делаем, но таблица может иметь несколько наборов столбцов, которые вы хотите уникальные.
В SQL Server уникальный ключ имеет следующие характеристики:
источник: здесь
источник
Основные функции первичного ключа:
Он должен содержать уникальное значение для каждой строки данных. Он не может содержать нулевые значения. Только один первичный ключ в таблице.
Основные особенности уникального ключа:
Он также может содержать уникальное значение для каждой строки данных.
Он также может содержать нулевые значения.
Несколько уникальных ключей в таблице.
источник