ПЕРВИЧНЫЙ КЛЮЧ SQL: как создать и добавить в существующую таблицу
Что такое первичный ключ в SQL?
Основной ключ поле или комбинация полей, которые однозначно идентифицируют запись. Первичный ключ — это уникальный столбец или набор столбцов. Другими словами, каждое значение первичного ключа уникально.
Правила для первичного ключа
- Каждая таблица может иметь только один первичный ключ SQL.
- Все значения уникальны, и значение первичного ключа SQL может однозначно идентифицировать каждую строку.
- Система не позволит вставить строку с первичным ключом SQL Server, которая уже существует в таблице.
- Первичный ключ не может иметь значение NULL.
На диаграмме ниже суммированы все вышеперечисленные пункты для первичного ключа SQL.
Как создать первичный ключ в SQL Server
Мы можем создать первичный ключ в 2 способов:
1. Студия управления SQL Server
2. 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) . );
Давайте создадим таблицу с одним столбцом в качестве первичного ключа SQL.
Запрос:
CREATE TABLE COURSE_TSQL_PK (Course_ID Int not Null, Course_name Varchar(20) CONSTRAINT PK PRIMARY KEY (Course_ID) )
Шаг 1) Запустите запрос, нажав на 'Выполнять.'
Результат: Course_Id теперь является Основной ключ.
Пример: Давайте посмотрим, позволяет ли это вводить несколько записей с одинаковым идентификатором курса.
Шаг 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) Убедитесь, что все данные вставлены успешно, выполнив запрос Select.
Внимание: Мы можем вставлять повторяющиеся значения в непервичный ключ.
Шаг 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);
Мы добавили ограничение первичного ключа в уже существующую таблицу. Ограничение было добавлено в столбец поступления, и ему присвоено имя Student_pk.
Интересные факты!
- Первичный ключ может представлять собой комбинацию нескольких столбцов. Эта комбинация известна как Составной первичный ключ.
- Первичный ключ может иметь максимум 16 столбцов.
Итого
- Каждая таблица может иметь только один первичный ключ.
- Все значения уникальны, что может однозначно идентифицировать каждую строку.