Внешний ключ SQL используется для создания связи между двумя таблицами, что делает его ссылочным ключом. Внешний ключ — это ограничение, которое представляет собой столбец или комбинацию столбцов, которые используются для указания первичного ключа другой таблицы. Если в таблице есть первичный ключ, определенный для любого поля (полей), то у пользователя не может быть двух записей, имеющих одинаковое значение этого поля (полей).
SQL Foreign Ограничение ключа
Основная цель внешнего ключа состоит в том, что в столбцах, которые присутствуют в таблице первичного ключа, будут отображаться только те значения, а внешний ключ является ссылочным ключом в одной table внешний ключ должен соответствовать существующему первичному ключу в указанной таблице. Это принудительное использование внешнего ключа известно как ссылочная целостность.
Давайте разберемся с использованием внешнего ключа на примере.
Мы собираемся создать внешний ключ с ключевым словом create.
См. следующий синтаксис.
Создать таблицу имя_таблицы (тип данных Столбец1, тип данных Столбец2 , …… .., Тип данных столбца (n), Ограничение (имя ограничения) ИНОСТРАННЫЙ КЛЮЧ [столбец1, столбец2…] ССЫЛКИ [таблица_первых_ключей] (список_столбцов_таблицы основных_ключей)….);
#PARAMETERS
- Table_name: имя таблицы
- Тип данных столбца (n): имя столбца, связанного с его типом данных.
- Ограничение: это ключевое слово, и это необязательно.
- Имя ограничения: это имя ограничения, определяемое пользователем.
- Primary_key_table: это таблица, в которой находится первичный ключ.
- column_list_of_primary_key_table: Список столбцов, которые используются для создания первичного ключа в таблице.
См. следующий запрос.
Создание таблицы клиентов (Id целочисленный первичный ключ, имя varchar (20), возраст целое число, адрес varchar (25), целое число зарплаты);
В приведенных выше утверждениях мы создали Таблица клиентов с идентификатором в качестве первичного ключа.
Давайте создадим таблицу, которая будет иметь внешние ключи.
Создадим таблицу заказов (целое число Id, дата, дата, целое число Cust_id внешние ключи ссылаются на Customers (Id), Amount integer, Primary key (Id));
В приведенных выше инструкциях мы создали таблицу заказов с ID в качестве первичного ключа и Cust_id в качестве ссылочного ключа, т. е. внешний ключ, который относится к первичному ключу таблицы клиентов.
# Создание внешнего ключа с помощью оператора ALTER
Используется, когда таблица создается без использования какого-либо столбца в качестве внешнего ключа. Используя оператор alter, мы можем создать внешний ключ. Затем для этого используйте следующий синтаксис.
Изменить таблицу имя_таблицы ДОБАВИТЬ внешний ключ (столбец) ссылки имя_таблицы_отправки (первичный_ключ_отправочной_таблицы);
# ПАРАМЕТРЫ
- Table_name: Имя таблицы, которая будет содержать внешний ключ.
- ДОБАВИТЬ внешний ключ: Используется для создания внешнего ключа.
- Внешний ключ (столбец): Используется для создания столбца, который будет внешним ключом.
- Refer_table_name: Имя таблицы, на которую будет сделана ссылка.
- Primary_key_of_refer_table: Первичный ключ таблицы, на которую сделана ссылка.
Учитывать ранее созданные заказы столов. Предположим, что таблица заказов не содержит внешнего ключа. Итак, чтобы сделать внешний ключ, используйте следующие операторы.
Давайте создадим его.
Alter table orders ADD external key ( Cust_id) ССЫЛКИ НА КЛИЕНТОВ (Id);
С помощью приведенных выше инструкций создается внешний ключ с именем cust_id, который ссылается на первичный ключ, т.е. на идентификатор таблицы клиентов.
# Удаление внешнего ключа
Предположим, мы хотим удалить внешний ключ. Затем для этого используйте следующий синтаксис.
ALTER TABLE table_name DROP external key foreign_key_name;
#PARAMETERS
- table_name: Имя таблицы, содержащей первичный ключ.
- DROP: Имя ключевого слова, которое используется для отбрасывания.
- Внешний ключ: Имя ключевого слова, которое будет идентифицировать внешний ключ.
- Foreign_key_name: Имя внешнего ключа.
Предположим, мы хотим удалить ранее созданный внешний ключ.
Используйте следующие инструкции.
ALTER TABLE приказывает удалить внешний ключ cust_id;
Приведенный выше оператор удалил внешний ключ таблицы заказов, который был cust_id.
Наконец, пример ограничения внешнего ключа SQL завершен.