Primárny kľúč

Primárny kľúč je v relačnej databáze jedinečný atribút alebo skupina atribútov, ktorý jednoznačne identifikuje každý záznam v relácii (tabuľke). Žiadne dva záznamy v konzistentne navrhnutej tabuľke nemajú zhodný primárny kľúč. V tabuľke môže byť viacero atribútov, ktoré jednoznačne identifikujú záznam, pričom jeden z nich (alebo aj iná kombinácia atribútov) sa môže použiť ako primárny kľúč.

Príkladom primárneho kľúča môže byť napríklad rodné číslo v tabuľke so zoznamom osôb. V praxi sa však takýto identifikátor nepoužíva, nie je zaručené, že každá osoba má rodné číslo a taktiež nie je zaručené, že osoby z rôznych štátov majú jedinečné rodné čísla. Ako primárny kľúč sa teda často používa automaticky generované číslo databázovým systémom.

Vytvorenie primárneho kľúča 

Primárny kľúč je definovaný v štandarde ANSI SQL Standard, ako PRIMARY KEY. Zápis na pridanie primárneho kľúča v prípade existujúcej tabuľky je definovaný v SQL:2003 takto:

  ALTER TABLE <označenie tabuľky> 
      ADD [ CONSTRAINT <označenie primárneho kľúča> ] 
      PRIMARY KEY ( <označenie stĺpca> {, <označenie stĺpca>}... )

Podľa štandardu môže primárny kľúč definovať aj viacero stĺpcov tabuľky, pričom každý takýto stĺpec zaradený do primárneho kľúča je štandardne definovaný ako nenulový (NOT NULL).

V prípade, ak je primárny kľúč navrhnutý v procese tvorby modelu databázy, je možné primárny kľúč tabuľky definovať priamo pri vytváraní danej tabuľky takto:

  CREATE TABLE označenie_tabuľky (
     id      INT,
     stĺpec1 CHARACTER VARYING(20),
     stĺpec2 DATE,
     ...
     CONSTRAINT označenie_primárneho_kľúča PRIMARY KEY(id),
     ...
  )

V prípade, ak primárny kľúč tvorí iba jeden atribút tabuľky, používa sa na jeho definovanie nasledujúci zápis:

  CREATE TABLE označenie_tabuľky (
     id      INT PRIMARY KEY,
     stĺpec1 CHARACTER VARYING(20),
     stĺpec2 DATE,
     ...
  )

Databázy