Изучаем, изучаем "Изучаем SQL"


Изучаем SQL

Алан Бьюли

Изучаем SQL

Издательство "Символ Плюс" (www.symbol.ru), СПб.-Москва; 2007; 312 стр.; 17x24 см; тир.2000; ISBN-13: 978-5-93286-051-9; ISBN-10: 5-93286-051-0; перевод с англ. Н.Шатохиной; научный редактор В.Коренев

Вводный курс для разработчиков
и администраторов БД

Аннотация от изд. "Символ Плюс"  http://www.symbol.ru/alphabet/489736.html

Оригинал: Learning SQL, byAlan Beeaulieu. O’Relly Media Inc. 2005, ISBN 0-596-00727-2 (англ)

Категория: базы данных/ SQL
Уровень подготовки читателей: средний

Будучи убежденным и закоренелым oracle-истом, я иногда забываю, что базовый встроенный в СУБД Oracle язык SQL используется не только Oracle, но и множеством других реляционных систем баз данных, которые так и называются SQL-ориентированными. Поэтому увидев на обложке книги Алана Бьюли знакомое слово SQL, я сразу заказал ее для ознакомления и подготовки рецензии для нашего журнала “Oracle Magazine/Русское Издание”. Только потом, уже получив книгу, я разглядел в оглавлении и тексте, что изложение ведется применительно к СУБД MySQL, не к Oracle. Но я нисколько не пожалел о своей ошибке и постараюсь в этой статье показать, почему я довольно уверенно могу рекомендовать книгу «Изучаем SQL» всем начинающим SQL-ориентированным программистам и учащимся, включая и юных oracle-истов.

Прошу извинить длинное отступление, хочется начать с давнего студенческого наивного удивления, почему существует так много учебников по какому-либо конкретному предмету. Скажем, имеется  лучший в своем классе трехтомник по математическому анализу  «Курс дифференциального и интегрального исчисления»  Г.М.Фихтенгольца, и зачем нужны еще какие-либо учебники?! Конечно,  довольно быстро я понял, что хотя математика едина, у разных людей и специалистов разное отношение к точным наукам, им требуются разные объемы знания и разные подходы к изучению и применению, скажем, той же математики.

Вот то же самое можно сказать и про учебники и учебные пособия по SQL. Для читателей oracle-истов не будет откровением, что каждая вторая (если не каждая первая) книга по Oracle содержит более или менее содержательный материал по языку SQL. Перечислять смысла особого нет, но следует отметить, что рецензируемая книга уже не первая переведенная на русский язык работа Алана Бьюли по SQL. Три года назад в этом же издательстве "Символ-Плюс" вышла чудесная книга Алана Бьюли в соавторстве с С. Мишра «Секреты Oracle SQL» (СПб., 368 стр., 2005), на которую в нашем журнале в февральском 2006г. выпуске была опубликована рецензия «300 страниц об операторе SELECT, единственном и любимом».

В данной книге автор резко расширил границы своей аудитории. Алан Бьюли пишет: «… примеры из книги подходят для MySQL, Oracle Database и SQL Server. Из этих трех я выбрал MySQL, потому что он свободно доступен, его легко установить и просто администрировать.» Простим автору его наивную уловку, поскольку эти аргументы в той же степени относятся и к другим SQL-ориентированным СУБД, а потенции  даже домашних игровых компьютеров намного превосходят уже сравнительно скромные потребности типовой (typical) установки этих СУБД. Несомненное достоинство этой книги в именно том, что  в ней практически не делается различия между современными промышленными SQL-ориентированными СУБД Oracle Database, SQL Server, MySQL и, наверняка, многими-многими другими. Тем самым, начинающий программист, изучающий язык SQL по книге Алана Бьюли, заранее гарантирован, что его знания сохранят ценность, как бы ни сложилась дальнейшая карьера. Очень добросовестный Алан постоянно делает примечания, как и чем те или иные SQL-конструкции различаются в MySQL, Oracle или SQL Server. Об основном содержании книги достаточно много и достаточно детально можно узнать из ее оглавления, которое я, как обычно, привожу в конце рецензии. Пересказывать же книгу – это лишать читателя удовольствия познакомиться с ней самому.

К числу несомненных достоинств книги следует отнести ее краткость, соразмеренность текста, скриптов и упражнений, а также очень хороший технический литературный язык, что все в совокупности делает ее изучение легким, понятным, интересным. Не даром в одном из отзывов о об  этой книге, приводимом на сайте изд. "Символ Плюс", говорится: «Мне нравится, как написана книга. Конечно, факты есть факты, но автор мастерски и живо рассказывает, как и почему эти факты существуют. Повествование идет от простого к сложному, логично и разумно. Да, и еще одно замечание, касающееся нехватки времени: это не 700 страниц, как обычно в технических книгах, а всего три сотни» (выделено мной, А.Б.). Но иногда,  как известно, простота хуже воровства. Тот горе-программист, который посчитает, что кроме этой очень хорошей книжки, ничего знать не надо, может крупно просчитаться.  Язык SQL – это только основа понимания функционирования реляционных СУБД, и работа  Алана Бьюли намеренно сужена до наиболее простых конструкций, в ней, кажется, нет даже упоминания о процедурных языках  SQL-ориентированных СУБД, на которых написана хранимая логика. А именно эта хранимая логика реализует наиболее важную и громоздкую часть приложения. Нет упоминания о стандартных пакетах, которые поставляют пользователю, разработчику приложения администратору базы данных очень много жизненно полезной информации.

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

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

Анатолий Бачин,
главный редактор “Oracle Magazine/Русское Издание”


Приложение 1.

Оглавление книги Алан Бьюли «Изучаем SQL»

Предисловие
Глава 1. Немного истории
  • Введение в базы данных
  • Что такое SQL?
  • Что такое MySQL?
  • Дополнительные источники
Глава 2. Создание и заполнение базы данных
  • Создание и заполнение базы данных MySQL
  • Инструмент командной строки mysql
  • Типы данных MySQL
  • Создание таблиц
  • Заполнение и изменение таблиц
  • Когда портятся хорошие выражения
  • Банковская схема
Глава 3. Азбука запросов
  • Механика запроса
  • Блоки запроса
  • Блок select
  • Блок from
  • Блок where
  • Блоки group by и having
  • Блок order by
  • Упражнения
Глава 4. Фильтрация
  • Оценка условия
  • Создание условия
  • Типы условий
  • NULL: это слово из четырех букв …
  • Упражнения
Глава 5. Запрос к нескольким таблицам
  • Что такое соединение?
  • Соединение трех и более таблиц
  • Рекурсивные соединения
  • Сравнение эквисоединений с неэквисоединениями
  • Сравнение условий соединения и условий фильтрации
  • Упражнения
Глава 6. Работа с множествами
  • Основы теории множеств
  • Теория множеств на практике
  • Операторы работы с множествами
  • Правила операций с множествами
  • Упражнения
Глава 7. Создание, преобразование и работа с данными
  • Строковые данные
  • Числовые данные
  • Временные данные
  • Функции преобразования
  • Упражнения
Глава 8. Группировка и агрегаты
  • Правила группировки
  • Агрегатные функции
  • Формирование групп
  • Условия групповой фильтрации
  • Упражнения
Глава 9. Подзапросы
  • Что такое подзапрос?
  • Типы подзапросов
  • Несвязанные подзапросы
  • Использование подзапросов
  • Краткий обзор подзапросов
  • Упражнения
Глава 10. И снова соединения
  • Внешние соединения
  • Перекрестные соединения
  • Естественные соединения
  • Упражнения
Глава 11. Условная логика
  • Что такое условная логика?
  • Выражение case
  • Примеры выражения case
  • Упражнения
Глава 12. Транзакции
  • Многопользовательские базы данных
  • Что такое транзакция?
Глава 13. Индексы и ограничения
  • Индексы
  • Ограничения
Приложения
  1. ER-диаграмма примера базы данных
  2. MySQL расширения языка SQL
  3. Решения к упражнениям
  4. Дополнительные источники

Алфавитный указатель

E-mail this page