Индексирование и ограничения для уникальности/отношения с первичным ключом

Мне нужно прояснить следующее в моей голове.

Когда я создаю таблицу без первичного ключа или уникального ограничения, я получаю плоский файл.
Когда я создаю первичный ключ, в результате создается первичный индекс, и именно этот индекс поддерживает уникальность первичного ключа, верно? Поэтому я не могу добавить повторяющееся значение.
Итак, если я создаю индекс для любого столбца, это приведет к тому, что столбец будет иметь уникальные значения? Или это зависит от использования ключевого слова UNIQUE для создания индекса?
Наконец, каждый раз, когда я объявляю столбец, имеющий ограничение UNIQUE, это означает, что индекс создается и поэтому эти действия взаимозаменяемы?

0
источник поделиться
2 ответа
  1. Если мы создадим индекс для любого столбца, это не приведет к тому, что столбец будет иметь уникальные значения. В столбце могут быть одинаковые значения, но они будут проиндексированы.
  2. Уникальные значения в столбце будут введены в действие, используя ключевое слово UNIQUE для столбца.
  3. Различия между столбцом UNIQUE и столбцом первичного ключа - UNIQUE-ключевой столбец может содержать значение NULL в одной и только одной строке таблицы. Столбец первичного ключа не будет содержать нулевое значение.
  4. Когда создается UNIQUE-столбец, то неявно создается индекс. Но когда индекс создается в столбце, который не означает, что все значение строки для столбца будет UNIQUE. Поэтому они не взаимозаменяемы.
+1
источник

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

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

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

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

Наконец, каждый раз, когда я объявляю столбец, имеющий ограничение UNIQUE, это означает, что индекс создается и поэтому эти действия взаимозаменяемы?

Уникальное ограничение создается с помощью UNIQUE INDEX. Это одно и то же.

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос