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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

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

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

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

Например, у нас есть группировка автомобилей по марке.

В нашей таблице есть несколько марок машин; теперь попробуйте представить ситуацию, когда в этой таблице были бы машины всех возможных марок.

Для того чтобы установить критерии отбора результатов группировки, в языке SQL есть специальный оператор HAVING, используемый совместно с GROUP BY.

Синтаксис

Здесь после HAVING условие — это условие ограничения на вывод групп.

Примеры

Сгруппировать данные в таблице AUTO по цвету (COLOR), вывести только группы красных авто и синих.

Рисунок 106. Группировка по цвету: таблица AUTO

Сгруппировать данные в таблице AUTO по марке, найти количество в группе, выбрать только группы, где больше одного авто.

Рисунок 107. Группировка по первой букве

Сгруппировать данные по первой букве имени (FIRSTNAME), найти все группы, где средний возраст (YEAROLD) людей (MAN) больше 29 лет.

Рисунок 108. Использование HAVING: запрос

Дубли строк

В ORACLE SQL существует специальный идентификатор для каждой строки таблицы — это колонка ROWID, уникальный идентификатор строки.

Что такое ROWID? Уникальный идентификатор: состоит из номера объекта (32 бита), относительного номера файла (10 бит), номера блока (22 бита) и номера строки (16 бит).

Как использовать ROWID? Если нет другого уникального идентификатора, первичного ключа, то можно опираться на ROWID.

Пример работы с ROWID — находим дубли.

Пример работы с ROWID — находим количество повторенийю

Пример работы с ROWID — сортировка.

Для удаления дубликатов строк в таблице без первичного ключа можно обратиться именно к ROWID-колонке.

Пример удаления дублей из таблицы AUTO

В этом примере группируем таблицу AUTO по всем колонкам, находим MAX (ROWID) сгруппированных записей и удаляем те записи, ROWID которых нет в сгруппированном наборе данных.

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

• Оператор HAVING нельзя использовать в запросах без GROUP BY.

• Оператор HAVING возможно также применять вместе c сортировкой ORDER BY.

Синтаксис

Примеры

Сгруппировать данные в таблице AUTO по цвету, найти количество авто в каждой группе, отсортировать по цвету.

Сгруппировать данные в таблице AUTO по цвету, найти количество авто в каждой группе.

Отсортировать количество авто в каждой группе.

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

Есть ли другие способы удаления дублей из таблиц?

Да, например с использованием EXIST, с использованием аналитических функций.

Используем EXIST:

Будет ли работать HAVING в запросах с несколькими таблицами?

Да, ограничений нет.

Пример запроса:

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

1. Напишите запрос, который группирует автомобили по марке, находит количество авто каждой марки и выводит на экран только марки авто BMW, LADA — воспользуйтесь HAVING.
2. Напишите запрос, который бы выводил дублирующиеся строки из таблицы CITY.
3. Напишите запрос, который бы удалял дубликаты строк из таблицы MAN.

Шаг 35. Подзапрос для множеств WHERE IN SELECT

Введение

Ранее мы уже встречались с оператором IN в запросах SQL в инструкции WHERE, в качестве фильтра по перечислению значений.

Сейчас мы познакомимся с еще одним способом использования IN, который достаточно часто применяется на практике.

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

Важным свойством использования IN является то, что в качестве источника значений для списка оператора может являться другой подзапрос.

Вспомните синтаксис запроса с инструкцией IN, который мы проходили ранее.

SELECT * или колонки через запятую FROM таблиц WHERE имяколонки IN (перечень значений).

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

Синтаксис

Примеры

Вы помните, по каким колонкам связаны таблицы в нашей схеме? Если нет, то посмотрите, пожалуйста, на схему ниже.

AUTO — > MAN = PHONENUM

CITY — > MAN = CITYCODE

Это может понадобиться при рассмотрении примеров.

Выбрать все машины * AUTO, где владельцам (MAN) больше 35 лет (YEAROLD). Использовать IN с подзапросом.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x