Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала

Здесь есть возможность читать онлайн «Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 11, Жанр: Программирование, Базы данных, Прочая околокомпьтерная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Oracle SQL. 100 шагов от новичка до профессионала: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Oracle SQL. 100 шагов от новичка до профессионала»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Более 300 ответов на вопросы.
Более 500 практических заданий.
Более 1000 разобранных примеров.
Учебник справочник по языку SQL.

Oracle SQL. 100 шагов от новичка до профессионала — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Oracle SQL. 100 шагов от новичка до профессионала», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Рисунок 109. Пример запроса с IN SELECT

Выбрать все города (CITY), где есть записи из таблицы MAN. Использовать IN с подзапросом.

Рисунок 110. Пример запроса к CITY: запрос к MAN

Выбрать все записи из MAN, где люди проживают в городах (CITY) с населением (PEOPLES) больше 700 000 человек. Использовать IN с подзапросом.

Рисунок 111. Запрос с IN SELECT к таблице MAN

Важные замечания

Тип данных сравниваемого списка SELECT должен совпадать с типом данных колонки сравнения, иначе необходимо прибегнуть к преобразованию типов.

При конструкции IN c подзапросом игнорируются NULL-значения. Для работы с NULL-значениями необходимо использовать функцию преобразования NVL.

Вопросы учеников

Каким образом написать IN по нескольким колонкам, что-то подобное следующему запросу?

Нет, такой синтаксис классический SQL не поддерживает, так сделать не получится. Сравнение в IN осуществляется по одной колонке, но всегда можно использовать другие варианты. Hапример, конструкцию EXISTS.

Контрольные вопросы и задания для самостоятельного выполнения

1. Выбрать все машины (AUTO), где имя владельца MAN (fIStNAME) начинается с буквы А, использовать IN с подзапросом.

2. Выбрать все города (CITY), где есть записи из таблицы MAN и людям больше 35 лет (YEAROLD), использовать IN с подзапросом.

3. Выбрать все машины (AUTO), где возраст владельца больше 37 лет (YEAROLD) и длина имени больше пяти букв (FIRSTNAME), использовать IN с подзапросом.

День седьмой

Шаг 36. Подзапросы EXISTS

Введение

Как правило, запросы SQL с конструкцией EXISTS воспринимаются учениками как наиболее сложный материал.

Теория и практика

Итак, подзапрос с использованием EXISTS является наиболее сложным для понимания типом подзапроса в SQL.

Но мы попробуем разобраться, и здесь очень важно осознать, что подзапрос EXIST является предикатом, возвращает нам либо истину, либо ложь, то есть подзапрос с EXIST — это критерий того, будет на экран выведена данная строка либо нет. Если подзапрос возвращает хоть одну строку, то внешний запрос выводит данные — конкретную связанную строчку, если нет, данные не выводятся.

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

Рассмотрим синтаксис EXISTS

Здесь (SELECT 1 FROM таблица2 т2 WHERE t1.KEY = t2.KEY) является внутренним подзапросом, который либо возвращает строку, либо нет, отношением, влияющим на поведение внешнего запроса.

Если (SELECT 1 FROM таблица2 т2 WHERE t1.KEY = t2.KEY) возвращает какие-либо данные для внешнего запроса, тогда SELECT поля FROM таблица1 т1выводит соответствующую строку на экран.

Впрочем, гораздо проще всего понять работу EXIST на примерах.

Итак, примеры:

Вывести на экран все города * из таблицы CITY, для которых есть соответствующая запись таблицы MAN, использовать EXISTS, связь по полю CITYCODE.

Рисунок 112. Запрос c EXISTS к таблице MAN

Подзапрос EXISTS выбирает данные, связанные с внешним запросом по колонке CITYCODE, то есть для каждой возвращаемой строки внешнего запроса SELECT * FROM CITY проверяется по CITYCODE наличие такой строки во внутреннем запросе SELECT 1 FROM MAN m WHERE c.CITYCODE = m.CITYCODE.

Если подзапрос находит такую строку, то строчка из внешнего запроса выводится на экран.

Вывести имя и фамилию человека (FIRSTNAME, LASTNAME) из таблицы MAN, который проживал бы в городе с населением (PEOPLES) больше 1 миллиона человек. Использовать EXISTS.

Рисунок 113. Запрос c EXISTS к таблице MAN

Подзапрос EXISTS выбирает данные, связанные с внешним запросом по колонке CITYCODE, то есть для каждой возвращаемой строки внешнего запроса SELECT FIRSTNAME, LASTNAME FROM MAN m проверяется по CITYCODE наличие такой строки во внутреннем запросе SELECT 1 FROM CITY c WHERE c.CITYCODE = m.CITYCODE, в котором есть дополнительное условие на количество населения c.PEOPLES> 1 000 000. Если подзапрос находит такую строку, то строчка из внешнего запроса выводится на экран.

Важные замечания

Одним из важных правил использования конструкции EXISTS является объединение внутреннего подзапроса с внешним запросом по ключевым колонкам. Условия данного объединения надо внимательно писать: если неправильно задать эти параметры, ключевые колонки, то результат запроса будет неверным.

Также эффективно использовать EXIST с логическим операндом NOT, например, используя EXISTS, вывести на экран все города (*) из таблицы CITY, для которых нет соответствующей записи в таблице MAN, связь по полю CITYCODE.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Oracle SQL. 100 шагов от новичка до профессионала»

Представляем Вашему вниманию похожие книги на «Oracle SQL. 100 шагов от новичка до профессионала» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Oracle SQL. 100 шагов от новичка до профессионала»

Обсуждение, отзывы о книге «Oracle SQL. 100 шагов от новичка до профессионала» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x