SQL без слёз

Быстрое изучение SQL для профессионального роста

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

Из книги вы узнаете:

  • что такое SQL, СУБД, типы данных, объекты базы данных;
  • группы команд: DDL, DML, DCL и TCL;
  • что такое первичные и внешние ключи, ограничения, функции, операторы и т.д.

Получить книгу можно бесплатно.

Получить книгу
SQL без слёз

Что вы найдете в этой книге?

Краткое содержание

  • 1 Введение
  • 2 Программное обеспечение
  • 3 Тестовые данные для работы
  • 4 Теоретические аспекты
  • 5 Основные моменты
  • 6 Оператор CREATE TABLE
  • 7 Оператор ALTER TABLE
  • 8 Первичные и внешние ключи
  • 9 Оператор COMMENT
  • 10 Обработка транзакций
  • 11 Оператор SELECT
  • 12 Оператор FROM
  • 13 Оператор AS (псевдонимы)
  • 14 Оператор || (конкатенация)
  • 15 Оператор WHERE (фильтрация данных)
  • 16 Арифметические операторы
  • 17 Операторы сравнения
  • 18 Логические операторы
  • 19 Сортировка записей (ORDER BY)
  • 20 Подзапросы (SUBQUERIES)
  • 21 Оператор INSERT
  • 22 Оператор UPDATE
  • 23 Оператор DELETE
  • 24 Оператор TRUNCATE TABLE
  • 25 Оператор DROP
  • 26 Оператор MERGE
  • 27 Агрегатные функции
  • 28 Группировка данных (GROUP BY)
  • 29 Сложные группировки
  • 30 Фильтрация групп (HAVING)
  • 31 Комбинированные запросы
  • 32 Предикаты ANY (SOME) / ALL
  • 33 Объединение таблиц (JOIN)
  • 34 Обобщённое табличное выражение (WITH)
  • 35 Функции преобразования
  • 36 Математические функции
  • 37 Работа с датой и временем
  • 38 Символьные/строчные функции
  • 39 Условные выражения
  • 40 Оконные функции
  • 41 Представления (VIEW)
  • 42 Управление доступом к данным
  • 43 Заключение
  • 44 Полезные ресурсы

Получите книгу прямо сейчас

Книга распространяется на бесплатной основе, поэтому вы можете загрузить её прямо сейчас нажав на кнопку «Загрузить» или можете перейти в репозиторий на сайте GitHub и загрузить книгу с сервиса.

Если вам понравится книга и вы найдёте её полезной и познавательной, хочу попросить вас оставить свой отзыв на странице книги или ВКонтакте.

Загрузить

Некоторые страницы из книги

Группировка данных (GROUP BY)

Оператор GROUP BY используется в SQL-запросе тогда, когда необходимо выполнить группировку данных по одному или нескольким столбцам. Группировка данных позволяет выполнить подсчёт строк, общую сумму, вычислять максимальное, минимальное и среднее значение, при этом не извлекая все данные из таблицы.

Когда используется оператор GROUP BY, то строки, которые возвращаются в результирующем наборе называются - группами, так как одна группа объединяет несколько строк, которые объединены по каким-то признакам.

Синтаксис:

Список столбцов в блоках SELECT и GROUP BY должен быть одинаковый, иначе будет получена ошибка. В исключение входят агрегатные функции, их не нужно указывать в блоке GROUP BY.

  • column_list – список столбцов;
  • aggregate_function – имя агрегатной функции SUM(), COUNT(), AVG(), MAX(), MIN() и т.д.;
  • column_name – имя столбца, значения которого передаются в агрегатную функцию;
  • schema – наименование схемы, в которой находится объект;
  • table_name – имя таблицы;
  • condition_filter – условия для фильтрации.

Сложные группировки

Ранее был изучен оператор GROUP BY, он позволяет группировать данные по одному или нескольким столбцам, но как бы не был хорош GROUP BY, он не умеет выполнять операции агрегации на множественном уровне иерархии. Другими словами, мы можем получить агрегатные значения для полученных групп, но не можем получить общее агрегатное значение для этих групп.

Для решения таких задач используют операторы ROLLUP и CUBE, они очень похожи, но имеют одно колоссальное различие. Оператор ROLLUP генерирует агрегатные значения для выбранных столбцов иерархическим образом, а оператор CUBE, наоборот, выполняет генерацию агрегатных значений, которые содержат все возможные комбинации указанных столбцов.

Также существует дополнительный оператор GROUPING SETS. Это расширение оператора GROUP BY, которое используется для одновременного создания нескольких наборов группировки данных.

Оператор ROLLUP

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

Объединение таблиц (JOIN)

Это один из основных механизмов, который позволяет выполнять объединение таблиц на лету и получать необходимые данные. Объединение таблиц — это самые мощные операции, которые можно выполнить при помощи оператора SELECT, поэтому каждый разработчик, аналитик или администратор базы данных должен понимать, как работает этот механизм.

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

Существует несколько видов объединений таблиц:

  • внутреннее объединение (INNER JOIN);
  • левое внешнее объединение (LEFT OUTER JOIN);
  • правое внешнее объединение (RIGHT OUTER JOIN);
  • полное внешнее объединение (FULL OUTER JOIN);
  • перекрёстное объединение (CROSS JOIN);
  • само объединение (SELF JOIN);
  • естественное объединение (NATURAL JOIN).

Что такое оконные функции?

Оконные функции — это очень мощный инструмент, с помощью которого можно решать большое количество задач, благодаря тому что их можно применять в таких блоках, как: SELECT, WHERE, GROUP BY, HAVING или ORDER BY

Оконные функции позволяют выполнить ряд вычислений над определенным набором строк, которые объединены по какому-то конкретному признаку или признакам, как например: идентификатор клиента. Сразу можно предположить, что оконные функции выполняют такие же функции, как и GROUP BY, но нет, это не так.

Оконные функции значительно отличаются от GROUP BY и выполняют совершенно другие функции. Чтобы понять, чем же всё-таки отличаются оконные функции от GROUP BY давайте посмотрим несколько отличий:

  • оконные функции не уменьшают количество строк в финальном результате, и возвращают столько же значений, сколько получили на входе;
  • в отличие от GROUP BY, оконные функции могут обращаться к другим строкам;
  • оконные функции могут посчитать кумулятивные суммы и скользящие средние значение.

После того, как мы немного разобрались с отличием оконных функций от GROUP BY, у вас может возникнуть закономерный вопрос «Что значит оконные?».

Что такое представления?

Представления (VIEW) — это виртуальные таблицы, которые чаще всего называют вьюшками. В отличие от таблиц, которые хранят данные, представления хранят только SQL-запросы для динамического извлечения данных по мере надобности. Другими словами, когда происходит обращение к представлению, то сначала выполняется код, который хранится в этом представлении, а затем выводится результирующий набор данных.

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

Основные причины для применения представлений (VIEW):

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

Необходимое программное обеспечение

Часто задаваемые вопросы