What Is SQL Foreign Key and How to Use It
SQL Foreign Key - это ограничение (constraint) базы данных, которое связывает столбец или группу столбцов одной таблицы с другой таблицей, устанавливая связь между записями в этих таблицах. Эта связь определяет, что значение в столбце одной таблицы должно соответствовать значению в столбце другой таблицы.
Пример использования SQL Foreign Key:
Предположим, у нас есть таблица "users" и таблица "articles". У каждой записи в таблице "articles" есть соответствующий "user_id", который относится к записи в таблице "users". Мы можем использовать SQL Foreign Key, чтобы связать эти две таблицы следующим образом:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
CREATE TABLE articles (
id INT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
body TEXT NOT NULL,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);
Обратите внимание на то, что мы добавили ограничение в конце определения таблицы "articles", используя ключевое слово FOREIGN KEY и указав столбец, к которому мы хотим ссылаться в другой таблице, а именно, "user_id". После этого мы используем ключевое слово REFERENCES, чтобы указать таблицу и столбец, к которому мы хотим ссылаться, т.е "id" в таблице "users".
Теперь, если мы попытаемся добавить запись в таблицу "articles" с несуществующим "user_id", мы получим ошибку. Это происходит потому, что ограничение Foreign Key не позволяет добавлять записи, которые не имеют соответствующего значения в другой таблице.
Приведем еще пример, в котором мы добавим ограничение SQL Foreign Key в таблицу существующей базы данных. Пусть у нас есть таблицы "customers" и "orders", и каждой записи в таблице "orders" соответствует запись в таблице "customers". Для создания связи между этими таблицами мы можем использовать следующий SQL-запрос:
ALTER TABLE orders
ADD CONSTRAINT fk_orders_customers
FOREIGN KEY (customer_id)
REFERENCES customers(id);
Здесь мы используем ключевое слово ALTER TABLE, чтобы изменить таблицу "orders" путем добавления ограничения Foreign Key. Мы задаем имя этому ограничению с помощью ключевого слова CONSTRAINT и указываем столбец "customer_id", который должен ссылаться на столбец "id" в таблице "customers", используя ключевое слово REFERENCES.
SQL Foreign Key является очень важным инструментом в базах данных, так как позволяет легко устанавливать связи между таблицами и обеспечивает целостность данных.