JavaRush /Java блог /Random /Обзор книги “SQL. Сборник рецептов” Энтони Молинаро

Обзор книги “SQL. Сборник рецептов” Энтони Молинаро

Статья из группы Random
Всем привет. Тут собрались целеустремленные люди, которые хотят стать Java-разработчиками. И это логично: JavaRush для этого и создан. Чтобы стать полноценным разработчиком, вам нужно знать определенный перечень тем. Полный чеклист знаний, необходимых для Java разработчика, я описал в этой статье.Обзор книги “SQL. Сборник рецептов” Энтони Молинаро - 1Так вот: одна из обязательных тем в этом списке — знание языка SQL и знакомство хотя бы с одной реляционной БД. Хорошая новость: чтобы изучить SQL на уровне, достаточном для Java-разработчика, будет достаточно всего одной книги! Вариантов книг, подходящих для первичного погружения в SQL, огромное множество, но сегодня я бы хотел остановиться на “SQL. Сборник рецептов” Энтони Молинаро.Обзор книги “SQL. Сборник рецептов” Энтони Молинаро - 2Особенность книги в том, что помимо изучения SQL на базовом уровне вы познакомитесь сразу с несколькими базами данных и увидите, как различаются запросы для них и в чем заключаются особенности той или иной БД. В данной книге запросы рассматриваются для таких баз данных:
  • DB2;
  • Oracle Database;
  • PostgreSQL;
  • SQL Server;
  • MySQL.

Для кого предназначена книга

  • начинающий разработчик

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

  • опытный разработчик

Наверное, вы уже хорошо знакомы с построением SQL-запросов, но всё равно эта книга сможет вас приятно удивить и дополнить ваши знания. Ну или к примеру, вы переходите на проект с незнакомой вам реляционной базой данных. Тогда с помощью этой книги вы сможете провести аналогии с запросов знакомой вам БД к новой.

  • начинающий SQL-разработчик

Возможно, вы только задумываетесь о пути становления разработчика баз данных. Тогда эта книга отлично подойдет для вас! Вы сможете изучить основы SQL, рассмотренные для различных баз данных, и выбрать “свою” БД, которую в будущем будете изучать подробнее.

О чём книга

В данной книге глава за главой рассматриваются базовые SQL темы, а также различные задачи для SQL и их решения. Поэтому ее можно использовать как справочник: возникла задача — ищете подходящие пути ее развязки, после составляете свое решение под текущие условия. На страницах этой книги содержится свыше 150 рецептов. Да, именно рецептов для построения SQL-запросов: поэтому книга и носит такое название.Обзор книги “SQL. Сборник рецептов” Энтони Молинаро - 3Что делать при прочтении этой книги?
  1. Не бояться экспериментировать, ведь лишь методом проб и ошибок можно приобрести столь ценный опыт, поэтому практика, практика и ещё раз практика!
  2. Тестируйте. Я имею в виду то, что при прохождении данной книги лучше параллельно испытывать приведенные примеры запросов, которые благодаря этому будут хорошо откладываться в вашей памяти.
  3. Повторение — мать учения. Поэтому желательно ввести конспект, в котором вы сможете выписывать ключевые моменты и периодически их повторять, чтобы написание запросов в будущем не вызывало у вас никаких проблем.
  4. Нужно понимать, что новое не всегда значит лучшее. Если вы не используете некоторые из самых свежих возможностей SQL (например, оконные функции), это не означает, что ваш код неэффективен. Ведь существует множество примеров, когда традиционные решения SQL ничуть не хуже, а иногда даже лучше, чем новое решение.
  5. Не бойтесь экспериментировать. Подходите к работе творчески! Ведь все решения еще не придуманы: возможно, в вашей ситуации креативный подход станет лучшим.
Обзор книги “SQL. Сборник рецептов” Энтони Молинаро - 4А теперь давайте немного пройдёмся по содержанию книги:

1. Извлечение записей

Данная глава рассматривает первые, простейшие запросы. В примерах вы увидите:
  • как с помощью оператора WHERE можно выбрать строки в общее результирующее множество;
  • как присваивать псевдонимы (алиасы) столбцам результатов;
  • как можно использовать вложенный запрос для обращения к столбцам по псевдонимам;
  • как ограничивать число возвращаемых в результирующие строки;
  • как можно возвращать случайные строки и выявлять значения NULL.
Как правило, примеры довольно простые, но при этом и попадаются такие, которые смогут удивить и матерых разработчиков.

2. Сортировка результатов запроса

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

3. Работа с несколькими таблицами

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

4. Вставка, обновление, удаление

В данном пункте вы научитесь SQL-запросам для вставки, обновления и удаления данных. Также рассматриваются более интересные примеры — операции типа вставки строк одной таблицы в другую или использование связанных подзапросов при обновлениях. Вы поймете последствия присутствия значений NULL, узнаете о вставке в несколько таблиц, о команде MERGE и .т.д.

5. Запросы на получение метаданных

В этой главе рассказывается о построении запросов для получения доступа к метаданным используемой базы данных: полезно знать индексы, ограничения и таблицы схемы. Предложенные здесь простые запросы позволяют получать информацию о самой схеме. Кроме того, в этой главе показаны примеры «динамического SQL», т. е. SQL, сгенерированного SQL.

6. Работа со строками

Эта глава представляет способы для работы со строками. SQL никогда не был известен своими возможностями синтаксического разбора строк, но немного креатива в сочетании с широким набором предоставляемых различными БД функций позволяет достичь немалых успехов в этом деле. Собственно, с данной главы и начинается самое интересное. Некоторые примеры изрядно вас удивят. Например:
  • подсчет экземпляров символа в строке;
  • преобразование списков с разделителями и строк в строки таблицы;
  • создание списков с разделителями из строк таблицы;
  • разделение числовых и символьных данных строки, состоящей из буквенно-цифровых символов.

7. Работа с числами

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

8-9. Арифметика дат

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

10. Работа с диапазонами данных*

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

11. Расширенный поиск*

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

12. Составление отчетов и управление хранилищами данных**

Часто нам могут понадобиться специальные запросы для формирования отчетов. Эта глава и поможет нам в этом: тут вы рассмотрите примеры преобразования строк в столбцы и наоборот (отчеты с перекрестными ссылками), создание групп данных, создание гистограмм, вычисление простых и полных подсумм, агрегацию скользящего окна строк и группировку строк по заданному интервалу времени.

13. Иерархические запросы**

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

14. Всякая всячина

Ну и напоследок вы увидите все оставшиеся возможности, которые не вписались ни в одну из предыдущих глав, но при этом они не менее интересны и полезны. Также данная глава отличается от остальных тем, что предлагает решения только для конкретных СУБД. Это единственная глава в книге, где в каждом рецепте обсуждается только одна база данных. Сделано это, чтобы показать возможности, особенности конкретных СУБД (чтобы вы лучше прочувствовали разницу между ними). Плюсы книги:
  1. Много примеров.
  2. Отлично подходит для “первичного” погружения.
  3. Рассматриваются примеры для различных СУБД.
  4. Есть хороший перевод.
Минус: Не рассматриваются более сложные, специфические, редкие задачи/проблемы.

Аналоги книги

  1. “Изучаем SQL” — Алан Бьюли: тоже книга для первичного погружения в SQL c рассмотрением различных СУБД, но особый упор в ней делается на MySQL. Минус книги — недостаточное “разжевывание” новой информации.
  2. ”SQL: Руководство по изучению языка” — Крис Фиайли: книга, которая также рассматривает основы для различных баз данных. Отлично подойдёт новичкам, но если вы уже знакомы с SQL и вам нужно изучить более тонкие и серьезные моменты, то вам стоит поискать что-нибудь другое.
  3. “Head First — Изучаем SQL” — Линн Бейли: книга с очень низким порогом вхождения, доступно и подробно донесет многие основополагающие моменты (возможно, иногда даже слишком просто). Данная книга в примерах рассматривает не несколько баз данных, как аналоги выше, а одну — MySQL.

Итог

Если вы твердо решили стать Java-разработчиком, без изучения SQL вам никак. Но к счастью, нам не нужно его знать на таком уровне, как у БД разработчиков, и количество необходимых знаний в принципе можно покрыть лишь одной книгой по SQL. Рассмотренная сегодня книга — “SQL. Сборник рецептов”, или одна из представленных аналогов, может вам отлично дойти. Ну а выбор, что конкретно читать (или не читать) остается за вами)) P. S. Чтобы набить руку на практике написания SQL для решения различных задач, можно использовать вот этот сайт. P. S. S. А вот тут можно ознакомиться с распространенными вопросами по базам данных, желательно уже после после прочтения книги.
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ