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
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.
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.
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