Как правильно задать foreign key в SQL Server

Чтобы задать внешний ключ (foreign key) в SQL Server, используйте констрейнт FOREIGN KEY при создании таблицы или в уже существующей таблице с помощью оператора ALTER TABLE.


-- Пример создания внешнего ключа в новой таблице
CREATE TABLE Таблица1 (
    Колонка1 INT PRIMARY KEY,
    Колонка2 INT,
    FOREIGN KEY (Колонка2) REFERENCES Таблица2(Колонка2)
);

-- Пример добавления внешнего ключа в существующую таблицу
ALTER TABLE Таблица1
ADD CONSTRAINT FK_Таблица1_Таблица2 FOREIGN KEY (Колонка2) REFERENCES Таблица2(Колонка2);
    

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

Как задать foreign key в SQL Server

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

Чтобы задать внешний ключ в SQL Server, нужно выполнить следующие шаги:

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

Перед тем, как задать внешний ключ, необходимо сначала создать таблицу, в которой вы хотите установить связь с другой таблицей. Ниже приведен пример создания таблицы "Orders":


CREATE TABLE Orders (
    OrderID int PRIMARY KEY,
    ProductID int,
    Quantity int
);
    

2. Создание связанной таблицы

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


CREATE TABLE Products (
    ProductID int PRIMARY KEY,
    ProductName varchar(255),
    Price decimal(10, 2)
);
    

3. Добавление внешнего ключа

После создания обеих таблиц, вы можете добавить внешний ключ, чтобы связать столбцы таблиц между собой. Для этого используется оператор ALTER TABLE с ключевым словом FOREIGN KEY. Ниже приведен пример добавления внешнего ключа "ProductID" в таблицу "Orders", который ссылается на столбец "ProductID" в таблице "Products":


ALTER TABLE Orders
ADD FOREIGN KEY (ProductID) REFERENCES Products(ProductID);
    

В этом примере "ProductID" - это столбец, который связывает обе таблицы. С помощью ключевого слова FOREIGN KEY мы указываем SQL Server, что столбец "ProductID" является внешним ключом. Затем с помощью ключевого слова REFERENCES мы указываем таблицу и столбец, на который ссылается внешний ключ.

4. Проверка внешнего ключа

После добавления внешнего ключа, SQL Server проверяет его наличие и соответствие при выполнении операций вставки, обновления и удаления данных. Если значение внешнего ключа не найдено в таблице, на которую он ссылается, SQL Server не разрешит выполнение операции или выдаст ошибку.

Пример использования внешнего ключа

Представим, что у нас есть следующие записи в таблице "Products":


ProductID | ProductName | Price
-------------------------------
1         | Keyboard    | 20.00
2         | Mouse       | 10.00
3         | Monitor     | 150.00
    

А такие записи в таблице "Orders":


OrderID | ProductID | Quantity
-----------------------------
1       | 1         | 5
2       | 2         | 3
3       | 4         | 2
    

Обратите внимание, что запись с OrderID = 3 имеет несуществующее значение ProductID = 4. При попытке выполнить операцию добавления записи, SQL Server выдаст ошибку, так как она нарушает целостность внешнего ключа.

Вот и всё! Теперь вы знаете, как задать внешний ключ в SQL Server. Внешние ключи обеспечивают связи между таблицами и помогают поддерживать целостность данных. Использование внешних ключей является важным аспектом в проектировании баз данных.

Видео по теме

Первичный ключ, внешний ключ, суррогатный ключ / Илья Хохлов

11 - Внешние ключи (Foreign Keys) - Уроки PostgreSQL

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

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

🔍 Как написать SELECT в SQL: полное руководство с примерами и советами!

Как правильно задать id в SQL для оптимизации

Как правильно задать foreign key в SQL Server