Книги, научные публикации

Дж.Боуман, С.Эмерсон, М.Дарновски ПРАКТИЧЕСКОЕ РУКОВОДСТВО ПО SQL Эта книга поможет даже в тех случаях, когда бесполезно самое лучшее руководство пользователя. Здесь раскрываются темы, которые часто

пропускаются или очень кратко описаны в стандартных руководствах пользователя Ч структуры баз данных, индексация, подзапросы, виртуальные таблицы, производительность и целостность данных.

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

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

Содержание Предисловие 5 Предисловие ко второму и третьему изданиям 7 Введение 9 Глава 1. SQL и управление реляционными базами данных 15 УПРАВЛЕНИЕ РЕЛЯЦИОННЫМИ БАЗАМИ ДАННЫХ 15 Реляционная модель: одни таблицы 16 Независимость 17 Язык высокого уровня 1 Реляционные операции Альтернативный способ просмотра данных Нули Безопасность Целостность ПРИСТУПАЯ К ПРОЕКТИРОВАНИЮ БАЗЫ ДАННЫХ Глава 2. Проектирование баз данных СТРУКТУРА БАЗЫ ДАННЫХ Как подходить к проектированию базы данных Что такое "хорошая структура" Описание нашей базы данных ДАННЫЕ И ВЗАИМОСВЯЗИ Объекты Отношение один-ко-многим Отношение многий-ко-многим Отношение один-к-одному Последние замечания к объектному подходу РУКОВОДСТВО ПО НОРМАЛИЗАЦИИ Первая нормальная форма Вторая нормальная форма Третья нормальная форма Четвертая и пятая нормальные формы ОБЗОР БАЗЫ ДАННЫХ Последние замечания о базе данных bookbiz Проверка структуры базы данных Рассмотрение других понятий из области баз данных Реализация структуры Глава 3. Создание и заполнение базы данных СИНТАКСИС SQL Обработка ошибок СОЗДАНИЕ БАЗ ДАННЫХ Выбор базы данных СОЗДАНИЕ ТАБЛИ - Выбор типа данных Назначение нулевого статуса Процесс создания таблицы СОЗДАНИЕ ИНДЕКСОВ Оператор CREATE INDEX Как, что и зачем нужно индексировать СОЗДАНИЕ ТАБЛИ - С ПОМОЩЬЮ ОГРАНИЧЕНИЙ SQL-92 ИЗМЕНЕНИЕ И УДАЛЕНИЕ БАЗ ДАННЫХ И ИХ ОБЪЕКТОВ Изменение баз данных Изменение определений таблицы Удаление базы данных Удаление таблиц Удаление индекса ДОБАВЛЕНИЕ, ИЗМЕНЕНИЕ И УДАЛЕНИЕ ДАННЫХ Добавление новой строки Использование оператора SELECT в команде INSERT ИЗМЕНЕНИЕ СУЩЕСТВУЮЩИХ ДАННЫХ Оператор UPDATE Предложение SET Предложение WHERE УДАЛЕНИЕ ДАННЫХ: КОМАНДА DELETE ПРИСТУПАЯ К ВЫБОРКЕ ДАННЫХ Глава 4. Выборка информации из базы данных ПЕРЕД ВЫБОРОМ Синтаксис оператора SELECT ВЫБОР СТОЛБЦОВ: СПИСОК ВЫБОРА Выбор всех столбцов: SELECT * Выбор отдельных столбцов Выражения: больше, чем просто имена столбцов УКАЗАНИЕ ТАБЛИЦ: СПИСОК ТАБЛИ - ВЫБОР СТРОК: ПРЕДЛОЖЕНИЕ WHERE Операторы сравнения Совместное использование условных и логических операторов Диапазоны (BETWEEN и NOT BETWEEN) Списки (IN и NOT IN) Выборка нулевых значений Поиск по подстрокам: предложение LIKE ЧТО ДАЛЬШЕ Глава 5. Сортировка данных и другие методы выбора ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ОПЕРАТОРА SELECT СОРТИРОВКА РЕЗУЛЬТАТОВ ЗАПРОСА: ПРЕДЛОЖЕНИЕ ORDER BY Порядок сортировки Как выполняется сортировка Синтаксис предложения ORDER BY Сортировка внутри сортировки Сортировка по возрастанию и по убыванию А как насчет выражений? Как сортировать нулевые значения УСТРАНЕНИЕ ПОВТОРЯЮЩИХСЯ СТРОК: ПРЕДЛОЖЕНИЯ DISTINCT И ALL Синтаксис предложения DISTINCT Почувствуйте разницу! АГРЕГИРУЮЩИЕ ФУНКЦИИ Синтаксис агрегирующих функций СКАЛЯРНЫЕ И ВЕКТОРНЫЕ ФУНКЦИИ Глава 6. Группировка данных и построение отчетов ГРУППИРОВКА ПРЕДЛОЖЕНИЕ GROUP BY Синтаксис предложения GROUP BY Упорядоченные группы ПРЕДЛОЖЕНИЕ HAVING Разновидности предложения HAVING Предложения HAVING и WHERE ЕЩЕ О НУЛЕВЫХ ЗНАЧЕНИЯХ Нули и проектирование баз данных Сравнение нулевых значений Нули и вычисления Нули и группы Значения по умолчанию в качестве альтернативы нулевым значениям РАБОТА С НЕСКОЛЬКИМИ ТАБЛИЦАМИ Глава 7. Объединение таблиц и сложный анализ данных ЧТО ТАКОЕ ОБЪЕДИНЕНИЕ Синтаксис операции объединения ПОЧЕМУ НЕОБХОДИМО ОБЪЕДИНЕНИЕ Объединения и реляционная модель ПРИМЕР ОБЪЕДИНЕНИЯ Проверка правильности объединения КАК ПОЛУЧИТЬ ХОРОШЕЕ ОБЪЕДИНЕНИЕ Объединения и нулевые значения УЛУЧШЕНИЕ ЧИТАЕМОСТИ РЕЗУЛЬТАТОВ ОБЪЕДИНЕНИЯ Выбор столбцов для запросов на объединение Псевдонимы в списке таблиц улучшают читаемость запросов ОПРЕДЕЛЕНИЕ УСЛОВИЙ ОБЪЕДИНЕНИЯ Объединения, основанные на равенстве Объединения, не основанные на равенствах Объединение таблицы с самой собой: самообъединение Использование при самообъединении оператора неравенства Объединение нескольких таблиц Внешние объединения КАК ОБЪЕДИНЕНИЯ ОБРАБАТЫВАЮТСЯ СИСТЕМОЙ ОПЕРАТОР UNION Полезный трюк с оператором UNION ПОДЗАПРОСЫ Глава 8. Структурированные запросы и подзапросы ЧТО ТАКОЕ ПОДЗАПРОС Упрощенный синтаксис подзапроса КАК РАБОТАЮТ ПОДЗАПРОСЫ Некоррелированная обработка Коррелированная обработка ОБЪЕДИНЕНИЯ ИЛИ ПОДЗАПРОСЫ? Подзапросы! Объединения! Подзапросы или самообъединения? Что лучше? ПРАВИЛА ПОДЗАПРОСОВ ПОДЗАПРОСЫ, НЕ ВОЗВРАЩАЮЩИЕ ЗНАЧЕНИЙ ИЛИ ВОЗВРАЩАЮЩИЕ НЕСКОЛЬКО ЗНАЧЕНИЙ Подзапросы, начинающиеся с IN Подзапросы, начинающиеся с NOT IN Коррелированные подзапросы с IN Подзапросы, начинающиеся с операторов сравнения и включающие ключевые слова ANY или ALL ПОДЗАПРОСЫ, ВОЗВРАЩАЮЩИЕ ЕДИНСТВЕННОЕ ЗНАЧЕНИЕ Агрегирующие функции гарантируют единственное значение Предложения GROUP BY и HAVING должны возвращать единственное значение Коррелированные подзапросы с операторами сравнения ПОДЗАПРОСЫ, ВЫПОЛНЯЮЩИЕ ПРОВЕРКУ НА СУЩЕСТВОВАНИЕ NOT EXISTS отыскивает пустой набор Использование EXISTS для поиска пересечения и разности ПОДЗАПРОСЫ С РАЗНЫМИ УРОВНЯМИ ВЛОЖЕНИЯ ПОДЗАПРОСЫ В ОПЕРАТОРАХ UPDATE, DELETE И INSERT В ПОЛЕ ЗРЕНИЯ КУРСОРА Глава 9. Создание и использование виртуальных таблиц (курсоров) КУРСОР ОБЕСПЕЧИВАЕТ ГИБКОСТЬ СОЗДАНИЕ КУРСОРОВ Удаление курсоров ПРЕИМУЩЕСТВА КУРСОРОВ Почему же все-таки курсор? КАК РАБОТАЮТ КУРСОРЫ Правила присвоения имен столбцам курсора Создание курсоров с объединениями и подзапросами Ограничения на создание курсоров Предложение Check Option Разборка курсора Переопределение курсоров МОДИФИКАЦИЯ ДАННЫХ ПОСРЕДСТВОМ КУРСОРОВ Правила в соответствии с ANSI СОЗДАНИЕ КОПИЙ ДАННЫХ ВОПРОСЫ АДМИНИСТРИРОВАНИЯ БАЗ ДАННЫХ Глава 10. Безопасность, транзакции, производительность и целостность УПРАВЛЕНИЕ БАЗАМИ ДАННЫХ В РЕАЛЬНОМ МИРЕ БЕЗОПАСНОСТЬ ДАННЫХ Идентификация пользователя и особые пользователи Команды GRANT и REVOKE Курсоры как механизм обеспечения безопасности ТРАНЗАКЦИИ Транзакции и совпадения Транзакции и восстановление Транзакции, определяемые пользователем Получение резервной копии и восстановление ПРОИЗВОДИТЕЛЬНОСТЬ Сравнение с эталоном Структура и индексация Запросы Другие инструменты для мониторинга и повышения производительности ЦЕЛОСТНОСТЬ ДАННЫХ Ограничения на домен Целостность объекта Ссылочная целостность ОТ АБСТРАКЦИЙ SQL К РЕАЛЬНОМУ МИРУ Глава 11. Разрешение проблем КАК ИСПОЛЬЗОВАТЬ SQL В СВОЕЙ РАБОТЕ ФОРМАТИРОВАНИЕ И ОТОБРАЖЕНИЕ ДАННЫХ Отображение одного поля в виде двух Выравнивание строки символов по правому краю Как указать число разрядов после десятичной точки РАБОТА С ШАБЛОНАМИ Сопоставление прописных и строчных букв Поиск символьных данных заданного размера Как найти данные типа дат Замена пробелов на нули ПОИСК ДАННЫХ С ПОМОЩЬЮ СЛОЖНЫХ ОБЪЕДИНЕНИЙ И ПОДЗАПРОСОВ Сопоставление пар столбцов в разных таблицах Поиск данных в определенном диапазоне, если вам не известны точные значения Отображение данных в формате электронной таблицы ПРЕДЛОЖЕНИЕ GROUP BY Отображение данных по времени ПОСЛЕДОВАТЕЛЬНЫЕ НОМЕРА Нахождение максимального значения и добавление 1 Использование отдельной таблицы ключей Использование произвольного значения КАК ИЗБЕЖАТЬ ОШИБОК Глава 12. Ошибки, и как их избежать НЕТ, ВЫ НЕ ДУРАК ПРЕДЛОЖЕНИЕ GROUP BY Подсчет по единицам ПРЕДЛОЖЕНИЯ WHERE И HAVING Почему столько строк? Сочетание значений строк и агрегирующих функций Как избежать проблем с предложением HAVING КЛЮЧЕВОЕ СЛОВО DISTINCT DISTINCT со столбцами и выражениями DISTINCT с агрегирующими функциями DISTINCT и DISTINCT? ДРУГИЕ НЕДОРАЗУМЕНИЯ Удаление дубликатов Нахождение "первого" входа Приложение А. Краткое описание синтаксиса SQL, используемого в книге СОГЛАШЕНИЯ ПО СИНТАКСИСУ ФОРМАТИРОВАНИЕ Регистр СПИСОК ОПЕРАТОРОВ Приложение Б. Аналогии между ключевыми словами разных диалектов SQL СРАВНЕНИЕ СИНТАКСИСОВ ОПРЕДЕЛЕНИЕ ДАННЫХ Операторы базы данных Создание и удаление объектов базы данных МАНИПУЛЯЦИИ С ДАННЫМИ АДМИНИСТРИРОВАНИЕ ДАННЫХ Приложение В. Словарь терминов Приложение Г. Описание базы данных bookbiz ТАБЛИЦЫ ОПЕРАТОРЫ CREATE И INSERT ДЛЯ БАЗЫ ДАННЫХ BOOKBIZ Приложение Д. Список литературы Предметный указатель Предметный указатель А домен, агрегирующая функция, 100 Е администратор базы данных, 23 естественное объединение, администрирование данных, 17 З аргумент, 114 запись, атрибут, 16 запрос, Б значение, база данных, 16 И базовая таблица, 20;

183 идентификатор, блокировка, 208 индекс, В К виртуальная таблица, 22 команда, включающий диапазон, 90 команды управления данными, владелец, 23 контроль совпадений, вложенная сортировка, 103 кортеж, вложенный запрос, 72 курсор, внешнее объединение, 146 кэш данных, внешний ключ, 28 Л восстановление, 200 логическая независимость, вспомогательная таблица, 37 логические операторы, выборка данных, 17 М выражение, 67 моделирование зависимостей, Г модификация данных, главная таблица, 37 Н групповой индекс, 56 набор символов, Д назначение полномочий, декартово произведение, 143 немодифицированный оператор декомпозиция без потерь, 27 сравнения, диаграмма зависимостей между непроцедурный язык объектами, 27 программирования, нормализация, 26 составной индекс, нормальная форма, 36 список выбора, О список таблиц, общий подъязык данных, 17 сравнение с эталоном, объект, 16 ссылочная целостность, объектная целостность, 24 столбец, ограничение, 19 столбец соединения, оператор, 17 стратегия доступа, определение данных, 17 строка, оптимизатор запросов, 213 структура данных, отношение, 16 сущность, П схема, первичный ключ, 16 Т подзапрос, 159 таблица, поисковая таблица, 42 терминатор, поле, 16 транзакция, пользовательская таблица, 16 триггерные действия, порядок сортировки, 100 триггерные условия, права на доступ и модификацию У данных, 23 уникальный индекс, правило, 58 управление транзакциями, 24;

проектирование базы данных, 25 устройство базы данных, производная таблица, 20 Ф просматриваемая таблица, 183 файл, псевдоним, 83 физическая независимость данных, Р различаемый нуль, 136 фиктивное значение, С форма, сгруппированный курсор, 197 - системная таблица, 16 целостность, системный администратор, 23 Ш системный журнал транзакций, 209 шаблон, системный каталог, 16 Э сканирование таблицы, 58 экземпляр,    Книги, научные публикации