PRIMÁRNÍ KLÍČ SQL: Vytvoření a přidání do existující tabulky

⚡ Chytré shrnutí

Primární klíč v SQL Serveru je sloupec nebo sada sloupců, jejichž hodnoty jednoznačně identifikují každý řádek v tabulce. Každá tabulka obsahuje jeden primární klíč a její sloupce nesmí být nikdy NULL.

  • 🔑 Co je to primární klíč: Primární klíč je jeden nebo více sloupců, jejichž hodnoty jsou jedinečné a identifikují každý řádek v tabulce.
  • 🚫 Základní pravidla: Tabulka povoluje pouze jeden primární klíč, každá hodnota musí být jedinečná a žádný sloupec klíče nesmí obsahovat hodnotu NULL.
  • 🖱️ Dvě metody tvorby: Návrhář tabulek v SQL Server Management Studio a příkaz T-SQL CREATE TABLE definují primární klíč.
  • 🧱 Klauzule CONSTRAINT: Uvnitř CREATE TABLE klauzule CONSTRAINT … PRIMARY KEY pojmenovává klíč a vypisuje jeho sloupec nebo sloupce.
  • ➕ Přidat do existující tabulky: Příkaz ALTER TABLE … ADD COSTRAINT přidá primární klíč do sloupců NOT NULL existující tabulky.
  • 🧩 Složený klíč: Primární klíč může kombinovat až 16 sloupců a vytvářet tak složený klíč, který je jedinečný v celé sadě.

PRIMÁRNÍ KLÍČ SQL Serveru: Jak vytvořit a přidat do existující tabulky

Co je primární klíč v SQL?

Primární klíč v SQL Server je pole nebo kombinace polí, která jednoznačně identifikuje záznam. Je to sloupec nebo sada sloupců, ve kterých je každá hodnota jedinečná. Jinými slovy, žádné dva řádky nemohou sdílet stejnou hodnotu primárního klíče.

Pravidla pro primární klíč

  • Každá tabulka může mít pouze jeden primární klíč.
  • Všechny hodnoty jsou jedinečné a hodnota primárního klíče může jednoznačně identifikovat každý řádek.
  • Systém nepovolí vložení řádku, jehož hodnota primárního klíče již v tabulce existuje.
  • Primární klíč nemůže být NULL.

Níže uvedený diagram shrnuje všechny výše uvedené body týkající se primárního klíče SQL.

Diagram shrnující pravidla primárních klíčů SQL: jedinečné hodnoty, jedna na tabulku, a ne NULL

Jak vytvořit primární klíč v SQL Server

Primární klíč můžete vytvořit dvěma způsoby:

Pojďme si každou metodu podrobně prostudovat.

SQL Server Management Studio

Krok 1) Klikněte pravým tlačítkem myši na název tabulky a klikněte na Design.

Klikněte pravým tlačítkem myši na tabulku a v SQL Server Management Studio vyberte možnost Návrh.

Krok 2) Klikněte pravým tlačítkem myši na název sloupce a klikněte na Nastavit primární klíč.

Klikněte pravým tlačítkem myši na sloupec a vyberte možnost Nastavit primární klíč v návrháři tabulek.

Výsledek: Course_Id je nyní primární klíč, zobrazený ikonou klíče vedle sloupce.

Sloupec Course_Id označený ikonou klíče jako primární klíč

T-SQL: Vytvoření primárního klíče při vytváření nové tabulky

Níže je uvedena syntaxe pro vytvořit tabulku s primárním klíčem z T-SQL.

Syntaxe:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

Zde CONSTRAINT pojmenovává klíč, PRIMARY KEY označuje sloupec, který musí zůstat jedinečný, a každý sloupec také potřebuje datový typ.

Vytvořme tabulku s jedním sloupcem jako primárním klíčem SQL.

Dotaz:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

Krok 1) Spusťte dotaz kliknutím na Provést.

Spuštění dotazu CREATE TABLE, který definuje primární klíč Course_ID

Výsledek: Course_Id je nyní primárním klíčem v tabulce COURSE_TSQL_PK.

Tabulka COURSE_TSQL_PK zobrazující Course_ID nastavené jako primární klíč

Příklad: Podívejme se, zda je možné zadat více záznamů se stejným ID kurzu.

Krok 1) Vložte čtyři řádky s různými hodnotami Course_ID.

Insert into COURSE_TSQL_PK values (1,'SQL');
Insert into COURSE_TSQL_PK values (2,'Python');
Insert into COURSE_TSQL_PK values (3,'SQL');
Insert into COURSE_TSQL_PK values (4,'C');

Krok 2) Spuštěním dotazu SELECT ověřte, zda byla všechna data úspěšně vložena.

Výsledek dotazu SELECT zobrazuje čtyři řádky s různými hodnotami Course_ID

Poznámka: Do sloupce, který není primárním klíčem, můžete vložit duplicitní hodnoty.

Krok 3) Nyní zkusme vložit nový záznam s existujícím Course_ID, což je primární klíč.

Insert into COURSE_TSQL_PK values (4,'JAVA');

Výsledek: Systém neumožňuje vložení nové hodnoty, protože ve sloupci Course_ID již existuje hodnota 4, což je primární klíč.

Chybová zpráva o odmítnutí duplicitní hodnoty primárního klíče pro Course_ID

Jak přidat primární klíč do existující tabulky v SQL?

Nyní se podíváme, jak přidat primární klíč do existující tabulky v SQL.

Příkaz ALTER můžete použít k vytvoření primárního klíče. Primární klíč však lze vytvořit pouze pro sloupce, které jsou definovány jako NOT NULL. Primární klíč nelze vytvořit pro sloupec, který povoluje hodnoty NULL. Pokud sloupec aktuálně povoluje hodnoty NULL, musíte jej nejprve změnit na NOT NULL nebo tabulku odstranit a znovu vytvořit.

Zde je syntaxe:

ALTER TABLE tableName
ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);

Například:

ALTER TABLE students
ADD CONSTRAINT students_pk PRIMARY KEY (admission);

Příkaz ALTER TABLE přidává omezení primárního klíče s názvem students_pk

Do již existující tabulky jsme přidali omezení primárního klíče. Omezení bylo přidáno do sloupce přijetí a bylo mu přiřazeno jméno students_pk.

Zajímavosti!

  • Primární klíč může být kombinací více sloupců. Tato kombinace se nazývá složený primární klíč.
  • Primární klíč může mít maximálně 16 sloupců.

Nejčastější dotazy

Oba vynucují jedinečnost. Tabulka povoluje pouze jeden primární klíč a její sloupce nemohou mít hodnotu NULL. Tabulka může obsahovat několik jedinečných klíčů a jedinečný sloupec může přijmout jednu hodnotu NULL. Primární klíče obvykle definují hlavní identifikátor řádku.

Ano. SQL Server automaticky vytváří jedinečný index pro vynucení primárního klíče. Ve výchozím nastavení je tento index clusterovaný, což fyzicky řadí řádky. Pokud již jiný sloupec clusterovaný index obsahuje, můžete místo toho zadat NONCLUSTERED.

Složený primární klíč kombinuje dva nebo více sloupců, takže jejich hodnoty jsou jedinečné, i když se každý sloupec opakuje samostatně. SQL Server umožňuje, aby primární klíč zahrnoval až 16 sloupců a měl celkovou délku klíče 900 bajtů.

Primární klíč jednoznačně identifikuje každý řádek v rámci jeho vlastní tabulky a nikdy nepovoluje hodnoty NULL. cizí klíč ukládá hodnoty, které se musí shodovat s primárním nebo jedinečným klíčem v jiné tabulce, čímž vytváří vztah mezi těmito dvěma tabulkami.

Spusťte příkaz ALTER TABLE název_tabulky DROP CONSTRAINT název_omezení. Musíte znát název omezení, který najdete v souboru sys.key_constraints. Dropping Primární klíč také odstraní svůj podpůrný jedinečný index a veškerý cizí klíč, který na něj odkazuje.

Sloupec typu IDENTITY, který automaticky generuje čísla, je oblíbeným náhradním primárním klíčem, protože zůstává úzký, stabilní a nikdy nemá hodnotu NULL. Přirozený klíč zvolte pouze v případě, že existující sloupec, například kód produktu, je již zaručeně jedinečný.

Ano. GitHub Copilot Umí psát příkazy CREATE TABLE a omezení PRIMARY KEY z výzev v přirozeném jazyce a navrhovat vhodné sloupce klíčů. Vždy zkontrolujte vygenerované klíče, datové typy a nulovatelnost a poté skript před spuštěním v produkčním prostředí otestujte.

Nástroje umělé inteligence a strojového učení analyzují vzorová data a vzory dotazů, aby doporučily, který sloupec nebo sloupce by měly být primárním klíčem, označily kandidátské klíče, které obsahují duplikáty nebo hodnoty NULL, a navrhly náhradní klíče. Vývojář každé doporučení před jeho použitím potvrdí.

Shrňte tento příspěvek takto: