СОДЕРЖАНИЕ ГЛАВ КНИГИ 1 Введение в Реляционные Базы Данных 1 2 SQL: Краткий Обзор 11 3 Использование SQL Для Извлечения Информации из Таблиц 21 4 Использование Реляционных и Булевых Операторов при Создании более Сложных Предикатов 35 5 Использование Специальных Операторов в Условиях 47 6 Обобщение Данных с помощью Агрегатных Функций 61 7 Форматирование Вывода Запроса 75 8 Запрос Многих Таблиц Как Одной 87 9 Объединение Таблицы с Собой 97 10 Помещение Одного Запроса Внутрь Другого 109 11 Соотнесенные Подзапросы 125 12 Использование Оператора EXISTS 137 13 Использование Операторов ANY, ALL, и SOME 149 14 Использование Предложения UNION 169 15 Введение, Удаление, и Изменение Значения Поля 185 16 Использование Подзапросов с Командами Модификации 195 17 Создание Таблиц 207 18 Ограничение Значений Ваших Данных 217 19 Поддержание Целостности Ваших Данных 233 20 Введение: Представления 251 21 Изменение Значений с Помощью Представлений 265 22 Определение Кто Что Может Делать 279 23 Глобальные Аспекты SQL 297 24 Как Данные SQL Сожержатся в Упорядоченном Виде 313 25 Использование SQL с Другими Языками ( Вложенный SQL ) 333 A Ответы для Упражнений 359 B Типы SQL Данных 381 C Некоторые Общие Нестандартные Особенности SQL 387 D Синтаксис и Команды Ссылки 399 E Таблицы Используемые в Примерах 419 ОГЛАВЛЕНИЕ ГЛАВА 1: ВВЕДЕНИЕ В РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ Что такое - Реляционная База Данных? 2 Как связываются Таблицы друг с другом 3 Порядок Строк Произволен 3 Идентификация Строки ( Первичный Ключ ) 4 Столбцы Именуются и Нумеруются 4 Типовая База Данных 5 Резюме 8 Работа с SQL 9 ГЛАВА 2: SOL: КРАТКИЙ ОБЗОР Как SQL Работает ? 12 Как ANSI относится к SQL? 12 Интерактивный и Вложенный SQL 13 Подразделы SQL 13 Различные Типы Данных 14 SQL Несогласованности 15 Что такое - ПОЛЬЗОВАТЕЛЬ? 17 Условные Обозначения и Терминология 17 Резюме 18 Работа с SQL 18 ГЛАВА 3: ИСПОЛЬЗОВАНИЕ SQL ДЛЯ ИЗВЛЕЧЕНИЯ ИНФОРМАЦИИ ИЗ ТАБЛИЦЫ Создание Запроса 22 Где Работают Запросы ? 22 Команда SELECT 23 Выбирайте Всегда Простой Способ 25 Кратко о SELECT 25 Представление Только Определенных Столбцов Таблицы 25 Переупорядочение Столбцов 26 Удаление Избыточных Данных 27 Квалифицированный Выбор - Предложение WHERE 29 Резюме 32 Работа с SQL 33 ГЛАВА 4: ИСПОЛЬЗОВАНИЕ РЕЛЯЦИОННЫХ И БУЛЕВЫХ ОПЕРАТОРОВ ДЛЯ СОЗДАНИЯ БОЛЕЕ СЛОЖНЫХ ПРЕДИКАТОВ Реляционные Операторы 36 Булевы Операторы 37 Резюме 43 Работа с SQL 45 ГЛАВА 5: ИСПОЛЬЗОВАНИЕ СПЕЦИАЛЬНЫХ ОПЕРАТОРОВ В УСЛОВИЯХ Оператор IN 48 Оператор BETWEEN 50 Оператор LIKE 53 Работа с NULL Значениями 56 Оператор IS NULL 57 Использование NOT со Специальными Операторами 57 Резюме 59 Работа с SQL 60 ГЛАВА 6: ОБОБЩЕНИЕ ДАННЫХ С ПОМОЩЬЮ АГРЕГАТНЫХ ФУНКЦИЙ Что Такое Агрегатные Функции? 62 Зачем Используют Агрегатные Функции? 62 Специальный Атрибут COUNT 64 Создание Агрегатов в Скалярных Выражениях 67 Предложение GROUP BY 67 Предложение HAVING 69 Не Делайте Вложенных Агрегатов 72 Резюме 73 Работа с SQL 74 ГЛАВА 7: ФОРМИРОВАНИЕ ВЫВОДА ЗАПРОСА Строки и Выражения 76 Упорядочение Вывода с помощью Полей 79 Упорядочение с помощью Многочисленых Столбцов 80 Упорядочение Агрегатных Групп 81 Упорядочение Вывода по Номеру Столбца 82 ORDER BY с NULL Значениями 84 Резюме 85 Работа с SQL 86 ГЛАВА 8: ЗАПРОС МНОГИХ ТАБЛИЦ КАК ОДНОЙ Объединение Таблиц 88 Имена Таблиц и Имена Столбцов 88 Создание Объединения 89 Объединение Таблиц через Справочную Целостность 90 Эквивалентные Объединения и Другие Виды Обьединений 91 Обьединение Более Двух Таблиц 92 Резюме 93 Работа с SQL 95 ГЛАВА 9: ОБЪЕДИНЕНИЕ ТАБЛИЦ С СОБОЙ Как Делается Объединение Таблицы с Собой ? 98 Псевдонимы 98 Удаление Избыточности 100 Проверки Ошибок 101 Больше Псевдонимов 102 Некоторые Более Комплексные Объединения 102 Резюме 105 Работа с SQL 107 ГЛАВА 10: ПОМЕЩЕНИЕ ОДНОГО ЗАПРОСА ВНУТРЬ ДРУГОГО Как Работают Подзапросы ? 110 Значения Которые Подзапрос Может Выводить 111 DISTINCT с Подзапросами 112 Предикаты с Подзапросами - Не Обратимы 114 Использование Агрегатных Функций в Подзапросах 114 Использование Подзапросов Для Вывода Многих Строк с помощью IN 116 Подзапросы в HAVING 121 Резюме 122 Работа с SQL 123 ГЛАВА 11: СООТНЕСЕННЫЕ ПОДЗАПРОСЫ Как Формировать Соотнесенный Подзапрос 126 Как Работает Соотнесенный Подзапрос 126 Использовать Соотнесенные Подзапросы чтобы Находить Ошибки 130 Соотнесение Таблицы с Собой 131 Соотнесенные Подзапросы в HAVING 132 Соотнесенные Подзапросы и Объединения 133 Резюме 134 Работа с SQL 135 ГЛАВА 12: ИСПОЛЬЗОВАНИЕ ОПЕРАТОРА EXISTS Как Работает EXISTS ? 138 Выбор Столбцов с помощью EXISTS 139 Использование EXISTS с Соотнесенными Подзапросами 139 Комбинация EXISTS и Объединения 141 Использование NOT EXISTS 142 EXISTS и Агрегаты 142 Улучшеный Пример Подзапроса 143 Резюме 146 Работа с SQL 147 ГЛАВА 13: ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ ANY, ALL, И SOME Специальный Оператор ANY или SOME 150 Использование IN или EXISTS вместо ANY 151 Как ANY Может Быть Неоднозначным 154 Специальный Оператор ALL 158 Равенства и Неравенства 159 Понимание ANY и ALL 162 Как ANY, ALL, и EXISTS Обращается с Отсутствием Данных и Неизвестными Данными 162 Когда Подзапрос Возвращается Пустым 162 ANY и ALL вместо EXISTS с NULL 163 Использование COUNT вместо EXISTS 164 Резюме 166 Работа с SQL 167 ГЛАВА 14: ИСПОЛЬЗОВАНИЕ ПРЕДЛОЖЕНИЯ UNION Объединение Многих Запросов в Один 170 Когда Вы Можете Делать Объединение между Запросами ? 171 UNION и Удаление Дубликатов 172 Использование Строк и Выражений с UNION 174 Использование UNION с ORDER BY 175 Внешнее Обьединение 177 Резюме 181 Работа с SQL 183 ГЛАВА 15: ВВЕДЕНИЕ, УДАЛЕНИЕ, И ИЗМЕНЕНИЕ ЗНАЧЕНИЯ ПОЛЯ Команды Модификации DML 186 Ввод Значений 186 Вставка NULL 187 Наименование Столбцов для Вставки 187 Вставка Результатов Запроса 188 Удаление Строк из Таблиц 189 Изменение Значений Поля 190 МОДИФИЦИРОВАНИЕ Только Определенных Строк 190 UPDATE с Многочислеными Столбцами 190 Использование Выражений в UPDATE 191 МОДИФИЦИРОВАНИЕ для NULL Значениq 192 Резюме 192 Работа с SQL 193 ГЛАВА 16: ИСПОЛЬЗОВАНИЕ ПОДЗАПРОСОВ С КОМАНДОЙ UPDATE Использование Подзапросов с INSERT 196 Не Вставка Дубликатов Строк 197 Использование Подзапросов Созданых во Внешних Запросах к Таблице 198 Использование Подзапросов с DELETE 199 Использование Подзапросов с UPDATE 202 Знакомство с Ограничениями Подзапросов Команд DML 203 Резюме 204 Работа с SQL 205 ГЛАВА 17: СОЗДАНИЕ ТАБЛИЦ Команда CREATE TABLE 208 Индексы 210 Уникальные Индексы 211 Удаление Индексов 212 Изменение Однажды Созданной Таблицы 212 Удаление Таблиц 214 Резюме 214 Работа с SQL 215 ГЛАВА 18: ОГРАНИЧЕНИЕ ЗНАЧЕНИЙ ВАШИХ ДАННЫХ Ограничение Таблиц 218 Объявление Ограничений 218 Использование Ограничений чтобы Исключать NULL 219 Убедитесь, Что Значения - Уникальны 220 Ограничение ПЕРВИЧНОГО КЛЮЧА 222 Проверка Значений Поля 224 Установить Значение Поля - ПО УМОЛЧАНИЮ 227 Резюме 229 Работа с SQL 231 ГЛАВА 19: ПОДДЕРЖАНИЕ ЦЕЛОСТНОСТИ ВАШИХ ДАННЫХ Внешний Ключ и Родительский Ключ 234 Внешние Ключи Мультистолбцов 235 Значение Внешнего Ключа и Родительского Ключа 235 Ограничение ВНЕШНЕГО КЛЮЧА 236 Как Обьявить Поле Внешним Ключом 236 ВНЕШНИЙ КЛЮЧ как Таблица Ограничений 238 ВНЕШНИЙ КЛЮЧ как Столбец Ограничений 239 Исключение Списков Столбцов Первичного Ключа 239 Как Справочная Целостность Ограничивает Значение Родительского Ключа 240 Первичный Ключ вместо Уникального Родительского Ключа 240 Ограничения Внешнего Ключа 241 Что Случится Когда Вы Выполните Команду Модификации 241 Причастные к Определениям Таблицы 242 Действия Ограничений 243 Внешние Ключи Которые Ссылаются Обратно к Своим Собственным Таблицам 246 Резюме 248 Работа с SQL 250 ГЛАВА 20: ВВЕДЕНИЕ: ПРЕДСТАВЛЕНИЕ Что Такое Представление? 252 Команда CREATE VIEW 252 Модифицирование Представления 254 Именование Столбцов 255 Комбинация Предикатов Представлений И Предикатов Запросов Основанных на Представлениях 256 Сгруппированные Представления 257 Представления и Объединения 258 Представления и Подзапросы 258 Что Не могут Делать Представления 260 Удаление Представлений 261 Резюме 262 Работа с SQL 263 ГЛАВА 21: ИЗМЕНЕНИЕ ЗНАЧЕНИЙ С ПОМОЩЬЮ ПРЕДСТАВЛЕНИЙ Модифицирование Представлений 266 Определить: Модифицируемо ли Представление 268 Представления МОДИФИЦИРУЕМЫЕ и ТОЛЬКО_ЧТЕНИЕ 269 Какие Представления Являются Модифицируемыми 270 Проверка Значений Помещенных в Представление 271 Предикаты и Исключенные Поля 272 Проверка Представлений Которые Базируются на Других Представлениях 274 Резюме 275 Работа с SQL 277 ГЛАВА 22: ОПРЕДЕЛЕНИЕ: КТО ЧТО МОЖЕТ ДЕЛАТЬ Пользователи 280 Регистрация 280 Предоставление Привилегий 281 Стандартные Привилегии 281 Команда GRANT 282 Использование Агрументов ALL и PUBLIC 285 Передача Прав с помощью GRANT OPTION 286 Отнять Привилегии Обратно 287 Использование Представлений Чтобы Фильтровать Привилегии 288 Другие Виды Привилегий 291 Типовые Привилегии Системы 292 Создание и Удаление Пользователей 293 Резюме 294 Работа с SQL 295 ГЛАВА 23: ГЛОБАЛЬНЫЕ АСПЕКТЫ SQL Переименование Таблиц 298 Переименование с Тем Же Именем 298 Одно Имя для Каждого 299 Удаление Синонимов 300 Как - База Данных Распределяет Пользователей? 300 Когда Изменения Становятся Постоянными? 302 Как SQL Общается со Многими Пользователями Сразу 304 Типы Блокировок 307 Другие Способы Блокировки Данных 308 Резюме 309 Работа с SQL 311 ГЛАВА 24: КАК ДАННЫЕ SQL ХРАНЯТСЯ В УПОРЯДОЧЕННОМ ВИДЕ Каталог Системы 314 Типичный Каталог Системы 315 Использование Представлений в Таблицах Каталога 317 Комментарий Содержания Каталога 319 Остальные Каталоги 322 SYSTEMINDEXES - Индексация в Базе Данных 322 SYSTEMUSERAUTH - Пользователи и Привилегии Системы в Базе Данных 323 SYSTEMTABAUTH - Привилегии Объекта Которые Не Являются Указаным Столбцом 324 SYSTEMCOLAUTH - Привилегии Объекта Которые Являются Указаным Столбцом 326 SYSTEMSYNONS - Синонимы для Таблиц Базе Данных 328 Другое Использование Каталогов 329 Резюме 330 Работа с SQL 332 ГЛАВА 25: ИСПОЛЬЗОВАНИЕ SQL С ДРУГИМИ ЯЗЫКАМИ ( ВЛОЖЕННЫЙ SQL ) Что Понимается под Вложением SQL 334 Почему Вкладывают SQL? 334 Как Делается Вложение SQL? 335 Использование Переменных Главного Языка с SQL 336 Объявление Переменных 339 Извлечение Значений в Переменных 339 Курсор 410 SQLCODE 343 Использование SQLCODE для Управления Циклами 345 Команда WHENEVER 345 Модифицирование Курсоров 346 Переменная INDICATOR 349 Использование Переменной INDICATOR для Эмулирования SQL NULL 351 Другие Использования Переменной INDICATOR 352 Резюме 353 Работа с SQL 356 ПРИЛОЖЕНИЕ A: ОТВЕТЫ НА УПРАЖНЕНИЯ 359 ПРИЛОЖЕНИЕ B: ТИПЫ ДАННЫХ SQL 381 ПРИЛОЖЕНИЕ C: НЕКОТОРЫЕ ОБЩИЕ НЕСТАНДАРТНЫЕ ОСОБЕННОСТИ SQL 387 ПРИЛОЖЕНИЕ D: СИНТАКСИС И КОМАНДА ССЫЛКИ 399 ПРИЛОЖЕНИЕ E: ТАБЛИЦЫ ИСПОЛЬЗУЕМЫЕ В ПРИМЕРАХ 419