MySQL. Связи между таблицами. JOIN’ы

Главная » Видеоуроки » MySQL » MySQL. Связи между таблицами. JOIN’ы

В прошлом уроке мы создали базу данных sport и добавил в нее три таблицы (countries, sports и teams). При этом мы установили связь между таблицами по механизму внешних ключей. Но мы не учли одну проблему — как быть, если мы пытаемся удалить/обновить данные в связанных таблицах. В этом уроке мы немного модифицируем нашу базу данных и сделаем несколько запросов из двух таблиц одновременно.

Чтобы отобразить поведение данных в дочерних таблицах при изменении/удалении данных из связующей родительской таблицы, необходимо при объявлении внешнего ключа дописать ключевые слова — on update cascade on delete restrict. В данном случае мы подразумеваем, что при обновлении данных в родительской таблице данные в дочерней таблицы также будут обновляться, каскадно. А удаление запрещено (restrict). Возможны и другие варианты, например, set null — т.е при удалении поле в дочерней таблице будет установлено в null.
Также мы рассмотрим inner join и right join (также существует left join, похожий по своей сути на right join).
Результатом запроса из двух таблиц при inner join будет общий набор данных из двух таблиц.
При left join в результат попадут все данные из первой таблицы и данные, попавшие под выполнение условия, из второй таблицы. Результирующий набор будет дополКнен данными из второй таблицы со значением NULL.

Подписаться на рассылку

Будьте в курсе - получайте последние статьи на свой email

Ваша подписка успешно оформлена

Pin It on Pinterest

Share This