Базы данных - модели, разработка, реализация


         

Внешние объединения - часть 4


  • SELECT READER.NAME_READER, EXEMPLARE.INV
  • FROM READER RIGHT JOIN EXEMPLARE ON READER.NUM_READER=EXEMPLARE.NUM_READER
  • Операция внешнего объединения, как мы уже упоминали, может использоваться для формирования источников в предложении FROM, поэтому допустимым будет, например, следующий текст запроса:

  • SELECT *
  • FROM ( BOOKS LEFT JOIN EXEMPLARE)
  • LEFT JOIN
  • (READER NATURAL JOIN EXEMPLARE)
  • USING (ISBN)
  • При этом для книг, ни один экземпляр которых не находится на руках у читателей, значения номера читательского билета и дат взятия и возврата книги будут неопределенными.

    Перекрестное объединение в трактовке стандарта SQL2 соответствует операции расширенного декартова произведения, то есть операции соединения двух таблиц, при которой каждая строка первой таблицы соединяется с каждой строкой второй таблицы.

    Операция запроса на объединение эквивалентна операции теоретико-множественного объединения в алгебре. При этом требование эквивалентности схем исходных отношений сохраняется. Запрос на объединение выполняется по следующей схеме:

  • SELECT - запрос
  • UNION
  • SELECT - запрос
  • UNION
  • SELECT - запрос
  • Все запросы, участвующие в операции объединения, не должны содержать выражений, то есть вычисляемых полей.

    Например, нужно вывести список читателей, которые держат на руках книгу "Идиот" или книгу "Преступление и наказание". Вот как будет выглядеть запрос:

    93

  • SELECT READER. NAMEJEADER
  • FROM READER. EXEMPLARE.BOOKS
  • WHERE EXEMPLARE.NUM_READER= READER.NUM_READER AND
  • EXEMPLRE.ISBN = BOOKS.ISBN AND
  • BOOKS.TITLE = "Идиот"
  • UNION
  • SELECT READER NAME_READER
  • FROM READER, EXEMPLARE.BOOKS
  • WHERE EXEMPLARE.NUM_READER= READER. NUMJEADER AND
  • EXEMPLRE.ISBN = BOOKS.ISBN AND
  • BOOKS.TITLE = "Преступление и наказание"
  • По умолчанию при выполнении запроса на объединение дубликаты кортежей всегда исключаются. Поэтому, если найдутся читатели, у которых находятся на руках обе книги, то они все равно в результирующий список попадут только один раз.




    Содержание  Назад  Вперед