sql >> Databáze >  >> RDS >> Database

Primární klíč SQL

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:

  1. Rychlý přístup k datům z tabulky.
  2. 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
E-mail 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
E-mail Varchar(100) NE NULL


  1. Naučte se, jak vytvořit PK z Sequence Trigger v SQL Developer

  2. Odkaz na data Salesforce v aplikaci Microsoft Access

  3. PIVOT v sql 2005

  4. SQL Query - zřetězení výsledků do jednoho řetězce