logo

Rozdíl mezi primárním klíčem a jedinečným klíčem

Klíče v MySQL jsou sloupce nebo sady sloupců používané k vytvoření vztahu mezi jednou nebo více než dvěma tabulkami. Používají se také pro přístup k záznamům z tabulky. Oba klíče poskytují zaručenou jedinečnost pro sloupec nebo sadu sloupců v tabulce nebo relaci. Hlavním rozdílem mezi nimi je to, že primární klíč identifikuje každý záznam v tabulce a jedinečný klíč zabraňuje duplicitním záznamům ve sloupci s výjimkou hodnoty NULL. . V tomto článku porovnáme zásadní rozdíly mezi primárním a jedinečným klíčem na základě různých parametrů. Než provedeme srovnání, stručně probereme tyto klíče.

Herečka Sai Pallavi
Primární klíč vs jedinečný klíč

Co je primární klíč?

Primární klíč je a jedinečné nebo nenulové klíč, který jednoznačně identifikuje každý záznam v této tabulce nebo vztahu. Sloupec primárního klíče nemůže ukládat duplicitní hodnoty, což znamená, že hodnoty sloupce primárního klíče jsou vždy jedinečné. Nazývá se také a minimální super klíč ; proto nemůžeme v žádném vztahu zadat více než jeden primární klíč. Na sloupec primárního klíče jedné tabulky může odkazovat sloupec cizího klíče jiné tabulky.

Například , máme tabulku s názvem studentů s atributy jako Stud_ID, Roll_No, Name, Mobile a Email.

Primární klíč vs jedinečný klíč

Zde pouze Číslo_role sloupec nikdy nemůže obsahovat identickou a NULL hodnotu. Víme, že každý student má jedinečné číslo. Dva studenti proto nikdy nemohou mít stejné číslo hodu. Tato funkce pomáhá jednoznačně identifikovat každý záznam v databázi. Z atributu Roll_No tedy můžeme udělat primární klíč.

Vlastnosti primárního klíče

Níže jsou uvedeny základní primární klíčové vlastnosti:

  • Sloupec primárního klíče nemůže obsahovat duplicitní hodnoty.
  • Primární klíč implementuje integritu entity tabulky.
  • Tabulka nemůže mít více než jeden sloupec primárního klíče.
  • Primární klíč můžeme vytvořit z jednoho nebo více polí tabulky.
  • Sloupec primárního klíče by měl mít omezení NOT NULL.

Co je to jedinečný klíč?

The jedinečný klíč je jeden sloupec nebo kombinace sloupců v tabulce pro jednoznačnou identifikaci databázových záznamů. Jedinečný klíč brání z uložení duplicitní hodnoty ve sloupci. Tabulka může na rozdíl od sloupce primárního klíče obsahovat více sloupců jedinečných klíčů. Tento klíč je podobný primárnímu klíči s tím rozdílem, že do sloupce jedinečného klíče lze uložit jednu hodnotu NULL. Také se nazývá jedinečný klíč jedinečná omezení a lze na něj odkazovat cizím klíčem jiné tabulky.

java valueof enum

Například , uvažujme stejnou pojmenovanou tabulku studentů s atributy jako Stud_ID, Roll_No, Name, Mobile a Email.

Primární klíč vs jedinečný klíč

Tady Stud_ID lze přiřadit jako jedinečné omezení, protože každý student musí mít jedinečné identifikační číslo. Pokud student změní vysokou školu, nebude mít žádný studentský průkaz. V takovém případě může záznam obsahovat a NULA hodnotu, protože omezení jedinečného klíče umožňuje uložit hodnotu NULL, ale měla by být pouze jedna.

Vlastnosti jedinečného klíče

Níže jsou uvedeny základní jedinečné klíčové vlastnosti:

  • Jedinečný klíč můžeme sestavit z jednoho nebo více polí tabulky.
  • Tabulka může definovat více jedinečných sloupců klíče.
  • Ve výchozím nastavení je jedinečný klíč v jedinečných indexech bez klastrů.
  • Jedinečný sloupec omezení může uložit hodnotu NULL, ale pouze jedna hodnota NULL je povolena na každý sloupec.
  • Cizí klíč může odkazovat na jedinečné omezení při zachování jedinečnosti tabulky.

Hlavní rozdíly mezi primárním a jedinečným klíčem

Následující body vysvětlují hlavní rozdíly mezi primárním a kandidátským klíčem:

  • Primární klíč může tvořit jedno nebo více polí tabulky pro jednoznačnou identifikaci záznamů v tabulce. Na druhou stranu jedinečný klíč zabraňuje tomu, aby dva řádky měly duplicitní položky ve sloupci.
  • Tabulka nemůže mít v relační databázi více než jeden primární klíč, zatímco na tabulku může být více jedinečných klíčů.
  • Sloupec primárního klíče nemůže obsahovat hodnoty NULL, zatímco jedinečný klíč může mít hodnoty NULL, ale v tabulce je povolena pouze jedna hodnota NULL.
  • Primární klíč by měl být jedinečný, ale jedinečný klíč nemusí být nutně primární klíč.
  • Primárním klíčem je ve výchozím nastavení seskupený index, kde jsou data fyzicky organizována v sekvenčním indexu. Naproti tomu jedinečný klíč je jedinečný index bez klastrů.
  • Primární klíč implementuje integritu entity, zatímco jedinečný klíč vynucuje jedinečná data.

Srovnávací graf primárního a jedinečného klíče

Následující srovnávací tabulka rychle vysvětluje jejich hlavní rozdíly:

Srovnávací základ Primární klíč Jedinečný klíč
Základní Primární klíč se používá jako jedinečný identifikátor pro každý záznam v tabulce. Jedinečný klíč je také jedinečným identifikátorem pro záznamy, když primární klíč není v tabulce přítomen.
NULA Do sloupce primárního klíče nemůžeme uložit hodnoty NULL. Do sloupce jedinečného klíče můžeme uložit hodnotu NULL, ale je povolena pouze jedna hodnota NULL.
Účel Vynucuje integritu entity. Vynucuje jedinečná data.
Index Primární klíč ve výchozím nastavení vytváří seskupený index. Jedinečný klíč ve výchozím nastavení vytváří index bez klastrů.
Číslo klíče Každá tabulka podporuje pouze jeden primární klíč. Tabulka může mít více než jeden jedinečný klíč.
Úprava hodnoty Hodnoty primárního klíče nemůžeme změnit ani odstranit. Můžeme upravit jedinečné hodnoty sloupců klíče.
Použití Slouží k identifikaci každého záznamu v tabulce. Zabraňuje ukládání duplicitních položek ve sloupci s výjimkou hodnoty NULL.
Syntax Sloupec primárního klíče v tabulce můžeme vytvořit pomocí níže uvedené syntaxe:
CREATE TABLE Employee ( Id INT PRIMARY KEY, name VARCHAR(150), address VARCHAR(250) )
Můžeme vytvořit jedinečný sloupec klíče v tabulce pomocí níže uvedené syntaxe:
CREATE TABLE Person ( Id INT UNIQUE, name VARCHAR(150), address VARCHAR(250) )

Závěr

V tomto článku jsme provedli srovnání omezení primárního klíče a jedinečného klíče. Zde jsme došli k závěru, že jedinečný klíč je užitečný, když chceme, aby sloupce neobsahovaly duplicitní hodnoty. A primární klíč je užitečný, když nechceme v tabulce ponechat hodnotu NULL. Ideální také může být, když máme cizí klíč v jiné tabulce pro vytvoření vztahu mezi tabulkami.

java stack