Чтобы создать связь «многие к одному» по внешнему ключу в SQL, вам потребуются две таблицы, внешний ключ одной из которых будет ссылаться на первичный ключ другой таблицы. Вот несколько способов добиться этого, а также примеры кода:
-
Метод 1: использование оператора CREATE TABLE:
CREATE TABLE Customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(50) ); CREATE TABLE Orders ( order_id INT PRIMARY KEY, order_date DATE, customer_id INT, FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) ); -
Метод 2: использование оператора ALTER TABLE:
CREATE TABLE Customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(50) ); CREATE TABLE Orders ( order_id INT PRIMARY KEY, order_date DATE, customer_id INT ); ALTER TABLE Orders ADD CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES Customers(customer_id); -
Метод 3. Определение встроенного внешнего ключа:
CREATE TABLE Customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(50) ); CREATE TABLE Orders ( order_id INT PRIMARY KEY, order_date DATE, customer_id INT REFERENCES Customers(customer_id) ); -
Метод 4. Использование ключевого слова CONSTRAINT:
CREATE TABLE Customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(50) ); CREATE TABLE Orders ( order_id INT PRIMARY KEY, order_date DATE, customer_id INT, CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) );
Все эти методы достигают одного и того же результата: создают связь «многие к одному» внешнего ключа между таблицами «Клиенты» и «Заказы», где несколько заказов могут быть связаны с одним клиентом.