Практическое руководство по SQL

4-е издание
Джудит С. Боуман, Сандра Л. Эмерсон, Марси Дарновски

The Practical SQL Handbook: Using SQL Variants, 4th Edition
Judith Bowman
книга Практическое руководство по SQL, 4-е издание

Тираж данной книги закончился.
Введение
Файлы к книге

О книгах по SQL в блоге Виктора Штонда

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

352 стр., с ил.; ISBN 5-8459-0229-0, 0-201-70309-2; формат 70x100/16; 2002, 1 кв.; Вильямс.



Понравилась книга? Порекомендуйте её друзьям и коллегам:







Книги, рекомендуемые вместе с этой книгой:



Структура книги

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

Объяснение ведется по следующей схеме:

  • определение - что есть что;
  • минимальный синтаксис - упрощенный "скелет" команды (без расширений и предложений, которые могут изменяться от одной версии к другой);
  • простой пример.

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

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

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

Процесс изучения будет для вас более приятным и эффективным, если вы воспользуетесь приведенными ниже советами.

  • Сохраняйте написанные вами команды SQL в файлах. (Ваша система должна позволять это делать.) Если вы не уверены, что при выполнении запроса получили необходимые результаты, сохраните их для дальнейшего изучения. Запишите, что работает, а что - нет, и, если это возможно, сохраните сообщения об ошибках.
  • Сохраняйте удачно отработавшие запросы в отдельных файлах. Удачные решения могут пригодиться вам в будущем.
  • Группируйте запросы в отдельные модули или процедуры. В соответствии с современными методами структурного программирования приложения SQL должны состоять из набора отдельных процедур, что значительно упрощает их модификацию и повторное использование.
  • Заведите специальную тетрадку. Сделайте это, даже если в документацию к вашей системе включен краткий справочник команд. Это будет способствовать лучшему усвоению материала. Вскоре вы обнаружите, что одни команды SQL используются значительно чаще других.
  • Старайтесь улучшать предлагаемые нами решения. Наш опыт свидетельствует, что, чем больше вы будете самостоятельно работать над освоением SQL, тем более простыми и элегантными будут становиться написанные вами операторы.

Изучив SQL на практике, вы сможете правильно использовать его операторы, получая нужные результаты. Чтобы достичь такого уровня профессионализма, вы, кроме того, должны изучить и проверить вашу реляционную СУБД. Проверьте, чтобы выполнение на ней 50 транзакций в секунду не приводило к появлению сообщения об ошибке SQL (логической ошибке).

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

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

Краткий обзор книги

Глава 1, "SQL и управление реляционными базами данных". Здесь кратко описывается и иллюстрируется реляционная модель, рассматриваются основные возможности SQL.

Глава 2, "Проектирование баз данных". Проектирование баз данных часто вызывает значительные затруднения. В этой главе на примере простой базы данных иллюстрируются полезные методы анализа данных и принятия решений о структуре создаваемой системы. Вы узнаете о первичных и вторичных ключах, моделировании связей, правилах нормализации, обо всем том, что позволит вам проектировать качественные базы данных.

Глава 3, "Создание и заполнение базы данных". Здесь структура базы данных, описанная в предыдущих главах, наполнится реальным содержимым. Вы подробно ознакомитесь с командами SQL для создания баз данных, таблиц, индексов, с командами добавления, изменения и удаления данных. Изучив синтаксис этих команд, вы сможете практически использовать SQL.

Глава 4, "Выборка информации из базы данных". Использование примеров и описание основных элементов оператора SELECT начинается именно с этой главы. Вы узнаете, как извлекать из таблицы необходимые строки и столбцы, как выполнять вычисления, применять логические операторы и операторы сравнения.

Глава 5, "Сортировка данных и другие методы выбора". Специальные предложения в операторе SELECT позволят сортировать данные, удалять повторяющуюся информацию в результирующих данных, использовать специальные функции для вычисления средних значений, сумм и других подсчетов.

Глава 6, "Группировка данных и построение отчетов". Оператор SELECT также предоставляет возможности группировки данных и генерации отчетов, используя для этого обобщающие функции, описанные в предыдущих главах. В этой главе также ведется дискуссия о том, как в системах реляционных баз данных должны обрабатываться неопределенные значения (пропуски информации).

Глава 7, "7". Оператор соединения - один из столпов реляционной модели. В этой главе рассматривается, как использовать этот оператор для выборки данных из одной или нескольких таблиц. Усложненный вариант простого оператора выбора - оператор соединения - требует от пользователей повышенного внимания к анализу и проверке получаемых данных.

Глава 8, "Структурированные запросы и подзапросы". Рассматривается правильное использование вложенных запросов, или подзапросов. На большом количестве примеров описываются связанные подзапросы, которые часто являются источником многих неприятностей.

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

Глава 10, "Безопасность, транзакции, производительность и целостность". Посвящена характерным вопросам управления реальными базами данных. В ней описываются команды определения прав пользователей, кроме того, мы вернемся к теме индексирования в аспекте повышения производительности системы, а также рассмотрим механизмы управления транзакциями. Здесь также приводятся расширения языка SQL, обеспечивающие непротиворечивость и целостность данных. Некоторые из них характерны исключительно для реализации Sybase SQL.

Глава 11, "Разрешение проблем". На основе базы bookbiz мы ответим на вопросы, заданные пользователями через Internet. Здесь вы столкнетесь с реальными проблемами - представлением результатов, поиском данных, многотабличными запросами и предложением GROUP BY. Эта глава напоминает кулинарную книгу, напичканную полезными советами, которыми вы можете воспользоваться в своей работе. Кроме того, эта глава поможет избежать классических ошибок.

Приложение А, "Краткое описание синтаксиса SQL, используемого в книге". Описание соглашений о синтаксисе SQL, используемом в этой книге, завершается списком операторов SQL.

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

Приложение В, "Словарь терминов". Здесь приведен список наиболее важных терминов (при первом появлении в тексте они выделены курсивом).

Приложение Г, "Описание базы данных bookbiz". Содержит таблицы данных, описание структуры и код для создания самой базы.

Приложение Д, "Дополнительные ресурсы". Приведен список наиболее полезных книг, Web-узлов и групп новостей

Цель книги

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

  • Документация по промышленным версиям SQL обычно написана на простом языке и интуитивно понятна, в то время как в документации ISO-ANSI для описания синтаксиса языка используется BNF (Backus Naur Form - форма Бэкуса-Наура), математически строгая, но сложная для чтения и понимания.
  • Все промышленные SQL предоставляют интерфейс для начинающих и неопытных пользователей, а стандартные версии больше тяготеют к расширениям SQL для программистов и разработчиков программного обеспечения.
  • Поставщики систем реляционных баз данных стараются удовлетворить все потребности своих клиентов, учитывая при этом опыт конкурентов. Реализация же команд ANSI SQL может различаться в разных версиях. Поэтому в настоящей книге мы будем опираться на промышленные стандарты (а не на стандарты ANSI) и расскажем о реализованных на сегодня возможностях SQL.

Описание ANSI SQL само по себе является весьма непривлекательным документом, напичканным примечаниями и ссылками. К тому же BNF-форма больше подходит для описания функций каждого элемента языка, чем для представления его синтаксиса. Но если вы все же хотите окунуться в подобные самостоятельные исследования, рекомендуем начать с книги К.Дж. Дейта A Guide to SQL Standard. Дейт - один из ведущих теоретиков в области реляционных моделей и один из самых известных авторов по этой тематике. С помощью этой книги вы научитесь читать BNF-формы и узнаете мнение профессионала о стандартах SQL.

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

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

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

Предисловие к четвертому изданию

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

Будучи в течение нескольких лет консультантом по вопросам баз данных, иногда я все же испытывал определенные затруднения; в частности при работе с одним относительно простым запросом с самообъединением. Именно тогда мне впервые попала в руки книга Практическое руководство по SQL. Просмотрев содержание предыдущего издания, я сразу же нашел нужную главу. В третьем издании это была глава 7, "Объединение таблиц и сложный анализ данных". На меня довольно сильное впечатление произвела ясность языка, последовательность изложения материала и эффективность использования примеров и рисунков. Глава начинается с объяснения на простом и доступном языке принципов получения информации из нескольких таблиц. Далее рассматривается построение довольно сложных запросов, причем не лишенное того изящества, которое уже ожидает читатель.

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

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

Будучи техническим директором Института глобальной коммуникации (Global Communication Institute - базирующаяся в Сан-Франциско глобальная сеть лиц, активно работающих с SQL), я обучал начинающих программистов способам использования баз данных SQL в их работе. Курс обучения начинался с того, что я предлагал им прочитать первые главы книги Практическое руководство по SQL. Изучив главы "Проектирование баз данных", "Создание и заполнение базы данных" и "Выборка информации из базы данных", они были уже хорошо подготовлены к использованию SQL. После этого мы приступали к программированию сетевых приложений в Cold Fusion, Perl, PHP и Microsoft Access.

Я рекомендую эту книгу как программистам, так и всем пользователям Microsoft SQL Server, Oracle и любых других баз данных SQL. Книга будет полезна любому человеку, работающему с SQL. По меньшей мере 95% изложенного в ней материала принесет вам пользу независимо от того, работаете ли вы с Microsoft SQL Server, Oracle или даже с базами данных, не упоминаемыми в этой книге непосредственно, например mysql. Программисты могут использовать эту книгу для изучения способов создания и модификации баз данных SQL, а также построения запросов к ним. Остальным пользователям она поможет понять, как работают базы данных и как получить нужную информацию из баз данных их организации.

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

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

Майкл де Биер (Michael de Beer)

В прошлом технический директор Института глобальной коммуникации

http://www.igc.org/madebeer

Февраль 2001 года


Майкл де Биер является консультантом ACP (Association for Communications) - Международной ассоциации негосударственных организаций и лиц, занимающихся разработкой компьютерных сетей. Ассоциация охватывает организации в более чем 130 странах


Copyright © 1992-2019 Издательская группа "Диалектика-Вильямс"

Rambler  Top100