Как создать связи между таблицами в mysql?

Пользователь

от nicola , в категории: SQL , 3 года назад

Как создать связи между таблицами в mysql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kurt , 2 года назад

@nicola 

Чтобы создать связи между таблицами в MySQL, необходимо использовать внешние ключи. Внешний ключ - это столбец или набор столбцов в одной таблице, который ссылается на первичный ключ другой таблицы. Это позволяет указать связь между двумя таблицами.


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

1
2
ALTER TABLE table_name
ADD FOREIGN KEY (column_name) REFERENCES other_table (other_column);


Где table_name - название таблицы, в которую вы хотите добавить внешний ключ, column_name - название столбца, который будет использоваться в качестве внешнего ключа, other_table - название таблицы, на которую ссылается внешний ключ, а other_column - название столбца, который является первичным ключом в таблице other_table.


Например, чтобы создать связь между таблиц

Пользователь

от cayla , год назад

@nicola 

Для создания связей между таблицами в MySQL используется ключевое слово FOREIGN KEY (внешний ключ).


Для создания связи, нужно выполнить следующие действия:

  1. Создать таблицы, которые будут связаны друг с другом.
  2. Определить поле в родительской таблице, которое будет связано с полем в дочерней таблице. Обычно, это уникальный идентификатор в родительской таблице (PRIMARY KEY).
  3. Создать в дочерней таблице поле, которое будет связано с полем в родительской таблице. Обычно, это INTEGER-поле, которое будет хранить значение идентификатора из родительской таблицы.
  4. Определить нарушение целостности. В MySQL существует два варианта: ON DELETE и ON UPDATE. Например, если вы удаляете запись из родительской таблицы, то вы можете выбрать, что случится с соответствующей записью в дочерней таблице.
  5. Создание связи с помощью команды FOREIGN KEY.


Пример:


CREATE TABLE books ( id INTEGER PRIMARY KEY, title VARCHAR(50), author VARCHAR (50), genre VARCHAR(50) );


CREATE TABLE orders ( id INTEGER PRIMARY KEY, customer_name VARCHAR(50), book_id INTEGER, FOREIGN KEY (book_id) REFERENCES books(id) ON DELETE CASCADE );


В этом примере мы создаем две таблицы: books и orders. Затем мы создаем связь между ними, указываем, что поле book_id в таблице orders ссылается на поле id в таблице books. ON DELETE CASCADE означает, что если запись удаляется из таблицы books, то соответствующая запись будет удалена из таблицы orders.


Обратите внимание, что в дочерней таблице orders мы не указываем, что поле book_id является PRIMARY KEY (так как это не является PRIMARY KEY этой таблицы). Он связывается с полем id в таблице books, которое является PRIMARY KEY в родительской таблице.


Таким образом, создание связей между таблицами в MySQL довольно просто и позволяет определить отношения между различными наборами данных.