Pole, které obsahuje jedinečná data v tabulce, se nazývá PRIMARY KEY (PK). To znamená, že pole PRIMARY KEY musí obsahovat jedinečná data v tabulce.
- Pole PRIMÁRNÍ KLÍČ obsahuje hodnoty na každém řádku.
- Pole PRIMARY KEY nemůže obsahovat prázdný řetězec.
- Údaje PRIMARY KEY se v průběhu času nikdy nemění.
- Tabulka se může skládat pouze z jednoho PRIMÁRNÍHO KLÍČE, který se může skládat z jednoho nebo více polí v tabulce. Pokud je jako PRIMÁRNÍ KLÍČ tabulky použit více než jeden sloupec, označují se v tabulce jako složený klíč.
- Pro PRIMÁRNÍ KLÍČ nebudou existovat žádné duplicitní záznamy.
- Pokud je pole v tabulce nastaveno jako PRIMÁRNÍ KLÍČ, nemůže toto pole obsahovat hodnoty stejného pole v tabulce více než jednou.
V databázi máme například tabulku Student. Tabulka obsahuje 4 pole Student_Id, Student_Name, Phone_Number a Email. Student_Id a Email je PRIMÁRNÍ KLÍČ v tabulce Student. Existuje pouze jeden PRIMÁRNÍ KLÍČ, ale může mít jedno nebo více polí v tabulce, jak jsme řekli výše. Data jednoho studenta jsou již v tabulce přítomna, ale stejný student znovu přidá svá data se stejným e-mailovým ID. Jakmile student zadá podrobnosti, vyskakovací okno zobrazí zprávu „E-mail již existuje“. Je zobrazen, protože E-mail již v tabulce existuje a pole e-mailu je PRIMÁRNÍ KLÍČ a PRIMÁRNÍ KLÍČ nemůže obsahovat duplicitní hodnoty.
Vytvořte PRIMÁRNÍ KLÍČ v SQL TABLE
Následující SQL dotaz vytvoří PRIMARY KEY v poli Employee_Id při vytvoření tabulky ‘Employee’.
CREATE TABLE Employee( Employee_Id int PRIMARY KEY, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40) );
Výše uvedený dotaz definoval PRIMARY KEY do pole Employee_Id. Za názvem pole a datovým typem můžeme uvést název klíče. Výše uvedený dotaz je jediný způsob, jak můžeme vytvořit Employee_Id jako PRIMÁRNÍ KLÍČ.
Ke kontrole, zda je náš PRIMÁRNÍ KLÍČ úspěšně definován či nikoli, můžeme použít příkaz DESC následovaný názvem tabulky Employee.
Zaměstnanec DESC;
Pole | Typ | Null | Klíč | Výchozí | Navíc |
Employee_Id | Int(11) | NE | PRI | NULL | |
Jméno_zaměstnance | Varchar(40) | NE | NULL | ||
Plat | Int(11) | NE | NULL | ||
Oddělení | Varchar(40) | ANO | NULL | ||
Město | Varchar(40) | ANO | NULL |
Pole klíče PRI je uvedeno před řádkem Employee_Id, což znamená, že Employee_Id je úspěšně definováno jako PRIMÁRNÍ KLÍČ.
Výhody použití PRIMARY KEY v tabulce:
- Rychlý přístup k datům z tabulky.
- V polích PRIMARY KEY nejsou povoleny duplicitní hodnoty.
Další způsob, jak vytvořit PRIMÁRNÍ KLÍČ
CREATE TABLE Employee( Employee_Id int NOT NULL, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40), PRIMARY KEY(Employee_ID) );
Ve stejném dotazu jako výše musíme před názvem pole uvést NOT NULL, které je vytvořeno jako PRIMÁRNÍ KLÍČ, a na závěr musíme napsat klíčové slovo PRIMARY KEY a název pole do závorek stejně jako výše. dotaz.
Pokud tabulka již existuje, vytvořte pro pole omezení PRIMARY KEY
Použijte následující dotaz:
ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);
Pomocí dotazu ALTER TABLE k definování PRIMÁRNÍHO KLÍČE již bylo pole PRIMÁRNÍ KLÍČ deklarováno s omezením NOT NULL.
PRIMÁRNÍ KLÍČ SQL ve více sloupcích
Následující SQL dotaz vytvoří PRIMÁRNÍ KLÍČ na více než jednom sloupci, když je vytvořena tabulka 'Student'.
CREATE TABLE Student( Student_Id int NOT NULL, Student_Name varchar(40), Department varchar(40), Phone_Number int(10), Email varchar(100) NOT NULL, PRIMARY KEY(Student_ID, Email));
V příkladu na Student_Id a Email je vytvořen pouze jeden PRIMÁRNÍ KLÍČ.
Pro kontrolu, zda je náš PRIMÁRNÍ KLÍČ úspěšně definován či nikoli, můžeme použít příkaz DESC následovaný názvem tabulky Student.
DESC Student;
Pole | Typ | Null | Klíč | Výchozí | Navíc |
ID_studenta | Int(11) | NE | PRI | NULL | |
Jméno_studenta | Varchar(40) | ANO | NULL | ||
Oddělení | Varchar(40) | ANO | NULL | ||
Telefonní_číslo | Int(10) | ANO | NULL | ||
Varchar(100) | NE | PRI | NULL |
Jak vidíme před řádkem Student_Id a Email, jsou zmíněna klíčová pole PRI, což znamená, že Student_Id a Email jsou úspěšně definovány jako PRIMÁRNÍ KLÍČ.
Nyní provedeme SHOW CREATE TABLE následované názvem studentské tabulky, která bude popisovat studentskou tabulku.
SHOW CREATE TABLE Student;
Ve výše uvedeném výstupu vidíme, že je vytvořen pouze jeden PRIMÁRNÍ KLÍČ a v závorce je uveden název pole, který je vytvořen jako PRIMÁRNÍ KLÍČ při vytváření tabulky.
Předpokládejme, že chceme odstranit omezení PRIMARY KEY ze studentské tabulky. K odstranění omezení PRIMARY KEY použijeme následující dotaz:
ALTER TABLE Student DROP PRIMARY KEY;
Ke kontrole, zda byl náš PRIMÁRNÍ KLÍČ úspěšně odstraněn či nikoli, použijeme příkaz DESC následovaný názvem tabulky Student.
DESC Student;
Pole | Typ | Null | Klíč | Výchozí | Navíc |
ID_studenta | Int(11) | NE | NULL | ||
Jméno_studenta | Varchar(40) | ANO | NULL | ||
Oddělení | Varchar(40) | ANO | NULL | ||
Telefonní_číslo | Int(10) | ANO | NULL | ||
Varchar(100) | NE | NULL |