ОСНОВЕН КЛЮЧ на SQL: Как да създадете и добавите към съществуваща таблица

Какво е първичен ключ в SQL?

Първичен ключ е поле или комбинация от полета, които уникално идентифицират запис. Първичният ключ е колона или набор от колони, които са уникални. С други думи, всяка стойност е уникална за първичен ключ.

Правила за първичен ключ

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

Диаграмата по-долу обобщава всички горепосочени точки за първичния ключ на SQL.

Правила за първичен ключ в SQL
Как работи SQL с първичен ключ

Как да създадете първичен ключ в SQL Server

Можем да създадем първичен ключ 2 начина:

1. Студио за управление на SQL Server

2. T-SQL: Създайте първичен, докато създавате нова таблица

Студио за управление на SQL Server

Стъпка 1) Щракнете с десния бутон върху името на таблицата. Кликнете върху Design.

Създайте първичен ключ в SQL Server

Стъпка 2) Щракнете с десния бутон върху името на колоната. Кликнете върху 'Задаване на първичен ключ

Създайте първичен ключ в SQL Server

Резултат: Course_Id вече е a Първичен ключ.

Създайте първичен ключ в SQL Server

T-SQL: Създайте първичен ключ, докато създавате нова таблица.

По-долу е синтаксисът за създаване на таблица с първичен ключ от T-SQL

Синтаксис:

CREATE TABLE <Table_Name>
(
Column1 datatype,
Column2 datatype,CONSTRAINT <Name> PRIMARY KEY (Column name)
.
);

Нека създадем таблица с една колона като първичен ключ на SQL.

Запитване:

CREATE TABLE COURSE_TSQL_PK 
(Course_ID Int not Null,
 Course_name Varchar(20)
 CONSTRAINT PK PRIMARY KEY (Course_ID)	
)

Стъпка 1) Изпълнете заявката, като щракнете върху „Изпълни“.

Създайте първичен ключ, докато създавате нова таблица

Резултат: Course_Id вече е a Първичен ключ.

Създайте първичен ключ, докато създавате нова таблица

Пример: Да видим дали позволява въвеждането на множество записи с един и същ идентификатор на курс.

Стъпка 1) Поставете 4 реда с различен 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) Проверете успешно всички въведени данни, като изпълните заявката за избор.

Създайте първичен ключ, докато създавате нова таблица

Забележка: Можем да вмъкнем дублирани стойности в непървичния ключ.

Стъпка 3) Сега нека опитаме да вмъкнем нови записи със съществуващ Course_ID, който е първичен ключ.

Insert into COURSE_TSQL_PK values (4,'JAVA');

Резултат: Системата не позволява вмъкване на нова стойност, тъй като 4 има колона Course_ID, която е първичен ключ.

Създайте първичен ключ, докато създавате нова таблица

Как да добавите първичен ключ към съществуваща таблица в SQL?

Сега ще видим как да добавим първичен ключ към съществуваща таблица в SQL:

Можете да използвате оператора ALTER, за да създадете първичен ключ. Първичният ключ обаче може да бъде създаден само в колони, които са дефинирани като NOT NULL. Не можете да създадете първичен ключ в колона, която позволява 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);

Добавяне на първичен ключ към съществуваща таблица в SQL

Добавихме ограничение за първичен ключ към вече съществуваща таблица. Ограничението е добавено в колоната за прием и е присвоено името students_pk.

Интересни факти!

  • Първичният ключ може да бъде комбинация от множество колони. Тази комбинация е известна като Съставен първичен ключ.
  • Първичният ключ може да има максимум 16 колони.

Oбобщение

  • Всяка таблица може да има само един първичен ключ
  • Всички стойности са уникални, което може уникално идентифицира всеки ред.