Поле, което съдържа уникални данни в таблица, се нарича ПЪРВИЧЕН КЛЮЧ (PK). Това означава, че полето PRIMARY KEY трябва да съдържа уникални данни в таблицата.
- Полето ПЪРВЕН КЛЮЧ съдържа стойности на всеки ред.
- Полето PRIMARY KEY не може да съдържа празен низ.
- Данните за ПЪРВИЧЕН КЛЮЧ никога не се променят с течение на времето.
- Една таблица може да се състои само от един ПЪРВИЧЕН КЛЮЧ, който може да се състои от едно или няколко полета в таблицата. Когато повече от една колона се използва като ПЪРВИЧЕН КЛЮЧ на таблицата, те са известни като съставен ключ в таблицата.
- Няма да има дублирани записи за ПЪРВИЧЕН КЛЮЧ.
- Ако поле е зададено като ПРАВИЛЕН КЛЮЧ в таблицата, това поле не може да съдържа стойностите на едно и също поле повече от веднъж в таблицата.
Например, имаме таблица на Student в базата данни. Таблицата съдържа 4 полета Student_Id, Student_Name, Phone_Number и Email. Student_Id и Email е ОСНОВНИЯТ КЛЮЧ в таблицата Student. Има само един ПЪРВИЧЕН КЛЮЧ, но може да има едно или няколко полета в таблицата, както казахме по-горе. Данните на един ученик вече присъстват в таблицата, но същият ученик добавя данните си отново със същия имейл ID. Докато ученикът въвежда подробности, изскачащ прозорец ще покаже съобщение „Имейл вече съществува“. Показва се, защото имейлът вече е съществувал в таблицата и полето за имейл е ПЪРВИЧНИЯ КЛЮЧ, а ПРАВИЛНИЯТ КЛЮЧ не може да съдържа дублиращи се стойности.
Създайте ПЪРВИЧЕН КЛЮЧ в SQL ТАБЛИЦА
Следната SQL заявка създава ПЪРВЕН КЛЮЧ в полето Employee_Id, когато е създадена таблицата „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) );
Горната заявка е дефинирала PRIMARY KEY към полето Employee_Id. Можем да споменем името на ключа след името на полето и типа данни. Горната заявка е единственият начин да създадем Employee_Id като ОСНОВЕН КЛЮЧ.
За да проверим дали нашият PRIMARY KEY е дефиниран успешно или не, можем да използваме командата DESC, последвана от името на таблицата Employee.
Служител на DESC;
Полета | Тип | Null | Ключ | По подразбиране | Допълнително |
Идентификатор_на_служител | Int(11) | НЕ | PRI | NULL | |
Име_на_служител | Варчар(40) | НЕ | NULL | ||
Заплата | Int(11) | НЕ | NULL | ||
Отдел | Варчар(40) | ДА | NULL | ||
Град | Варчар(40) | ДА | NULL |
Ключовото поле PRI се споменава пред реда Employee_Id, което означава, че Employee_Id е успешно дефиниран като ПРАВИЛЕН КЛЮЧ.
Предимства от използването на PRIMARY KEY в таблицата:
- Бърз достъп до данните от таблицата.
- Дублиращи се стойности не са разрешени в полетата ПЪРВЕН КЛЮЧ.
Друг начин за създаване на ПЪРВИЧЕН КЛЮЧ
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) );
В същата заявка, както по-горе, трябва да споменем NOT NULL пред името на полето, което е създадено като ПЪРВИЧЕН КЛЮЧ, и в края трябва да напишем ключовата дума PRIMARY KEY и името на полето в скоби точно както по-горе заявка.
Създайте ограничение PRIMARY KEY за полетата, когато таблицата вече съществува
Използвайте следната заявка:
ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);
Използвайки заявката ALTER TABLE за дефиниране на PRIMARY KEY, полето PRIMARY KEY вече е декларирано с ограничение NOT NULL.
ПРАВИЛЕН КЛЮЧ на SQL върху множество колони
Следната SQL заявка създава ПЪРВЕН КЛЮЧ в повече от една колона, когато е създадена таблицата „Студент“.
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));СЪЗДАДЕТЕ ТАБЛИЦА Студент>
Само един ПЪРВИЧЕН КЛЮЧ е направен в примера на Student_Id и Email.
За да проверим дали нашият PRIMARY KEY е дефиниран успешно или не, можем да използваме командата DESC, последвана от името на таблицата на Student.
DESC Student;
Полета | Тип | Null | Ключ | По подразбиране | Допълнително |
Идентификационен номер на ученика | Int(11) | НЕ | PRI | NULL | |
Име_ученик | Варчар(40) | ДА | NULL | ||
Отдел | Варчар(40) | ДА | NULL | ||
Телефонен номер | Int(10) | ДА | NULL | ||
Имейл | Варчар(100) | НЕ | PRI | NULL |
Както можем да видим пред реда Student_Id и Email, ключовите полета PRI са споменати, което означава, че Student_Id и Email са успешно дефинирани като PRIMARY KEY.
Сега ще изпълним SHOW CREATE TABLE, последвано от името на таблицата на ученика, което ще опише таблицата на учениците.
SHOW CREATE TABLE Student;
В горния изход можем да видим, че е създаден само един ПЪРВИЧЕН КЛЮЧ, а в скоби се споменава името на полетата, което се създава като ПЪРВИЧЕН КЛЮЧ при създаването на таблицата.
Да предположим, че искаме да премахнем ограничението PRIMARY KEY от таблицата на учениците. Ще използваме следната заявка, за да премахнем ограничението PRIMARY KEY:
ALTER TABLE Student DROP PRIMARY KEY;
За да проверим дали нашият ПЪРВИЧЕН КЛЮЧ е успешно премахнат или не, ще използваме командата DESC, последвана от името на таблицата на ученика.
DESC Student;
Полета | Тип | Null | Ключ | По подразбиране | Допълнително |
Идентификационен номер на ученика | Int(11) | НЕ | NULL | ||
Име_ученик | Варчар(40) | ДА | NULL | ||
Отдел | Варчар(40) | ДА | NULL | ||
Телефонен номер | Int(10) | ДА | NULL | ||
Имейл | Варчар(100) | НЕ | NULL |