Как сделать первичный ключ в базе данных

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

Команда PRIMARY KEY ограничение однозначно идентифицирует каждую запись в таблице.

Таблица может иметь только один первичный ключ, который может состоять из одного или нескольких полей.

SQL PRIMARY KEY в CREATE TABLE

Следующий SQL создает первичный ключ в столбце "ID" при создании таблицы "Persons":

CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);

SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);

Чтобы разрешить именование ограничения PRIMARY KEY и определить ограничение PRIMARY KEY для нескольких столбцов, используйте следующий синтаксис SQL:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);

Примечание: В приведенном выше примере существует только один первичный ключ (PK_Person). Однако значение первичного ключа состоит из TWO COLUMNS (ID + LastName).

SQL PRIMARY KEY в ALTER TABLE

Чтобы создать ограничение первичного ключа для столбца "ID", когда таблица уже создана, используйте следующий SQL:

MySQL / SQL Server / Oracle / MS Access:

Чтобы разрешить именование ограничения первичного ключа и определить ограничение первичного ключа для нескольких столбцов, используйте следующий синтаксис SQL:

MySQL / SQL Server / Oracle / MS Access:

Примечание: Если вы используете инструкцию ALTER TABLE для добавления первичного ключа, то столбец(ы) первичного ключа уже должен быть объявлен не содержащим нулевых значений (при первом создании таблицы).

ключи sql

;)

В этой статье мы попробуем рассмотреть все, что касается ключей в SQL: для чего нужны, создание, ограничения ключей. В общем: будет скучно

План на сегодня такой:

В теории реляционных баз данных — ключи это некие сущности, созданы для установления определенных ограничений, которые поддерживают целостность и доступность данных в таблицах баз данных.

Если говорить простыми словами, то ключи в sql созданы для того, чтобы указать дополнительную функциональность столбца. Будь то уникальность или то, что столбец ссылается на другую таблицу (внешний ключ).

Первичный ключ

Столбец, который в базе данных должен быть уникальным помечают первичным ключом. Первичный ключ или primary key означает, что в таблице значение колонки primary key не может повторяться. Таким образом данный ключ позволяет однозначно идентифицировать запись в таблице не боясь при этом, что значение столбца повториться. Сразу пример: допустим у Вас есть таблица пользователей. В данной таблице есть поля: ФИО, год рождения, телефон. Как идентифицировать пользователя? Таким параметрам как ФИО и телефон доверять нельзя. Ведь у нас может быть несколько пользователей не только с одинаковой фамилией, но и с именем. Телефон может меняться со временем и пользователь с номером телефона может оказаться не тем кто у нас в базе данных.

Вот для этого и придумали первичный ключ. Один раз присвоили уникальный идентификатор и все. В mySql на примере которой мы выполняем все примеры из цикла статей по SQL поле AUTO_INCREMENT нельзя задать если не указать, что это первичный ключ.

К стати, в предыдущей теме мы уже познакомились с первичным ключом: что это такое и как его создавать. Синтаксис по созданию этого ключа Вы найдете в статье Создание, изменение, удаление таблиц SQL.

Думаю, что не стоит упоминать, что поле помеченное как первичный ключ не может быть пустым при создании записи.

Внешний ключ (foreign key)

Есть еще внешний ключ (foreign key). Его еще называют ссылочным. Он нужен для связывания таблиц между собой.

усложненная модель

Если посмотреть на картинку выше, то внешним ключем будет поле поставщик в таблице обувь. Как правило, при создании таблицы задают колонку уникальных целочисленных значений. Как мы это делали когда создавали таблицу supplier.

успешное создание таблицы

Колонка supplier_id будет уникальна для каждой записи. Ее значение и будет выступать на мести колонки поставщик в таблице обувь. Предлагаю сразу и рассмотреть на примере как создается внешний ключ.

Создание внешнего ключа

создание внешнего ключа

Как видно на примере выше, синтаксис по созданию внешнего ключа довольно прост. Нужно в таблицу добавить поле, а после объявить это поле как внешний ключ и указать, куда он будет ссылаться. В данном случае поле supplier будет ссылаться на поле supplier_id в таблице supplier.

Составной ключ (composite key)

Что касается составного ключа — это несколько первичных ключей в таблице. Таким образом, создав composite key, уникальность записи будет проверяться по полям, которые объединенные в этот ключ.

Бывают ситуации, когда при вставке в таблицу нужно проверять запись на уникальность сразу по нескольким полям. Вот для этого и придуман составной ключ. Для примера я создам простую таблицу с composite key, чтобы показать синтаксис:

составной ключ

В примере выше два поля объединенные в составной ключ и в таблице не будет записей с этими одинаковыми полями.

Это все, что касается ключей в SQL. Это небольшое пособие — подготовка к статье связи sql где мы подробно рассмотрим как объединять таблицы, чтобы они составляли единую базу данных.

Первичный ключ — это поле или комбинация полей, которые однозначно идентифицируют запись. Первичный ключ — это столбец или набор столбцов, которые являются уникальными. Другими словами, каждое значение уникально для первичного ключа.

Правила для первичного ключа

  • Каждая таблица может иметь только один первичный ключ.
  • Все значения уникальны, и значение Первичного ключа может однозначно идентифицировать каждую строку.
  • Система не позволит вставить строку с первичным ключом, который уже существует в таблице.
  • Первичный ключ не может быть пустым.

Ниже на диаграмме обобщены все вышеперечисленные пункты для первичного ключа.


В этом уроке вы узнаете

Как создать первичный ключ

Мы можем создать первичный ключ двумя способами:

1. SQL Server Management Studio.

2. T-SQL: создайте основной файл при создании новой таблицы.

SQL Server Management Studio

Шаг 1) Щелкните правой кнопкой мыши по имени таблицы. Нажмите на дизайн.


Step 2) Right-click on the Column name. Click on ‘Set Primary Key’


Result: Course_Id is now a Primary Key.


T-SQL: Create a Primary key while creating a New Table.

Below is the syntax to create the table from T-SQL

Syntax:


Result: Course_Id is now a Primary Key.


Пример: давайте посмотрим, позволяет ли он вводить несколько записей с одинаковым идентификатором курса.

Шаг 1) Вставьте 4 строки с разными Course_ID

Шаг 2) Проверьте все введенные данные, выполнив запрос Выбрать.


Примечание . Мы можем вставить повторяющиеся значения в неосновный ключ.

Шаг 3) Теперь давайте попробуем Вставить Новые записи с существующим Course_ID, который является Первичным Ключом.

Результат: система не позволяет вводить новое значение, так как 4 есть столбец Course_ID, который является первичным ключом.


T-SQL: добавить первичный ключ в существующую таблицу, используя Alter Table

Вы можете использовать инструкцию ALTER для создания первичного ключа. Однако первичный ключ может быть создан только для столбцов, которые определены как NOT NULL. Вы не можете создать первичный ключ для столбца, который допускает значения NULL. Если вам нужно сделать, вы должны удалить и воссоздать таблицу.


Мы добавили ограничение первичного ключа к уже существующей таблице. В столбец допуска добавлено ограничение, которому присвоено имя Students_pk.

В данной теме, на примере двух таблиц, определяются основные понятия реляционных баз данных, а именно:

  • первичный ключ;
  • внешний ключ;
  • простой и составной ключ;
  • отношение, типы отношений;
  • искусственный и естественный ключи;
  • главная (master) и подчиненная (detail) таблицы.

Содержание

Поиск на других ресурсах:

Пусть задана база данных работников предприятия, которая состоит из двух таблиц. Первая таблица содержит данные о работнике. Вторая таблица содержит сведения о заработной плате работника.

Таблицы имеют следующую структуру.

база данных таблица фото

база данных таблица фото

Вопрос/ответ

1. Что такое первичный ключ в таблице базы данных? Для чего используются первичные ключи?

При работе с таблицами в реляционных базах данных, желательно (необходимо), чтобы каждая таблица имела так называемый первичный ключ.

Первичный ключ – это поле, которое используется для обеспечения уникальности данных в таблице. Это означает, что значение (информация) в поле первичного ключа в каждой строке (записи) таблицы может быть уникальным.

Уникальность необходима во избежание неоднозначности, когда неизвестно к какой записи таблицы можно обратиться, если в таблице есть повторяющиеся записи (две записи имеют одинаковые значения во всех полях таблицы).

2. Что такое отношение (связь) между таблицами (relationship)? Пример

база данных таблица связь фото

база данных отношение таблица фото

Рис. 2. Связь (отношение) между полями таблиц

3. Что такое внешний ключ (foreign key)? Пример

Внешний ключ – это одно или несколько полей (атрибутов), которые являются первичными в другой таблице и значение которых заменяется значениями первичного ключа другой таблицы.

4. Что такое рекурсивный внешний ключ?

Рекурсивный внешний ключ – это внешний ключ, который ссылается на одну и ту же таблицу, к которой он принадлежит. В этом случае поле (атрибут), которое соответствует внешнему ключу, есть ключом одного и того же отношения (связи).

5. Могут ли первичный и внешний ключи быть простыми или составными (сложными)?

Первичный, вторичный и внешний ключи могут быть как простыми так и составными (сложными). Простые ключи – это ключи, которые содержат только одно поле (один атрибут). Составные (сложные) ключи – это ключи, которые содержат несколько полей (атрибутов).

6. Какое отличие между искусственным и естественным ключом? Пример

Естественной ключ обеспечивает уникальность из самой сущности предметной области. Бывают случаи, когда значения записей некоторого поля (полей) таблицы есть уникальными. Это поле может быть естественным ключом.

Искусственный ключ вводится дополнительно для обеспечения уникальных значений. Чаще всего искусственный ключ есть полем типа счетчик (counter). В таком поле, при добавлении новой записи (строки) в таблицу, значение счетчика увеличивается на 1 (или другую величину). Если запись удалить из таблицы, то максимальное значение счетчика строк уже не уменьшается, а остается как есть. Как правило, за этим все следит система управления базами данных.

база данных таблица фото

7. Какие существуют способы выбора первичного ключа?

Существует 3 способа выбора первичного ключа:

  • использовать поле-инкремент (поле-счетчик) как искусственный ключ;
  • выбрать из данных одно поле, которое может обеспечить уникальность;
  • выбрать из данных несколько полей, которые могут обеспечить уникальность. В этом случае ключ еще будет называться сложным (составным).

Если между таблицами есть связь, то одна из них может быть главной (master), а другая подчиненной (detail). Главная таблица отображает все записи, которые помещаются в ней. Подчиненная таблица отображает только те записи, которые соответствуют значению ключа главной таблицы, который на данный момент есть активным (текущим). Если изменяется текущая запись главной таблицы, то изменяется множество доступных записей подчиненной таблицы.

9. Какие существуют типы отношений (связей) между таблицами?

Существует 4 основных типа отношений между таблицами:

Читайте также: