[МУЗЫКА] [МУЗЫКА] Давайте рассмотрим более сложный вариант оператора SELECT, в котором будут участвовать несколько таблиц. Один из вариантов: это перечислить несколько таблиц после ключевого слова FROM. В таком случае будет выполняться декартово произведение этих таблиц. Эта операция соответствует операции реляционной алгебры, о которой мы говорили с вами в одном из предыдущих модулей. Следующая операция, использующая несколько таблиц, это операция соединения. Она записывается при помощи ключевого слова JOIN, которым мы соединяем две таблицы. Мы пишем SELECT, дальше указываем поля, которые могут браться из обеих таблиц. Потом пишем слово FROM, одна таблица, JOIN, другая таблица, ON и после ключевого слова ON мы указываем критерий соединения таблиц. Соединение таблиц бывает внутренним и внешним. Если мы говорим о внутреннем соединении, то результатом такого соединения будут только те строки, для которых в обеих таблицах нашлись строки, соответствующие критериям соединения, которые мы указали. Рассмотрим пример. На экране указан синтаксис для простых операций внутреннего соединения. Первый пример показывает вам операцию соединения при помощи декартового соединения и последующей выборки, а второй пример делает ровно ту же самую выборку из исходных таблиц, но при помощи операции внутреннего соединения. Чаще всего операция соединения производится по равенству указанных полей в двух таблицах. Примером использования внутреннего соединения будет задача найти список курсов и назначенных для этих курсов дат экзамена. Для этого мы соединяем таблицу «Курсы» и таблицу с экзаменом — «Экзаменационную ведомость», и соединяем их по совпадающим полям: идентификатор курсов в таблице «Курсы» и идентификатор курсов в таблице «Экзаменационная ведомость». Соединять по какому-то критерию можно не только две таблицы. В операции соединения могут участвовать три или более таблиц. Пример, в котором мы соединяем таблицы курсов, экзаменов и преподавателей вы видите на текущем слайде. Обратите внимание на то, в каком порядке указаны таблицы и как указаны критерии для соединения. Соединять таблицы можно не только по равенству. Критерием соединения на данном слайде было неравенство двух полей. Мы рассмотрели все возможные пары студентов, которые можно составить из таблицы «Студент». Кроме того, данный пример иллюстрирует, что в операции соединения могут участвовать не обязательно разные таблицы. Можно соединять одну таблицу с самой собою, указывая какой-то критерий соединения. Мы с вами производили внутреннее соединение таблиц, то есть мы брали только те строки из обеих таблиц, для которых нашлось продолжение в другой таблице. А что же стало с остальными строками? Например, когда мы соединяли название курсов с экзаменационной ведомостью, то у нас могли пропасть названия курсов, для которых еще не определена дата экзамена. Если же нам не хочется терять такие строки, то мы можем использовать операции внешнего соединения. Операции внешнего соединения бывают левыми и правыми, в зависимости от того, на какой таблице они основываются и строки какой таблицы будут выведены полностью. Если мы используем операцию левого соединения, то все строки первой таблицы, упомянутые в соединении, будут выведены независимо от того, нашлось им продолжение или нет. Если продолжение для строки нашлось, то оно берется из второй таблицы, если продолжение во второй таблице не нашлось, то строки будут дополнены незаданными значениями. Если мы рассматриваем правостороннее соединение, то все будет наоборот. За основу берутся строки правой таблицы, которые выводятся целиком, и будет дополнена строками левой таблицы в том месте, где это удовлетворяет критериям соединения. Остальные же строки будут дополнены не заданными значениями. Таким образом, мы рассмотрели с вами правило соединения нескольких таблиц. [БЕЗ_ЗВУКА]