Книги по SQL: что почитать новичкам и специалистам
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, необходимых для понимания и получения полезной информации из баз данных. Для более опытных читателей, владеющих базовыми или профессиональными навыками работы с базами данных, «SQL: быстрое погружение» будет удобным справочником.
Автор разбирает создание среды обучения SQL, куда входят такие темы, как:
- базовая терминология,
- типы данных,
- главные элементы и типология реляционных СУБД,
- инструменты и стратегии SQL,
- работа с запросами,
- методы преобразования данных,
- функции языка.
После изучения необходимых основ вы разберетесь в расширенных возможностях SQL. Научитесь использовать подзапросы, представления, овладеете языком управления данными DML.
Автор работает с базами данных уже более 18 лет. Уолтер Шидс — основатель компании в сфере образования SQL Training Wheels. Параллельно обучению студентов Шидс работает над проектом Datadecided для Tableau, компании-разработчика BI-системы.
Энтони Молинаро, Роберт де Грааф «SQL. Сборник рецептов»

Сборник рецептов с удобной структурой: постановка задачи, решение с кодом и детальное объяснение. Книга научит использовать SQL для решения широкого круга задач: извлечение данных, операции внутри БД, передача данных по сети в приложения.
В руководстве подробно описаны методы извлечения записей из таблиц и работа с несколькими таблицами, сортировка результатов запросов. Также вы изучите расширенные методы работы с хранилищами данных:
- обработка запросов с метаданными,
- применение оконных функций и специальных операторов,
- создание гистограмм, резюмирование данных в блоки,
- выполнение агрегации скользящего диапазона значений,
- формирование текущих сумм и подсумм,
- упрощение вычисления внутри строки,
- двойное разворачивание результирующего множества,
- обход строки, позволяющий использовать SQL для синтаксического разбора строки на символы, слова или элементы строки с разделителями.
Авторы рассматривают особенности конкретных СУБД: Oracle, DB2, SQL Server, MySQL и PostgreSQL. Во втором издании учтены все изменения в синтаксисе и архитектуре актуальных реализаций SQL.
Брайан Сиверсон и Джоэл Мурах «Murach’s SQL Server 2019 for Developers»

«Murach’s SQL Server 2019 for Developers» не имеет русскоязычного перевода. Вы можете найти электронную или печатную версию на официальном сайте.
Книга разделена на 4 части, каждая из которых постепенно углубляет знания SQL. В первом разделе вы познакомитесь с основными понятиями и терминами, необходимыми для работы с любой реляционной БД. Узнаете, как выполнять SQL-запросы с помощью Microsoft SQL Server 2019 и Management Studio.
Во втором разделе освоите навыки получения, добавления, обновления и удаления данных. Научитесь использовать внешние объединения, сводные запросы и подзапросы.
Третья часть посвящена проектированию и реализации баз данных. Вы узнаете, как спроектировать БД и реализовать проект с помощью операторов SQL или Management Studio.
Последний раздел книги даст вам продвинутые навыки работы с SQL. Вы поймете, как работают:
- представления,
- скрипты,
- хранимые процедуры,
- функции,
- триггеры,
- курсоры,
- транзакции,
- функции для работы с данными XML и BLOB.
Руководство от издательства 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» не нужно иметь знаний в области программирования. Тем не менее вы быстрее освоите материал, если у вас есть некоторый опыт разработки.
Реализуйте знания языка SQL на практике
Запустите кластер облачных баз данных за минуту и не думайте об инфраструктуре.
Кому нужен SQL? Оказывается, всем. А зачем?
Бизнесмены, госкорпорации, государственные органы, все стремятся использовать как можно больше высоких технологий для достижения поставленных целей. Ну буквально всё, что возможно, хочется автоматизировать: бухгалтерский и управленческий учет, финансы и логистику, транспорт и продажи. На высокооплачиваемые должности привлекают специалистов подкованных в современных технологиях.
Бизнесмены, госкорпорации, государственные органы, все стремятся использовать как можно больше высоких технологий для достижения поставленных целей. Ну буквально всё, что возможно, хочется автоматизировать: бухгалтерский и управленческий учет, финансы и логистику, транспорт и продажи. На высокооплачиваемые должности привлекают специалистов подкованных в современных технологиях.
Предпочтение отдается тем сотрудникам, которые за короткий срок могут обработать большой объем информации. Потому что своевременная и точная информация стоит дорого. Современные технологии убегают от вас далеко вперед? Но на самом деле ещё есть время наверстать упущенное и получить для себя отличные перспективы карьерного роста. Востребованными становятся новые специальности, даже освобождается время на то, о чем раньше вы задумывались только вскользь — переобучение.
Мы уже рассказывали о профессиях, в которых можно успешно развиваться на сегодняшний день. А сегодня мы попробуем доходчиво, простыми словами рассказать об SQL — инструменте, с которым можно сделать первый шаг в в сферу аналитики. Хотя его использование, конечно, этим не ограничивается.
SQL (ЭсКуЭль) — это и язык для программистов и мощный инструмент для всех специалистов, которым требуется анализировать и обрабатывать информацию из баз данных . Продвинутые аналитики, финансисты, экономисты и даже бухгалтеры или товароведы учат SQL.
SQL — следующая ступень эволюции после общеизвестных программ Excel и Access. Но это не программа, это язык запросов, которые понимают другие приложения и базы данных в целом.
На примере Excel можно объяснить работу SQL запросов
Информация о продажах, закупках, бухгалтерских проводках хранится в связанных между собой таблицах (например, таких как база 1С или база данных вашей товароучетной программы).
Данные имеют свои идентификаторы (id). Благодаря этому вся информация структурирована не в одной громоздкой таблице, а в множестве маленьких и «легких», связанных между собой особенными отношениями таблиц. Таким образом уменьшается объем файла с информацией. Он занимает меньше места на диске, время выполнения запросов сокращается, система работает быстрее.
На языке SQL пишутся специальные запросы (так называемые SQL инструкции) к базе данных с целью получения данных или для манипулирования ими.
Задав правильный запрос к базам, вы можете создавать таблицы, извлекать данные, удалять, фильтровать и т.п.
Плюсы SQL запросов:
- используются на международном уровне;
- инструменты SQL внедрены во все пакетные решения;
- SQL имеет поддержку во всех языках программирования;
- все системы управления базами данных (Oracle Database, Interbase, Firebird, Microsoft SQL Server, PostgreSQL) понимают SQL ;
- запросы открывают доступ к базе данных для разных аналитиков;
- находят ответы на непредсказуемые запросы руководства (это значит, что не нужно будет покупать новое приложение для решения новых и нестандартных задач).
Жизненная необходимость SQL инструментов
SQL активно используется при работе специалистами разных сфер. Например, маркетологами (чтобы реклама била точно в цель) или журналистами, стремящимися подкрепить свои статьи фактами.
Но он также нужен экономисту банка или торговой сети, который хочет стать ведущим аналитиком. Т.е. первая причина для освоения — карьерный рост.
Когда страничек в книге Excel уже не хватает, фильтрация, поиск и обработка занимает все рабочее время аналитиков — значит бизнес достаточно масштабирован и готов общаться на языке программирования. Масштабирование бизнеса — еще одна из причин для привлечения экономистов со знанием SQL .
В растущей компании объем данных увеличивается в геометрической прогрессии, чтобы информацию обработать и не потерять, да еще и проанализировать требуются финансовые аналитики, умеющие говорить на SQL.
В экселе можно долго и упорно настраивать фильтры, сортировать, но на специальном языке запросов компьютер вас поймет быстрее и точнее.
Простые ответы на сложные вопросы с помощью SQL
В огромной сети магазинов, типа Ашан, товаровед решает, сколько товаров нужно заказать у поставщиков для выполнения текущих заказов. Для решения потребуется выполнить множество расчетов: нужно посчитать остатки товара с учетом нормы запаса, посчитать дефицит товара, вывести название продукта и название поставщика. Такую многошаговую задачу решают SQL-запросы.
Для экономиста базы данных выведут список чеков за выбранный день дороже или дешевле нужной суммы и покажут, на каких кассах их пробили.
Финансовый аналитик с помощью SQL получает правильные исходные данные для построения дальнейших гипотез развития бизнеса. Он сможет верно определить причинно-следственных связи в поведении исследуемых реалий.
Можно долго перечислять возможности вашей базы данных после внедрения SQL-запросов, быстрее научиться и решать непосредственно свои задачи.
Как освоить SQL
Приятная новость в том, что в изучении SQL нет ничего сложного, это быстро, а синтаксис запросов прост и понятен.
Исторически SQL создавали, как инструмент для отбора и управления данными, которые закопаны в связанных таблицах. Перед создателями стояла цель — разработать эффективный и простой инструмент. Он должен быть понятен тем, кто не разбирается в языках программирования. Сегодня операторами SQL-запросов могут быть и экономисты, и бухгалтера, и финансисты, даже товароведы и другие специалисты.
Если вы отлично ладите с таблицами Excel, у вас хорошие шансы быстро освоить SQL. Даже если знаний по Excel не хватает, есть специализированные курсы , которые помогут быстро получить нужные навыки.
Чтобы развиваться по специальности экономиста или финансиста, нужны курсы и тренинги по языку SQL . Владение средствами поиска и анализа данных — это то что отличает настоящего аналитика, от обычного экономиста.
Изучив новый язык запросов, вы никогда не останетесь без работы в современном технологичном мире. Наоборот получите шансы подняться вверх по карьерной лестнице или даже выйти на международный уровень.
Истории выпускников Нетологии
Арсений Сова, выпускник курсов по аналитике в Нетологии:
Я работал менеджером проектов долгое время — своя команда, разработка различных программных решений, спектр задач довольно широкий. Потом решил с головой уйти в переквалификацию в менеджера продукта, и посчитал, что скилы аналитика подтянуть нужно. Соответственно оказался в Нетологии и изучал SQL . Для менеджера продукта он нужен как воздух — чем крупнее компания, тем сильнее.
Самое крутое в SQL — это его простота, гибкость, и очень низкий порог входа . Появление clickhouse вдохнуло в sql жизнь, в СНГ особенно. Самое главное — простота получения данных, как для дальнейшего анализа, так и для первичного знакомства с данными.
Например, исследование активности пользователей на проекте; исследования аудитории; получение данных для первичного анализа. Частая история, что менеджер продукта готовит отчетность, и соответственно, данные как-то собирать нужно. Даже проведение А/Б-тестирование — это все начинается с SQL.
Да и вообще, подводя итог, без SQL, на мой взгляд, никуда, уже скоро требование знаний по excel станет для всех — смех-смехом, все чаще вижу, что нужно знание sql, хотя бы на базовом уровне.
Роман Крапивин , руководитель проектов компании ООО «ИНТЭК» и выпускник курсов по аналитике в Нетологии:
Я работаю в строительном секторе руководителем проектов. За последние 3 года мы реализовали три крупных проекта на территории Москвы в сфере гражданского строительства.
И я пошёл на курс SQL по нескольким причинам. Во-первых, данный инструмент является одним из самых важных в арсенале аналитика в современном мире. На мой взгляд, не зная SQL, невозможно в дальнейшем развиваться как аналитик.
Во-вторых, во многих современных компаниях, которые работают с большим объемом информации (большими данными) требуют знания SQL. Так как в дальнейшем я хочу развиваться в финансовой сфере или сфере ритейла, знание данного инструмента просто необходимо для меня.
Учитесь новому, развивайте навыки
У Нетологии много и других полезных курсов для новых карьерных возможностей

- #MySQL
- #обработка данных
- #базы данных
- #big data
- #аналитика данных
Базы данных

Типичный SQL запрос заключается в просьбе найти и предоставить данные.
Обычное исполнение запроса заключается в переборе данных, находящихся в таблице. Например, при поиске сообщения на форуме, самым простым способом ответа на такой вопрос был бы перебор всех сообщений (сравнение номеров сообщений с требуемым номером).
Индекс в SQL сервере – дополнительная служебная информация в таблице, которая помогает получить ответы на запросы без перебора всего объема данных таблицы. Это в тысячи или десятки тысяч раз меньше, чем требуется для ответа на вопрос обычным способом, без использования индексов.
Любая грамотная созданная база данных включает в себя индексы, которые позволяют быстро ответить на все SQL запросы, которые могут возникнуть в процессе использования приложения.
Медленные запросы
Случаются ситуации, при которых сервер баз данных не может ответить на запрос данных в пределах короткого времени. Запрос считается медленным, если его обработка заняла более 2 секунд.
По причинам случайного характера любой запрос может иногда выполняться медленно (ожидание окончания обработки других запросов, занятость дисковой системы сервера в данный момент времени, нагрузка на сервере). Случайные медленные запросы не являются признаком проблем со стороны скриптов или структуры базы данных пользователя.
Долгое исполнение запроса обусловлена скорее всего отсутствием индексов (если запрос простой), либо неоптимально составленным запросом (в этом случае индексы могут не помочь). При систематических долгих запросах создается огромная нагрузка на сервер, которая на виртуальном хостинге приводит к ухудшению обслуживания других клиентов.
Какие запросы могут быть медленными:
Запрос вида WHERE adres_post = ‘Москва’
Это означает отсутствие необходимого индекса по полю adres_post (в данном случае)
Необходимо создать индекс по соответствующему полю.
Запрос вида WHERE subj LIKE ‘% ’
В процессе исполнения запроса LIKE использование индексов невозможно. Поэтому рекомендуется переработать алгоритмы (необходимо обратиться к разработчику скриптов)
Запрос вида FROM t1, t2, t3 WHERE age=22
нескольких таблиц. Скорее всего либо ошибка при связке таблиц, либо отсутствие индексов.
Возможны и другие случаи.
В заключение необходимо отметить, что для отладки необходимы технические знания, которые можно получить в открытом доступе, либо обратившись к собственным техническим специалистам.
Построение запросов в БД Oracle простыми словами
Статья позволит вам хотя бы в самом общем приближении понять, что же это за зверь такой, SELECT. И если станет интересно, что дальше, тогда пишите или звоните, поговорим про дальнейшее обучение.
Строго говоря, написать эту статью стоило еще несколько лет назад, но обстоятельства сложились так, что руки дошли до нее только сейчас. Да, конечно, несколько страниц текста – это не полноценный курс по построению запросов (вроде того же «12сSQL1: Основы SQL1», например), но все же статья позволит Вам хотя бы в самом общем приближении понять, что же это за зверь такой, SELECT. И если станет интересно, что дальше, тогда пишите или звоните, поговорим про дальнейшее обучение.
Итак, построение запросов в базе данных Oracle. Не открою Америку, если скажу, что база данных Oracle — это одна из самых популярных и мощных систем управления базами данных, которая позволяет хранить, обрабатывать и анализировать большие объемы данных. Для работы с данными в базе Oracle необходимо уметь составлять запросы на языке SQL (Structured Query Language), который является стандартным языком для работы с реляционными базами данных.
SQL-запрос — это команда, которая указывает базе данных, какие данные нужно выбрать, добавить, изменить или удалить. SQL-запрос состоит из различных элементов, таких как ключевые слова, операторы, функции, выражения и условия. Синтаксис SQL-запроса зависит от типа операции, которую нужно выполнить.
В этой статье мы рассмотрим основные типы SQL-запросов в базе данных Oracle и приведем примеры их использования.
Выборка данных с помощью оператора SELECT
Оператор SELECT — это самый часто используемый тип SQL-запроса, который позволяет выбирать данные из одной или нескольких таблиц или представлений базы данных. Синтаксис оператора SELECT выглядит следующим образом:
SELECT [DISTINCT] column_list
FROM table_list
[WHERE condition]
[GROUP BY group_by_list]
[HAVING group_condition]
[ORDER BY order_by_list];
В этом синтаксисе:
- column_list — это список столбцов, которые нужно выбрать из таблиц или представлений. Можно использовать звездочку (*) для выбора всех столбцов.
- table_list — это список таблиц или представлений, из которых нужно выбрать данные. Можно использовать псевдонимы (алиасы) для упрощения ссылок на таблицы или представления.
- WHERE — это опциональная часть, которая позволяет фильтровать данные по заданному условию. Условие может состоять из различных операторов сравнения, логических операторов и функций;
- GROUP BY — это опциональная часть, которая позволяет группировать данные по одному или нескольким столбцам. Это полезно для выполнения агрегатных функций, таких как сумма, среднее, минимум или максимум по группам данных.
- HAVING — это опциональная часть, которая позволяет фильтровать данные по условию, применяемому к группам данных. Это отличается от условия WHERE, которое применяется к отдельным строкам данных.
- ORDER BY — это опциональная часть, которая позволяет сортировать данные по одному или нескольким столбцам в порядке возрастания (ASC) или убывания (DESC).
Допустим, у нас есть таблица employees, которая содержит информацию о сотрудниках компании. Таблица имеет следующие столбцы: emp_id, emp_name, emp_dept, emp_salary. Мы хотим выбрать имена и зарплаты всех сотрудников, которые работают в отделе IT и получают больше 50000 рублей в месяц. Кроме того, мы хотим отсортировать результаты по убыванию зарплаты. Для этого мы можем использовать следующий SQL-запрос:
SELECT emp_name, emp_salary
FROM employees
WHERE emp_dept = ‘IT’ AND emp_salary > 50000
ORDER BY emp_salary DESC;
Результат выполнения этого запроса может выглядеть так:
Добавление данных с помощью оператора INSERT
Оператор INSERT — это тип SQL-запроса, который позволяет добавлять новые данные в таблицу базы данных. Синтаксис оператора INSERT выглядит следующим образом:
INSERT INTO table_name (column_list)
VALUES (value_list);
В этом синтаксисе:
- table_name — это имя таблицы, в которую нужно добавить данные;
- column_list — это список столбцов, в которые нужно добавить данные. Если список столбцов не указан, то данные добавляются во все столбцы таблицы в порядке их определения;
- value_list — это список значений, которые нужно добавить в столбцы. Количество и тип значений должны соответствовать количеству и типу столбцов.
Допустим, мы хотим добавить нового сотрудника в таблицу employees. Новый сотрудник имеет следующие данные: emp_id = 10, emp_name = ‘Ольга’, emp_dept = ‘HR’, emp_salary = 40000. Для этого мы можем использовать следующий SQL-запрос:
INSERT INTO employees (emp_id, emp_name, emp_dept, emp_salary)
VALUES (10, ‘Ольга’, ‘HR’, 40000);
После выполнения этого запроса в таблице employees появится новая строка с данными о новом сотруднике.
Изменение данных с помощью оператора UPDATE
Оператор UPDATE — это тип SQL-запроса, который позволяет изменять существующие данные в таблице базы данных. Синтаксис оператора UPDATE выглядит следующим образом:
UPDATE table_name
SET column1 = value1, column2 = value2, .
[WHERE condition];
В этом синтаксисе:
- table_name — это имя таблицы, в которой нужно изменить данные.
- SET — это часть, которая указывает, какие столбцы и значения нужно изменить. Можно изменить один или несколько столбцов за один раз.
- WHERE — это опциональная часть, которая позволяет фильтровать данные по заданному условию. Если условие не указано, то изменяются все строки таблицы.
Допустим, мы хотим повысить зарплату на 10% всем сотрудникам, которые работают в отделе IT. Для этого мы можем использовать следующий SQL-запрос:
UPDATE employees
SET emp_salary = emp_salary * 1.1
WHERE emp_dept = ‘IT’;
После выполнения этого запроса в таблице employees изменятся значения столбца emp_salary для всех строк, у которых значение столбца emp_dept равно ‘IT’.
Удаление данных с помощью оператора DELETE
Оператор DELETE — это тип SQL-запроса, который позволяет удалять существующие данные из таблицы базы данных. Синтаксис оператора DELETE выглядит следующим образом:
DELETE FROM table_name
[WHERE condition];
В этом синтаксисе:
- table_name — это имя таблицы, из которой нужно удалить данные.
- WHERE — это опциональная часть, которая позволяет фильтровать данные по заданному условию. Если условие не указано, то удаляются все строки таблицы.
Допустим, мы хотим удалить из таблицы employees всех сотрудников, которые работают в отделе HR. Для этого мы можем использовать следующий SQL-запрос:
DELETE FROM employees
WHERE emp_dept = ‘HR’;
После выполнения этого запроса из таблицы employees удалятся все строки, у которых значение столбца emp_dept равно ‘HR’.
Итак, друзья мои, в этой статье мы рассмотрели основные типы SQL-запросов в базе данных Oracle и привели примеры их использования. SQL-запросы позволяют выбирать, добавлять, изменять и удалять данные из таблиц или представлений базы данных. Для составления SQL-запросов необходимо знать синтаксис языка SQL и структуру базы данных. Для упрощения работы с SQL-запросами можно использовать построитель запросов, который доступен в средствах разработки и аналитики Oracle. Конечно, это даже не верхушка айсберга того, что предлагается на курсе «12сSQL1: Основы SQL1», но я буду искренне рад, если помог хотя бы частично разъяснить структуру работы SELECT. А за более глубокими знаниями приходите к нам учиться!
