Než se naučíme rozdíl mezi primárním a cizím klíčem, naučme se:
Co jsou klíče?
Klíče jsou atribut, který vám pomůže identifikovat řádek (n-tici) ve vztahu (tabulka). Umožní vám najít vztah mezi dvěma tabulkami. Klávesy vám pomohou jednoznačně identifikovat řádek v tabulce kombinací jednoho nebo více sloupců v této tabulce. Klíč databáze je také užitečný pro vyhledání jedinečného záznamu nebo řádku z tabulky.
Co je databázový vztah?
Vztah databáze je přidružení mezi jednou nebo více tabulkami, které jsou vytvořeny pomocí příkazů join. Používá se k efektivnímu načítání dat z databáze. Existují primárně tři typy vztahů 1) Jeden na jednoho, 2) Jeden na mnoho, 3) Mnoho na mnoho.
Co je primární klíč?
Omezení primárního klíče je sloupec nebo skupina sloupců, které jednoznačně identifikují každý řádek v tabulce systému správy relačních databází. Nemůže to být duplikát, což znamená, že stejná hodnota by se v tabulce neměla objevit více než jednou.
Tabulka může mít více než jeden primární klíč. Primární klíč lze definovat na úrovni sloupce nebo tabulky. Pokud vytvoříte složený primární klíč, měl by být definován na úrovni tabulky.
Co je cizí klíč?
Cizí klíč je sloupec, který vytváří vztah mezi dvěma tabulkami. Účel cizího klíče je zachovat integritu dat a umožnit navigaci mezi dvěma různými instancemi entity. Funguje jako křížový odkaz mezi dvěma tabulkami, protože odkazuje na primární klíč jiné tabulky. Každý vztah v databázi by měl být podporován cizím klíčem.
KLÍČOVÉ ROZDÍLY:
- Omezení primárního klíče je sloupec, který jednoznačně identifikuje každý řádek v tabulce systému správy relačních databází, zatímco cizí klíč je sloupec, který vytváří vztah mezi dvěma tabulkami.
- Primární klíč nikdy nepřijímá hodnoty null, zatímco cizí klíč může přijímat více hodnot null.
- V tabulce můžete mít pouze jeden primární klíč, zatímco v tabulce můžete mít více cizích klíčů.
- Hodnotu primárního klíče nelze odebrat z nadřazené tabulky, zatímco hodnotu hodnoty cizího klíče lze odebrat z podřízené tabulky.
- Žádné dva řádky nemohou mít žádné stejné hodnoty pro primární klíč, na druhé straně cizí klíč může obsahovat duplicitní hodnoty.
- Vkládání hodnot do sloupce tabulky při vkládání jakékoli hodnoty do tabulky cizích klíčů nemá žádné omezení, ujistěte se, že je hodnota přítomna ve sloupci primárního klíče.
Proč používat primární klíč?
Zde jsou výhody / výhody použití primárního klíče:
- Hlavním cílem primárního klíče je identifikovat každý záznam v databázové tabulce.
- Primární klíč můžete použít, když někomu nedovolíte zadávat nulové hodnoty.
- Pokud odstraníte nebo aktualizujete záznamy, provede se akce, kterou jste zadali, aby se zajistila integrita dat.
- Proveďte operaci omezení pro odmítnutí operace odstranění nebo aktualizace nadřazené tabulky.
- Data jsou organizována v posloupnosti seskupeného indexu, kdykoli fyzicky uspořádáte tabulku DBMS.
Proč používat cizí klíč?
Tady jsou důležité důvody použití cizího klíče:
- Cizí klíče vám pomohou migrovat entity pomocí primárního klíče z nadřazené tabulky.
- Cizí klíč umožňuje propojit dvě nebo více tabulek dohromady.
- Díky tomu jsou vaše databázová data konzistentní.
- Cizí klíč lze použít k porovnání sloupce nebo kombinace sloupců s primárním klíčem v nadřazené tabulce.
- Omezení cizího klíče SQL se používá k zajištění referenční integrity nadřazeného dat tak, aby odpovídala hodnotám v podřízené tabulce.
Příklad primárního klíče
Syntax:
Níže je uvedena syntaxe primárního klíče:
CREATE TABLE(Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);
Tady,
- Název_tabulky je název tabulky, kterou musíte vytvořit.
- Název_sloupce je název sloupce s primárním klíčem.
Příklad:
StudID | Role č | Jméno | Příjmení | E-mailem |
---|---|---|---|---|
1 | 11 | Tom | Cena | Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript. |
2 | 12 | Nicku | Wrighte | Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript. |
3 | 13 | Dana | Natane | Tato e-mailová adresa je chráněna před spamboty. Abyste ji mohli zobrazit, musíte mít povolený JavaScript. |
Ve výše uvedeném příkladu jsme vytvořili studentskou tabulku se sloupci jako StudID, Roll No, First Name, Last Name a Email. StudID je vybrán jako primární klíč, protože dokáže jednoznačně identifikovat další řádky v tabulce.
Příklad cizího klíče
Syntax:
Níže je uvedena syntaxe cizího klíče:
CREATE TABLE