Самоучитель. Курс SQL. Базы данных. ORACLE. Илья Леонидович Хохлов. Читать онлайн. Newlib. NEWLIB.NET

Автор: Илья Леонидович Хохлов
Издательство: Автор
Серия:
Жанр произведения:
Год издания: 1985
isbn:
Скачать книгу
Вывести список сотрудников, фамилия которых начинается на букву «И».

      8. Вывести список блюд столовой, цена которых в диапазоне от 70 до 100 рублей. Результат упорядочить по цене, по убыванию.

      9. Вывести список блюд столовой, которые готовятся в собственной столовой организации, а не закупаются. У таких строчек указан повар (в столбце CookID присутствует идентификатор повара). Результат отсортировать по наименованию блюда.

      Ещё больше практики и интересных задач в моем Telegram канале: https://t.me/sql_oracle_databases

      9. Соединения таблиц с помощью JOIN

      9.1. Что такое соединения. Назначение соединений

      Почти всегда при выборке из базы данных недостаточно информации одной таблицы. Часто нужно выводящиеся данные одной таблицы дополнять сведениями из другой.

      При выполнении запроса SELECT из таблицы продаж, среди прочих, мы получим столбцы «артикул реализованного товара» и «количество». В отчете, для которого мы составляем SQL–запрос, необходимо отображать не только артикул, но еще и название товара и даже единицу измерения. Но что же делать, эти сведения отсутствуют в таблице продаж. Эти данные лежат в совсем другой таблице – в таблице «товары»!

      Для того, чтобы в результате выполнения запроса получить больше данных о товаре, (чтобы выводился не только его артикул), но еще и наименование и единица измерения, мы к данным из таблицы «продаж» добавим данные из таблицы «товары». Каждая выводящаяся строчка из таблицы продаж дополнится столбцами из таблицы «товары», того товара, артикул которго указан в выводящейся строчке из таблицы «продаж».

      Для того, чтобы к данным, выводящимся из одной таблицы, уметь добавлять информацию из другой, в языке SQL существуют соединения (джоины) таблиц. Рассмотрим типы соединений.

      9.2. LEFT JOIN. Левое внешнее соединение

      При таком типе соединиения, данные из таблицы, которая указана в SQL–запросе левее (относительно фразы LEFT JOIN) будут выведены все. Запомнить – просто!

      К этим данным будут присоединены данные второй таблицы, расположенной в запросе правее. Поясню на примере. Пусть нам нужно вывести сотрудников и их автомобили. Так как цель задачи в первую очередь вывести сотрудников и во втором столбце вывести их автомобили (при их ниличии), то выборка будет именно из таблицы сотрудников. И уже к выводящимся сотрудникам приджоиним их автомобили. Давайте рассмотрим таблицы:

      В таблице «Автомобили сотрудников» столбец «ID» – это всего лишь сквозной идентификатор, первичный ключ (номер машины по-порядку). Он нас сейчас не интересует. А вот столбец «ID_PERS» – это внешний ключ, ссылающийся на таблицу «Сотрудники». Он нам сейчас будет нужен. Другими словами, в графе «ID_PERS» указан идентификатор сотрудника, которому принадлежит автомобиль. Согласно нему видно, что BMW X3 и Ford Mondeo принадлежат Петровой Надежде Анатольевне. А у Первого Николая Николаевича, сотрудника с идентификатором 4, нет ни одного автомобиля.

      Конец ознакомительного фрагмента.

      Текст предоставлен ООО «ЛитРес».

      Прочитайте эту книгу целиком, купив