SQL PRIMARY KEY: Създаване и добавяне към съществуваща таблица
⚡ Умно обобщение
Първичният ключ в SQL Server е колона или набор от колони, чиито стойности уникално идентифицират всеки ред в таблица. Всяка таблица съдържа един първичен ключ и нейните колони никога не трябва да са NULL.

Какво е първичен ключ в SQL?
Първичен ключ в SQL Server е поле или комбинация от полета, което идентифицира запис уникално. Това е колона или набор от колони, в които всяка стойност е уникална. С други думи, никакви два реда не могат да споделят една и съща стойност на първичния ключ.
Правила за първичен ключ
- Всяка таблица може да има само един първичен ключ.
- Всички стойности са уникални и стойността на първичния ключ може уникално да идентифицира всеки ред.
- Системата няма да позволи вмъкване на ред, чиято стойност на първичния ключ вече съществува в таблицата.
- Първичният ключ не може да бъде NULL.
Диаграмата по-долу обобщава всички точки по-горе относно първичния ключ на SQL.
Как да създадете първичен ключ в SQL Server
Можете да създадете първичен ключ по два начина:
- Студио за управление на SQL Server
- T-SQL: създаване на първичен ключ при създаване на нова таблица
Нека разгледаме подробно всеки метод.
Студио за управление на SQL Server
Стъпка 1) Щракнете с десния бутон върху името на таблицата и щракнете върху Дизайн.
Стъпка 2) Щракнете с десния бутон върху името на колоната и щракнете върху Задаване на първичен ключ.
Резултат: Course_Id вече е първичен ключ, показан с икона на ключ до колоната.
T-SQL: Създаване на първичен ключ при създаване на нова таблица
По-долу е синтаксисът на създайте таблица с първичен ключ от T-SQL.
Синтаксис:
CREATE TABLE <Table_Name> ( Column1 datatype, Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name) . );
Тук CONSTRAINT именува ключа, PRIMARY KEY маркира колоната, която трябва да остане уникална, а всяка колона също се нуждае от тип данни.
Нека създадем таблица с една колона като първичен ключ на SQL.
Запитване:
CREATE TABLE COURSE_TSQL_PK (Course_ID Int not Null, Course_name Varchar(20) CONSTRAINT PK PRIMARY KEY (Course_ID) )
Стъпка 1) Изпълнете заявката, като щракнете върху Изпълнение.
Резултат: Course_Id вече е първичен ключ в таблицата COURSE_TSQL_PK.
Пример: Нека видим дали е възможно въвеждането на множество записи с един и същ идентификатор на курс.
Стъпка 1) Вмъкнете четири реда с различни стойности на 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');
Стъпка 2) Проверете дали всички данни са въведени успешно, като изпълните заявката SELECT.
Забележка: Можете да вмъквате дублиращи се стойности в колона, която не е с първичен ключ.
Стъпка 3) Сега нека опитаме да вмъкнем нов запис със съществуващ Course_ID, който е първичният ключ.
Insert into COURSE_TSQL_PK values (4,'JAVA');
Резултат: Системата не позволява вмъкването на новата стойност, защото 4 вече съществува в колоната Course_ID, която е първичен ключ.
Как да добавите първичен ключ към съществуваща таблица в SQL?
Сега ще видим как да добавим първичен ключ към съществуваща таблица в SQL.
Можете да използвате командата ALTER, за да създадете първичен ключ. Първичен ключ обаче може да бъде създаден само за колони, които са дефинирани като NOT NULL. Не можете да създадете първичен ключ за колона, която позволява NULL; ако дадена колона в момента позволява NULL, първо трябва да я промените на NOT NULL или да премахнете и да създадете отново таблицата.
Ето синтаксиса:
ALTER TABLE tableName ADD CONSTRAINT constraintName PRIMARY KEY (column_1, column_2, ... column_n);
Например:
ALTER TABLE students ADD CONSTRAINT students_pk PRIMARY KEY (admission);
Добавихме ограничение за първичен ключ към вече съществуваща таблица. Ограничението е добавено в колоната за прием и е присвоено името students_pk.
Интересни факти!
- Първичният ключ може да бъде комбинация от множество колони. Тази комбинация е известна като съставен първичен ключ.
- Първичният ключ може да има максимум 16 колони.









