SQL — декларативный язык программирования, который используют для описания, изменения и извлечения информации в реляционных базах данных. Язык структурированных запросов популярен у программистов, разработчиков и администраторов баз данных. В этом обзоре собрали 6 книг, которые помогут на старте изучения SQL и при углублении в тему.

Читали ли вы какие-нибудь из них? Или, может, вы можете дополнить этот список? Делитесь в комментариях!

Алан Болье «Изучаем SQL»


Уровень: начинающие

Что в ней классного: Книга написана легким языком и не перегружена теорией — все знания применяются на практике в ходе изучения. Для каждой задачи приведено наглядное пособие с иллюстрациями и примерами решения задач. В конце каждой главы есть упражнения для применения теории на практике.


«Изучаем SQL» охватывает большинство тем, необходимых для начинающего разработчика в области баз данных, — от азов SQL и возможных применений языка до аналитических функций и работы с БД.

Вы изучите, как данные взаимодействуют с запросами, и примените инструкции для создания, управления и извлечения данных. Также разберетесь, как работают SQL-выражения и блоки, типы условий и подзапросы. Автор рассматривает особенности реализации SQL на серверах баз данных MySQL, Oracle Database, SQL Server.

Для закрепления полученных знаний Алан Болье создает учебную базу MySQL и приводит практические примеры запросов, охватывающие теорию.



Аллен Тейлор «SQL для чайников»


Уровень: начинающие

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


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

Также вы узнаете, как работает:

  • доступ к данным с помощью ODBC и JDBC,
  • XML-данные,
  • SQL и JSON,
  • процедурное программирование и хранимые модули,
  • обработка ошибок,
  • триггеры.

Аллен Тейлор — автор более 40 книг, его стаж в компьютерной индустрии — более 30 лет. Последний «SQL для чайников» — девятое издание бестселлера. Помимо написания обучающих книг, Тейлор читает лекции по компьютерным технологиям и ведет онлайн-курсы по работе с базами данных.

Уолтер Шилдс «SQL: быстрое погружение»


Уровень: смешанный

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


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

Автор разбирает создание среды обучения SQL, куда входят такие темы, как:

  • базовая терминология,
  • типы данных,
  • главные элементы и типология реляционных СУБД,
  • инструменты и стратегии SQL,
  • работа с запросами,
  • методы преобразования данных,
  • функции языка.

Автор работает с базами данных уже более 18 лет. Уолтер Шидс — основатель компании в сфере образования SQL Training Wheels. Параллельно обучению студентов Шидс работает над проектом Datadecided для Tableau, компании-разработчика BI-системы.

Энтони Молинаро, Роберт де Грааф «SQL. Сборник рецептов»


Уровень: смешанный

Что в ней классного: Авторы рассматривают особенности конкретных СУБД: Oracle, DB2, SQL Server, MySQL и PostgreSQL. Во втором издании учтены все изменения в синтаксисе и архитектуре актуальных реализаций SQL.


Сборник рецептов с удобной структурой: постановка задачи, решение с кодом и детальное объяснение. Книга научит использовать SQL для решения широкого круга задач: извлечение данных, операции внутри БД, передача данных по сети в приложения.

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

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

Брайан Сиверсон и Джоэл Мурах «Murach’s SQL Server 2019 for Developers»


Уровень: смешанный. Потребуется знание английского языка.

Что в ней классного: Последний раздел книги даст вам продвинутые навыки работы с SQL. Вы поймете, как работают представления, скрипты, хранимые процедуры, функции, триггеры, курсоры, транзакции, функции для работы с данными XML и BLOB.


«Murach’s SQL Server 2019 for Developers» не имеет русскоязычного перевода. Вы можете найти электронную или печатную версию на официальном сайте.

Книга разделена на 4 части, каждая из которых постепенно углубляет знания SQL. В первом разделе вы познакомитесь с основными понятиями и терминами, необходимыми для работы с любой реляционной БД. Узнаете, как выполнять SQL-запросы с помощью Microsoft SQL Server 2019 и Management Studio.

Во втором разделе освоите навыки получения, добавления, обновления и удаления данных. Научитесь использовать внешние объединения, сводные запросы и подзапросы.

Третья часть посвящена проектированию и реализации баз данных. Вы узнаете, как спроектировать БД и реализовать проект с помощью операторов SQL или Management Studio.

Руководство от издательства Murach’s будет полезно разработчикам приложений и администраторам баз данных, новичкам и тем, кто хочет углубить свои знания SQL.

Джоэл Мурах «Murach’s Oracle SQL and PL/SQL for Developers»


Уровень: смешанный. Потребуется знание английского языка.

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


Эта книга также не переведена на русский язык. Электронную или печатную версию можно найти на официальном сайте.

С помощью руководства издания Murach’s вы узнаете, как использовать Oracle Database и Oracle SQL Developer для выполнения SQL-запросов. Освоите проектирование баз данных и реализацию проекта с помощью операторов DDL (Data Definition Language).

Когда вы научитесь использовать SQL для работы с БД Oracle, сможете перенести большую часть изученного на другую СУБД: MySQL, DB2 или Microsoft SQL Server.

Джоэл Мурах в своей книге объясняет, как работать с типами данных timestamp, interval и large object. Читатели получат набор навыков работы с PL/SQL: как использовать процедурный язык Oracle, PL/SQL для создания хранимых процедур, функций и триггеров, управление транзакциями и блокировкой.

Для изучения «Murach’s Oracle SQL and PL/SQL for Developers» не нужно иметь знаний в области программирования. Тем не менее вы быстрее освоите материал, если у вас есть некоторый опыт разработки.

Возможно, эти тексты тоже вас заинтересуют:

RISC-V продолжает развиваться: перспективное будущее благодаря Китаю и Google
Перспективы китайских производителей чипов: компании объединяются для развития электронной промышленности в КНР
Геймерские материнские платы, жесткие диски и раритетный синтезатор: новые находки на испанской барахолке

Комментарии (19)


  1. GraDea
    25.01.2023 16:29
    +3

    В свое время очень зашла книга Рефакторинг SQL приложений Фаро. Скорее всего она и сейчас остается актуальной, несмотря на возраст.


  1. erogov
    25.01.2023 16:43
    +2

    «PostgreSQL. Основы языка SQL» Евгения Моргунова — учебник для тех, кто работает с PostgreSQL. В электронном виде доступен свободно.


    1. trump-card
      26.01.2023 16:10
      +1

      Ещё, от души рекомендую по Postgres вашу же книгу "POSTGRESQL 14 изнутри" и по следующей версии "POSTGRESQL 15 изнутри" (которая скоро выйдет) - на основе этих книг можно понять как устроены и другие СУБД.

      По оптимизации запросов, опять же Postgres, рекомендую "Оптимизация запросов PostgreSQL" Домбровская Г.Р, Новиков Б.А, Бейликова А.

      Ещё, для понимания устройства и работы СУБД "Распределенные данные. Алгоритмы работы современных систем хранения информации" Петров Алекс.

      Если интересно дальше углубиться в устройство СУБД, то "Проектирование и реализация систем управления базами данных" Сьоре Эдвард.

      Стали переводить хорошие книги. Раньше читал в основном на английском, теперь можно и на родном языке. Жду выхода "PostGIS в действии" Обе Р., Хсу Л.


  1. velipre_xella
    25.01.2023 18:07
    +2

    Не заметил на книжке Мураха плашки THE EXPERT’S VOICE® IN ORACLE. Не внушает поэтому доверия.

    Книга Молинаро и Граафа хорошая, но не для очень свежих версий СУБД. В ДБ2 и Оракел, например, для получения TOP N значений, завезли fetch first N rows only.

    Думаю, что новичок не будет сразу работать с несколькими СУБД, поэтому стоит брать книжку по конкретному диалекту SQL. Для T-SQL, например, книжки Ицика Бен-Гана, для Оракела - Kim Berg Hansen, говорят, неплохую книгу написал Practical Oracle SQL.


  1. dimirit
    25.01.2023 18:07

    Добрый день! Спасибо за подборку. Можете порекомендовать литературу по оптимизации запросов?


    1. lodz
      25.01.2023 18:18

      Здравствуйте! Некоторое значение имеет то, с какой СУБД вы работаете. В любом случае, блоки по оптимизации есть в следующих книгах:

      → Маpтин Грубеp «Понимание SQL»

      → Стефан Фаро, Паскаль Лерми «Рефакторинг SQL-приложений»

      → К. Дж. Дейт «SQL и реляционная теория. Как грамотно писать код на SQL»


      1. dimirit
        25.01.2023 19:07
        +1

        спасибо!


  1. commanderxo
    25.01.2023 19:23

    А что бы почитать про построение ETL систем? Чтоб не только базовый синтаксис SQL команд, а с упором на часто встречающиеся паттерны при необходимости синхронизировать данные между несколькими системами, включая историю изменений.


    1. velipre_xella
      25.01.2023 20:52

      SQL - это язык запросов, ETL только на нём реализовать почти нельзя, нужно использовать как минимум процедурное расширение. Т.е. хранимый код.

      ETL-решения только на хранимом коде, полагаю, уже легаси. Как минимум, это не стильно-молодёжно. Ну и CDC ("при необходимости синхронизировать данные между несколькими системами, включая историю изменений") - это не про SQL.

      Что почитать?

      Пообщаться сначала с етл-специалистами на рабочем месте, чтобы узнать точку входа для етл. И потом читать хранимый код. Вангую, это будет pl/sql.


      1. Ivan22
        26.01.2023 14:21

        Кимбала читать, что же еще. Не стареющая классика:

        https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/books/


  1. FanatPHP
    26.01.2023 11:02
    +10

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


    Фу такую халтуру публиковать и плюсовать.
    Я понимаю, что отделу маркетинга надо продвигать блог на Хабре. Но читателям Хабра-то это зачем?


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


    От себя порекомендую Реляционные базы данных в примерах Святослава Куликова. Там в первую очередь не про язык, а про устройство баз данных, но это как раз очень важно знать, чтобы писать нормальный SQL, а не как обычно.


    1. velipre_xella
      26.01.2023 16:37

      Две последние, внезапно, на английском, хотя по обоим диалектам и переводных изданий как дампов памяти за баней.

      Это не совсем так. Издания на русском есть, но по не очень свежим версиям. Для того же SQL Server - хорошая емнип книга Ицик Бен-Ган, Диджан Сарка, Рон Талмейдж - Microsoft SQL Server 2012. Создание запросов. Но версия сам видишь какая. По оракельному sql книжки на русском в лучшем случае на версии 11g и немножко захватывают 12c. Мне на ум ничего, кроме Джейсон Прайс - Oracle DB 11g. Операторы SQL и программы PL/SQL на ум не приходит.

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

      P.S. По диалекту для PostgreSQL кроме вышеупомянутой книги Моргунова на русском что-то и не припомню ничего, собирать понемножку из книг по PostgreSQL вообще.


  1. iskateli
    26.01.2023 11:58
    +2

    Тоже заметил что подборка откровенно слабая, реально как будто случайно выбрали книги.
    Мне в своё время очень помогла книга "Крис Фиайли - SQL (Quick Start)", очень ёмко многие вещи описаны, без лишней воды.


  1. FlashHaos
    26.01.2023 13:32

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


  1. StupidityIncarnate
    26.01.2023 16:03

    Из новенького, мне в свое время помогли взглянуть с другой стороны на кишки MySQL следующие две книги, от Daniel Nichter особенно понравилась:

    High Performance MySQL: Proven Strategies for Operating at Scale, 4th Edition (2021) Автор: Silvia Botros

    Efficient MySQL Performance: Best Practices and Techniques (2021) Автор: Daniel Nichter



  1. nronnie
    27.01.2023 10:24

    Новичкам лучше не SQL (а тем более какой-либо "вендорский" диалект), а общие вещи по РБД. Т.е. К.Дейт "Введение в системы баз данных" или Дж.Ульман "Основы систем баз данных" (издание довольно старое и в бумажном виде его по-моему не купить, но в онлайне найти можно). У Дейта книга побольше по объему и более академичная, у Ульмана поменьше и более "прикладная".


    1. FanatPHP
      27.01.2023 10:58

      Я для этих целей рекомендую Реляционные базы данных в примерах Святослава Куликова — она бесплатная и очень толковая.


    1. velipre_xella
      27.01.2023 20:30

      Да ладно. Представь, пришёл джава-разработчик на рабочее место и выясняется, что весьма обширный пласт бизнес-логики реализован на PL/SQL(пример с предыдущего места работы). А до этого он select, update, insert писал, а про merge, например, или динамический sql - не знал. Как ему Дейт поможет в работе? Уверен, около никак. Потому что нужно читать и изменять конкретный код, а не "общие вещи по РБД".