Как создать связь один к одному в MS SQL Server

Как сделать связь один к одному в MS SQL Server

Для создания связи один к одному (1:1) в MS SQL Server, вы можете использовать внешний ключ и уникальное ограничение. Вот пример того, как это можно сделать:


CREATE TABLE Table1 (
    ID INT PRIMARY KEY,
    Data VARCHAR(255)
);

CREATE TABLE Table2 (
    ID INT PRIMARY KEY,
    Data VARCHAR(255),
    Table1ID INT,
    CONSTRAINT FK_Table2_Table1 FOREIGN KEY (Table1ID) REFERENCES Table1 (ID)
);

ALTER TABLE Table2
ADD CONSTRAINT UQ_Table2_Table1ID UNIQUE (Table1ID);

В этом примере у нас есть две таблицы - `Table1` и `Table2`. `Table2` имеет внешний ключ `Table1ID`, который ссылается на первичный ключ `ID` таблицы `Table1`. Мы также добавляем уникальное ограничение на столбец `Table1ID` в таблице `Table2`, чтобы гарантировать, что каждая запись в `Table2` будет связана только с одной записью в `Table1`.

Детальный ответ

Как сделать связь один к одному в MS SQL Server

Создание связи один к одному (one-to-one) в MS SQL Server позволяет установить связь между двумя таблицами на основе общего ключа. В этой статье мы рассмотрим подробный процесс создания такой связи и дадим примеры кода.

Создание таблиц

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

Приведем пример кода для создания двух таблиц:


CREATE TABLE Table1
(
    Id1 INT PRIMARY KEY,
    Name VARCHAR(50)
)

CREATE TABLE Table2
(
    Id2 INT PRIMARY KEY,
    Description VARCHAR(100)
)
    

Добавление ограничений внешнего ключа

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

Примеры кода ниже показывают, как создать ограничения внешнего ключа для связи один к одному:


ALTER TABLE Table1
ADD CONSTRAINT FK_Table1_Table2
FOREIGN KEY (Id1)
REFERENCES Table2(Id2)

ALTER TABLE Table2
ADD CONSTRAINT FK_Table2_Table1
FOREIGN KEY (Id2)
REFERENCES Table1(Id1)
    

В приведенном коде мы создаем ограничение внешнего ключа FK_Table1_Table2 в таблице Table1, которое связывает поле Id1 с полем Id2 в таблице Table2. Затем мы создаем ограничение внешнего ключа FK_Table2_Table1 в таблице Table2, связывающее поле Id2 с полем Id1 в таблице Table1.

Тестирование связи

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


INSERT INTO Table1 (Id1, Name)
VALUES (1, 'John')

INSERT INTO Table2 (Id2, Description)
VALUES (1, 'Employee')
    

Теперь мы можем выполнить следующий запрос для извлечения связанной информации из обеих таблиц:


SELECT Table1.Name, Table2.Description
FROM Table1
INNER JOIN Table2 ON Table1.Id1 = Table2.Id2
WHERE Table1.Id1 = 1
    

В результате выполнения этого запроса мы получим запись "John" из таблицы Table1 и запись "Employee" из таблицы Table2, связанные по полю Id1.

Сводка

Создание связи один к одному в MS SQL Server включает в себя создание двух таблиц с уникальным идентификатором и добавление ограничений внешнего ключа. Созданная связь позволяет связывать записи из обеих таблиц и извлекать связанную информацию с помощью соединения таблиц.

Видео по теме

Работа с MS SQL Server Management Studio. Создание отношения "Один к одному".

Уроки по SQL | Создание таблиц, добавление данных | Связь один к одному

SQL Урок 7 | Создание отношений (связей) между таблицами | Для Начинающих

Похожие статьи:

Как создать связь один к одному в MS SQL Server

Как создать базу данных MS SQL Server: пошаговое руководство для новичков