
- •"Понимание sql"
- •Введение в реляционную базу данных гл.1 введение
- •Понимание sql
- •Что такое - реляционная база данных?
- •Описание реляционных баз данных связывание одной таблицы с другой
- •Порядок строк произволен
- •Идентификация строк ( первичные ключи )
- •Столбцы именуются и нумеруются
- •************** Работа с sql **************
- •Гл.2 sql : обзор
- •Понимание sql
- •Sql: краткий обзор
- •Что делает ansi ?
- •Интерактивный и вложенный sql
- •Субподразделения sql
- •Sql несогласованности
- •Что такое - пользователь?
- •Условия и терминология
- •************** Работа с sql **************
- •Гл.3 использование sql для извлечения информации из таблиц
- •Что такое запрос ?
- •Где применяются запросы ?
- •Команда select
- •Выбирайте всегда самый простой способ
- •Описание select
- •Переупорядочение столбца
- •Удаление избыточных данных
- •Distinct вместо all
- •Квалифицированный выбор при
- •************* Работа с sql ***************
- •Гл.4 использование реляционных и булевых операторов для создания более изощренных предикатов
- •Понимание sql
- •************** Работа с sql **************
- •Гл.5 использование специальных операторов в условиях понимание sql
- •Работа с нулевыми( null ) значениями
- •Использование not со специальными операторами
- •************** Работа с sql **************
- •Гл.6 обобщение данных с помощью агрегатных функций понимание sql
- •Как использовать агрегатные функции ? cуммирование данных с помощью агрегатных функций
- •Специальные атрибуты count
- •Использование distinct
- •Использование count со строками, а не значениями
- •Включение дубликатов в агрегатные функции
- •Агрегаты построенные на скалярном выражении
- •Предложение group by
- •Предложение having
- •Не делайте вложенных агрегатов
- •************** Работа с sql **************
- •Гл.7 формирование выводов запросов
- •Понимание sql
- •Столбцы вывода
- •Помещение текста в вашем выводе запроса
- •Упорядочение с помощью многочисленых столбцов
- •Упорядочение агрегатных групп
- •Упорядочение вывода по номеру столбца
- •Упорядочение с помощью опретора null
- •************** Работа с sql **************
- •Гл.8 запрашивание многочисленых таблиц также как одной
- •Имена таблиц и столбцов
- •Создание обьединения
- •Объединение таблиц через справочную целостность
- •Объединения таблиц по равенству значений в столбцах и другие виды объединений
- •Объединение более двух таблиц
- •************** Работа с sql **************
- •Гл.9 объединение таблицы с собой
- •Псевдонимы
- •Устранение избыточности
- •Проверка ошибок
- •Больше псевдонимов
- •Еще больше комплексных объединений
- •************** Работа с sql **************
- •Гл.10 вставка одного запроса внутрь другого
- •Значения, которые могут выдавать подзапросы
- •Distinct с подзапросами
- •Предикаты с подзапросами являются необратимыми
- •Использование агрегатных функций в подзапросах
- •Использование подзапросов которые выдают много строк с помощью оператора in
- •Подзапросы выбирают одиночные столбцы
- •Использование выражений в подзапросах
- •Подзапросы в предложении having
- •*************** Работа с sql *************
- •Гл.11 соотнесенные подзапросы
- •Как сформировать
- •Как работает соотнесенный подзапрос
- •Использование соотнесенных подзапросов для нахождения ошибок
- •Сравнение таблицы с собой
- •Соотнесенные подзапросы в предложении having
- •Соотнесенные подзапросы и обьединения
- •*************** Работа с sql *************
- •Гл.12 использование оператора exists
- •Выбор столбцов с помощью exists
- •Использование exists с соотнесенными подзапросами
- •Комбинация из exists и обьединения
- •Использование not exists
- •Exists и агрегаты
- •Более удачный пример подзапроса
- •Гл.13 использование операторов any, all и some
- •Использование операторов any, all, и some
- •Использование операторов in или exists вместо оператора any
- •Использование операторов any, all, и some
- •Как any может стать неоднозначным
- •Равенства и неравенства
- •Правильное понимание any и all
- •Any и all вместо exists с пустым указателем( null )
- •Использование count вместо exists
- •Гл.14 использование предложения union
- •Запросов в один
- •Когда вы можете делать объединение между запросами ?
- •Union и устранение дубликатов
- •Использование строк и выражений с union
- •Внешнее объединение
- •Гл.15 ввод, удаление и изменение значений полей
- •Insert (вставить),
- •Вставка пустых указателей (null)
- •Именование столбца для вставки (insert)
- •Вставка результатов запроса
- •Модифицирование только определенных строк
- •Команда update для многих столбцов
- •Использование выражений для модификации
- •Гл.16 использование подзапросов с командами модификации
- •Не вставляйте дубликаты строк
- •Использование подзапросов созданых во внешней таблице запроса
- •Столкновение с ограничениями подзапросов команды dml
- •************** Работа с sql **************
- •Гл.17 создание таблиц понимание sql
- •Уникальность индекса
- •Удаление индексов
- •Изменение таблицы после
- •**************** Работа с sql ************
- •Гл.18 ограничение значений ваших данных понимание sql
- •Объявление ограничений
- •Использование ограничений для исключения пустых( null ) указателей
- •Убедитесь что значения - уникальны
- •Уникальность как ограничение столбца
- •Уникальность как ограничение таблицы
- •Ограничение первичных ключей
- •Первичные ключи более чем одного поля
- •Проверка значений полей
- •Использование - check, чтобы предопределять допустимое вводимое значение
- •Проверка условий базирующийся на многочисленых полях
- •Установка значений поумолчанию
- •Гл.19 поддержка целостности ваших данных понимание sql
- •Много-столбцовые внешние ключи
- •Смысл внешнего и родительского ключей
- •Как можно поля представить в качестве внешних ключей
- •Внешний ключ как ограничение таблицы
- •Внешний ключ как ограничение столбцов
- •Не указывать список столбцов первичных ключей
- •Как справочная целостность ограничивает значения родительского ключа
- •Первичный ключ как уникальный внешний ключ
- •Ограничения внешнего ключа
- •Что случится, если вы выполните команду модификации
- •Действие ограничений
- •Внешние ключи которые ссылаются обратно к их подчиненым таблицам
- •*************** Работа с sql *************
- •Гл.20 введение: представления
- •Модифицирование представлений
- •Комбинирование предикатов представлений и основных запросов в представлениях
- •Групповые представления
- •Представления и обьединения
- •Представления и подзапросы
- •Что не могут делать представления
- •Удаление представлений
- •*************** Работа с sql *************
- •Гл.21 изменение значений с помощью представлений
- •Определение модифицируемости представления
- •Модифицируемые представления и представления только_чтение.
- •Что является - модифицируемыми представлением
- •Проверка значений
- •Предикаты и исключенные поля
- •Проверка представлений которые базируются на других представлениях
- •************** Работа с sql **************
- •Гл.22 кто что может делать в базе данных
- •Регистрация
- •Стандартные привилегии
- •Команда grant
- •Группы привелегий, группы пользователей
- •Ограничение привилегий на определенные столбцы
- •Использование аргументов all и public
- •Предоставление привелегий с помощью with grant option
- •Отмена привилегий
- •Использование представлений для фильтрации привелегий
- •Кто может создавать представления?
- •Ограничение привилегии select для определенных столбцов
- •Предоставление доступа только к извлеченным данным
- •Использование представлений в качестве альтернативы к ограничениям
- •Типичные привилегии системы
- •Создание и удаление пользователей
- •Гл.23 глобальные аспекты sql
- •Переименование с тем же самым именем
- •Одно имя для каждого
- •Удаление синонимов
- •Как база данных распределена для пользователей ?
- •Когда сделанные изменения
- •Как sql общается сразу со многими пользователями
- •Типы блокировок
- •Другие способы блокировки данных
- •************** Работа с sql **************
- •Гл.24 как данные sql содержатся в упорядоченном виде
- •Каталог системы
- •Типичный системный каталог
- •Использование представлений в таблицах каталога
- •Разрешить пользователям видеть(только) их собственные объекты
- •Комментарий в
- •Systemsynons - синонимы для таблиц в базе данных
- •************** Работа с sql **************
- •Гл.25 использование sql с другим языком ( вложенный sql )
- •Что такое - вложение sql
- •Зачем вкладывать sql?
- •Как делаются вложения sql.
- •Использование переменных
- •Объявление переменных
- •Извлечение значений переменных
- •Предложение whenever
- •Использование переменной indicator для эмуляции null значений sql
- •Другое использование переменной indicator
- •************ Работа с sql ***************
- •Приложение a ответы для упражнений
- •Глава 1
- •Глава 2
- •Глава 3
- •Глава 5
- •Глава 6
- •Глава 7
- •Глава 8
- •Глава 9
- •Глава 10
- •Глава 11
- •Глава 12
- •Глава 13
- •Глава 14
- •Глава 15
- •Глава 16
- •Глава 18
- •Глава 19
- •Глава 20
- •Глава 21
- •Глава 22
- •Глава 23
- •Глава 25
- •Приложение b типы данных в sql
- •Эквивалентные типы
- •Приложение c некоторые общие нестандартные средства sql
- •Типы date и time
- •Ibm Европейский
- •Ibm Европейский
- •Ibm usa Стандарт hh.Mm am/pm 9.04 pm
- •Типы текстовой строки
- •Математические функции
- •Символьные функции
- •Функции даты и времени
- •Автоматические
- •Приложение d синтаксис и команда ссылки
- •Функциональные элементы
- •Предикаты
- •Приложение e
"Понимание sql"
Маpтин Гpубеp
Пеpевод Лебедева В.Н.
Редакция Булычева В.Н.
Формат Word 2.0. Вылажено как есть. Рекомендации по печати:поскольку ttf-NT не нашел - заменить весь шрифт на courier чтобы не искажать таблиц. Печатать четные страницы, затем ечетные в обратном порядке - будет компактнее вдвое.
Виктор Селезнёв
Москва 1993
ГЛ.1 ВВЕДЕНИЕ 8
============================================== 8
ПОНИМАНИЕ SQL 9
ЧТО ТАКОЕ - РЕЛЯЦИОННАЯ БАЗА ДАННЫХ? 9
ОПИСАНИЕ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ 9
СВЯЗЫВАНИЕ ОДНОЙ ТАБЛИЦЫ С ДРУГОЙ 9
ПОРЯДОК СТРОК ПРОИЗВОЛЕН 10
ИДЕНТИФИКАЦИЯ СТРОК ( ПЕРВИЧНЫЕ КЛЮЧИ ) 10
СТОЛБЦЫ ИМЕНУЮТСЯ И НУМЕРУЮТСЯ 11
========= ТИПОВАЯ БАЗА ДАННЫХ ========== 11
=========== РЕЗЮМЕ ============ 13
************** РАБОТА С SQL ************** 13
13
13
ГЛ.2 SQL : ОБЗОР 13
============================================== 13
ПОНИМАНИЕ SQL 13
========= КАК РАБОТАЕТ SQL? ========== 14
SQL: КРАТКИЙ ОБЗОР 14
_____________________________________________ 14
ЧТО ДЕЛАЕТ ANSI ? 14
ИНТЕРАКТИВНЫЙ И ВЛОЖЕННЫЙ SQL 14
СУБПОДРАЗДЕЛЕНИЯ SQL 15
======== РАЗЛИЧНЫЕ ТИПЫ ДАННЫХ ======== 15
SQL НЕСОГЛАСОВАННОСТИ 16
ЧТО ТАКОЕ - ПОЛЬЗОВАТЕЛЬ? 17
УСЛОВИЯ И ТЕРМИНОЛОГИЯ 17
============== РЕЗЮМЕ ================ 17
************** РАБОТА С SQL ************** 18
ГЛ.3 ИСПОЛЬЗОВАНИЕ SQL ДЛЯ ИЗВЛЕЧЕНИЯ 19
ИНФОРМАЦИИ ИЗ ТАБЛИЦ 19
============================================== 19
========= СОЗДАНИЕ ЗАПРОСА =========== 19
ЧТО ТАКОЕ ЗАПРОС ? 19
ГДЕ ПРИМЕНЯЮТСЯ ЗАПРОСЫ ? 19
КОМАНДА SELECT 19
ВЫБИРАЙТЕ ВСЕГДА САМЫЙ ПРОСТОЙ СПОСОБ 21
ОПИСАНИЕ SELECT 21
ПЕРЕУПОРЯДОЧЕНИЕ СТОЛБЦА 22
УДАЛЕНИЕ ИЗБЫТОЧНЫХ ДАННЫХ 22
DISTINCT ВМЕСТО ALL 24
КВАЛИФИЦИРОВАННЫЙ ВЫБОР ПРИ 24
======= ИСПОЛЬЗОВАНИИ ПРЕДЛОЖЕНИЙ ======== 24
************* РАБОТА С SQL *************** 25
25
ГЛ.4 ИСПОЛЬЗОВАНИЕ РЕЛЯЦИОННЫХ И БУЛЕВЫХ ОПЕРАТОРОВ ДЛЯ СОЗДАНИЯ БОЛЕЕ ИЗОЩРЕННЫХ ПРЕДИКАТОВ 26
============================================== 26
ПОНИМАНИЕ SQL 26
========= РЕЛЯЦИОННЫЕ ОПЕРАТОРЫ ======= 26
================ РЕЗЮМЕ ================ 31
************** РАБОТА С SQL ************** 31
ГЛ.5 ИСПОЛЬЗОВАНИЕ СПЕЦИАЛЬНЫХ ОПЕРАТОРОВ В УСЛОВИЯХ 33
ПОНИМАНИЕ SQL 33
============ ОПЕРАТОР IN =============== 33
============ ОПЕРАТОР LIKE ============= 36
РАБОТА С НУЛЕВЫМИ( NULL ) ЗНАЧЕНИЯМИ 37
========== NULL ОПЕРАТОР ========= 38
ИСПОЛЬЗОВАНИЕ NOT СО СПЕЦИАЛЬНЫМИ ОПЕРАТОРАМИ 38
=============== РЕЗЮМЕ ================ 39
************** РАБОТА С SQL ************** 39
40
ГЛ.6 ОБОБЩЕНИЕ ДАННЫХ С ПОМОЩЬЮ АГРЕГАТНЫХ ФУНКЦИЙ 40
ПОНИМАНИЕ SQL 40
==== ЧТО ТАКОЕ АГРЕГАТНЫЕ ФУНКЦИИ ? ===== 40
КАК ИСПОЛЬЗОВАТЬ АГРЕГАТНЫЕ ФУНКЦИИ ? 41
CУММИРОВАНИЕ ДАННЫХ С ПОМОЩЬЮ АГРЕГАТНЫХ ФУНКЦИЙ 41
СПЕЦИАЛЬНЫЕ АТРИБУТЫ COUNT 42
ИСПОЛЬЗОВАНИЕ DISTINCT 42
ИСПОЛЬЗОВАНИЕ COUNT СО СТРОКАМИ, А НЕ ЗНАЧЕНИЯМИ 42
ВКЛЮЧЕНИЕ ДУБЛИКАТОВ В АГРЕГАТНЫЕ ФУНКЦИИ 43
АГРЕГАТЫ ПОСТРОЕННЫЕ НА СКАЛЯРНОМ ВЫРАЖЕНИИ 43
ПРЕДЛОЖЕНИЕ GROUP BY 44
ПРЕДЛОЖЕНИЕ HAVING 45
НЕ ДЕЛАЙТЕ ВЛОЖЕННЫХ АГРЕГАТОВ 47
=============== РЕЗЮМЕ ================ 47
************** РАБОТА С SQL ************** 47
ГЛ.7 ФОРМИРОВАНИЕ ВЫВОДОВ ЗАПРОСОВ 48
============================================== 48
ПОНИМАНИЕ SQL 48
=========== СТРОКИ И ВЫРАЖЕНИЯ ============ 48
СТОЛБЦЫ ВЫВОДА 48
ПОМЕЩЕНИЕ ТЕКСТА В ВАШЕМ ВЫВОДЕ ЗАПРОСА 49
======= УПОРЯДОЧЕНИЕ ВЫВОДА ПОЛЕЙ ======== 50
УПОРЯДОЧЕНИЕ С ПОМОЩЬЮ МНОГОЧИСЛЕНЫХ СТОЛБЦОВ 51
УПОРЯДОЧЕНИЕ АГРЕГАТНЫХ ГРУПП 51
УПОРЯДОЧЕНИЕ ВЫВОДА ПО НОМЕРУ СТОЛБЦА 52
УПОРЯДОЧЕНИЕ С ПОМОЩЬЮ ОПРЕТОРА NULL 53
================ РЕЗЮМЕ ================= 53
************** РАБОТА С SQL ************** 54
ГЛ.8 ЗАПРАШИВАНИЕ МНОГОЧИСЛЕНЫХ ТАБЛИЦ ТАКЖЕ КАК ОДНОЙ 54
ИМЕНА ТАБЛИЦ И СТОЛБЦОВ 55
СОЗДАНИЕ ОБЬЕДИНЕНИЯ 55
ОБЪЕДИНЕНИЕ ТАБЛИЦ ЧЕРЕЗ СПРАВОЧНУЮ ЦЕЛОСТНОСТЬ 56
ОБЪЕДИНЕНИЯ ТАБЛИЦ ПО РАВЕНСТВУ ЗНАЧЕНИЙ 56
В СТОЛБЦАХ И ДРУГИЕ ВИДЫ ОБЪЕДИНЕНИЙ 56
ОБЪЕДИНЕНИЕ БОЛЕЕ ДВУХ ТАБЛИЦ 57
************** РАБОТА С SQL ************** 58
ГЛ.9 ОБЪЕДИНЕНИЕ ТАБЛИЦЫ С СОБОЙ 58
============================================== 58
========= КАК ДЕЛАТЬ ОБЪЕДИНЕНИЕ ========== 59
ТАБЛИЦЫ С СОБОЙ ? 59
ПСЕВДОНИМЫ 59
УСТРАНЕНИЕ ИЗБЫТОЧНОСТИ 60
ПРОВЕРКА ОШИБОК 61
БОЛЬШЕ ПСЕВДОНИМОВ 61
ЕЩЕ БОЛЬШЕ КОМПЛЕКСНЫХ ОБЪЕДИНЕНИЙ 61
================ РЕЗЮМЕ ================= 63
************** РАБОТА С SQL ************** 64
ГЛ.10 ВСТАВКА ОДНОГО ЗАПРОСА ВНУТРЬ ДРУГОГО 64
============================================== 64
======== КАК РАБОТАЕТ ПОДЗАПРОС? ========= 64
ЗНАЧЕНИЯ, КОТОРЫЕ МОГУТ ВЫДАВАТЬ ПОДЗАПРОСЫ 65
DISTINCT С ПОДЗАПРОСАМИ 66
ПРЕДИКАТЫ С ПОДЗАПРОСАМИ ЯВЛЯЮТСЯ НЕОБРАТИМЫМИ 67
ИСПОЛЬЗОВАНИЕ АГРЕГАТНЫХ ФУНКЦИЙ В ПОДЗАПРОСАХ 67
ИСПОЛЬЗОВАНИЕ ПОДЗАПРОСОВ КОТОРЫЕ ВЫДАЮТ 68
МНОГО СТРОК С ПОМОЩЬЮ ОПЕРАТОРА IN 68
ПОДЗАПРОСЫ ВЫБИРАЮТ ОДИНОЧНЫЕ СТОЛБЦЫ 71
ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ В ПОДЗАПРОСАХ 71
ПОДЗАПРОСЫ В ПРЕДЛОЖЕНИИ HAVING 71
=============== РЕЗЮМЕ =============== 72
*************** РАБОТА С SQL ************* 72
ГЛ.11 СООТНЕСЕННЫЕ ПОДЗАПРОСЫ 73
============================================== 73
КАК СФОРМИРОВАТЬ 73
========= СООТНЕСЕННЫЙ ПОДЗАПРОС =========== 73
КАК РАБОТАЕТ СООТНЕСЕННЫЙ ПОДЗАПРОС 73
ИСПОЛЬЗОВАНИЕ СООТНЕСЕННЫХ ПОДЗАПРОСОВ 75
ДЛЯ НАХОЖДЕНИЯ ОШИБОК 75
СРАВНЕНИЕ ТАБЛИЦЫ С СОБОЙ 76
СООТНЕСЕННЫЕ ПОДЗАПРОСЫ В ПРЕДЛОЖЕНИИ HAVING 77
СООТНЕСЕННЫЕ ПОДЗАПРОСЫ И ОБЬЕДИНЕНИЯ 77
================ РЕЗЮМЕ ================ 78
*************** РАБОТА С SQL ************* 78
ГЛ.12 ИСПОЛЬЗОВАНИЕ ОПЕРАТОРА EXISTS 79
============================================== 79
========== КАК РАБОТАЕТ EXISTS? ========== 79
ВЫБОР СТОЛБЦОВ С ПОМОЩЬЮ EXISTS 80
ИСПОЛЬЗОВАНИЕ EXISTS С 80
СООТНЕСЕННЫМИ ПОДЗАПРОСАМИ 80
КОМБИНАЦИЯ ИЗ EXISTS И ОБЬЕДИНЕНИЯ 81
ИСПОЛЬЗОВАНИЕ NOT EXISTS 82
EXISTS И АГРЕГАТЫ 82
БОЛЕЕ УДАЧНЫЙ ПРИМЕР ПОДЗАПРОСА 83
================ РЕЗЮМЕ ================ 84
ГЛ.13 ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ ANY, ALL И SOME 85
============================================== 85
========= СПЕЦИАЛЬНЫЕ ОПЕРАТОРЫ ============ 86
ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ ANY, ALL, И SOME 86
ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ IN ИЛИ EXISTS 87
ВМЕСТО ОПЕРАТОРА ANY 87
ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ ANY, ALL, И SOME 88
КАК ANY МОЖЕТ СТАТЬ НЕОДНОЗНАЧНЫМ 88
========= СПЕЦИАЛЬНЫЙ ОПЕРАТОР ALL ========== 91
РАВЕНСТВА И НЕРАВЕНСТВА 92
ПРАВИЛЬНОЕ ПОНИМАНИЕ ANY И ALL 93
ANY И ALL ВМЕСТО EXISTS С 94
ПУСТЫМ УКАЗАТЕЛЕМ( NULL ) 94
ИСПОЛЬЗОВАНИЕ COUNT ВМЕСТО EXISTS 95
============== РЕЗЮМЕ ================ 96
ГЛ.14 ИСПОЛЬЗОВАНИЕ ПРЕДЛОЖЕНИЯ UNION 97
===== ОБЪЕДИНЕНИЕ МНОГОЧИСЛЕННЫХ ======= 97
ЗАПРОСОВ В ОДИН 97
КОГДА ВЫ МОЖЕТЕ ДЕЛАТЬ ОБЪЕДИНЕНИЕ МЕЖДУ ЗАПРОСАМИ ? 98
UNION И УСТРАНЕНИЕ ДУБЛИКАТОВ 99
ИСПОЛЬЗОВАНИЕ СТРОК И ВЫРАЖЕНИЙ С UNION 100
=====ИСПОЛЬЗОВАНИЕ UNION С ORDER BY ===== 101
ВНЕШНЕЕ ОБЪЕДИНЕНИЕ 102
105
ГЛ.15 ВВОД, УДАЛЕНИЕ и ИЗМЕНЕНИЕ ЗНАЧЕНИЙ ПОЛЕЙ 106
== КОМАНДЫ МОДИФИКАЦИИ ЯЗЫКА DML == 106
============ ВВОД ЗНАЧЕНИЙ =============== 106
ВСТАВКА ПУСТЫХ УКАЗАТЕЛЕЙ (NULL) 107
ИМЕНОВАНИЕ СТОЛБЦА ДЛЯ ВСТАВКИ (INSERT) 107
ВСТАВКА РЕЗУЛЬТАТОВ ЗАПРОСА 107
========= УДАЛЕНИЕ СТРОК ИЗ ТАБЛИЦ ========= 108
=========== ИЗМЕНЕНИЕ ЗНАЧЕНИЙ ПОЛЯ ======== 108
МОДИФИЦИРОВАНИЕ ТОЛЬКО ОПРЕДЕЛЕННЫХ СТРОК 109
КОМАНДА UPDATE ДЛЯ МНОГИХ СТОЛБЦОВ 109
ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ ДЛЯ МОДИФИКАЦИИ 109
110
111
ГЛ.16 ИСПОЛЬЗОВАНИЕ ПОДЗАПРОСОВ С КОМАНДАМИ МОДИФИКАЦИИ 112
==== ИСПОЛЬЗОВАНИЕ ПОДЗАПРОСОВ С INSERT === 112
НЕ ВСТАВЛЯЙТЕ ДУБЛИКАТЫ СТРОК 113
ИСПОЛЬЗОВАНИЕ ПОДЗАПРОСОВ СОЗДАНЫХ 113
ВО ВНЕШНЕЙ ТАБЛИЦЕ ЗАПРОСА 113
==== ИСПОЛЬЗОВАНИЕ ПОДЗАПРОСОВ С DELETE ==== 114
==== ИСПОЛЬЗОВАНИЕ ПОДЗАПРОСОВ С UPDATE ==== 116
СТОЛКНОВЕНИЕ С ОГРАНИЧЕНИЯМИ 116
ПОДЗАПРОСОВ КОМАНДЫ DML 116
=============== РЕЗЮМЕ ================== 117
************** РАБОТА С SQL ************** 117
ГЛ.17 СОЗДАНИЕ ТАБЛИЦ 117
ПОНИМАНИЕ SQL 117
======== КОМАНДА СОЗДАНИЯ ТАБЛИЦЫ ======== 118
=============== ИНДЕКСЫ ================= 119
УНИКАЛЬНОСТЬ ИНДЕКСА 120
УДАЛЕНИЕ ИНДЕКСОВ 120
ИЗМЕНЕНИЕ ТАБЛИЦЫ ПОСЛЕ 120
======== ТОГО КАК ОНА БЫЛА СОЗДАНА ======== 120
============= УДАЛЕНИЕ ТАБЛИЦ =============== 121
=============== РЕЗЮМЕ =============== 121
**************** РАБОТА С SQL ************ 122
ГЛ.18 ОГРАНИЧЕНИЕ ЗНАЧЕНИЙ ВАШИХ ДАННЫХ 123
ПОНИМАНИЕ SQL 123
=========== ОГРАНИЧЕНИЕ ТАБЛИЦ ========== 123
ОБЪЯВЛЕНИЕ ОГРАНИЧЕНИЙ 123
ИСПОЛЬЗОВАНИЕ ОГРАНИЧЕНИЙ ДЛЯ ИСКЛЮЧЕНИЯ 124
ПУСТЫХ( NULL ) УКАЗАТЕЛЕЙ 124
УБЕДИТЕСЬ ЧТО ЗНАЧЕНИЯ - УНИКАЛЬНЫ 124
УНИКАЛЬНОСТЬ КАК ОГРАНИЧЕНИЕ СТОЛБЦА 124
УНИКАЛЬНОСТЬ КАК ОГРАНИЧЕНИЕ ТАБЛИЦЫ 125
ОГРАНИЧЕНИЕ ПЕРВИЧНЫХ КЛЮЧЕЙ 126
ПЕРВИЧНЫЕ КЛЮЧИ БОЛЕЕ ЧЕМ ОДНОГО ПОЛЯ 126
ПРОВЕРКА ЗНАЧЕНИЙ ПОЛЕЙ 126
ИСПОЛЬЗОВАНИЕ - CHECK, ЧТОБЫ ПРЕДОПРЕДЕЛЯТЬ ДОПУСТИМОЕ 127
ВВОДИМОЕ ЗНАЧЕНИЕ 127
ПРОВЕРКА УСЛОВИЙ БАЗИРУЮЩИЙСЯ НА МНОГОЧИСЛЕНЫХ ПОЛЯХ 128
УСТАНОВКА ЗНАЧЕНИЙ ПОУМОЛЧАНИЮ 128
============= РЕЗЮМЕ ================ 130
ГЛ.19 ПОДДЕРЖКА ЦЕЛОСТНОСТИ ВАШИХ ДАННЫХ 130
ПОНИМАНИЕ SQL 130
= ВНЕШНИЙ КЛЮЧ И РОДИТЕЛЬСКИЙ КЛЮЧ = 131
МНОГО-СТОЛБЦОВЫЕ ВНЕШНИЕ КЛЮЧИ 131
СМЫСЛ ВНЕШНЕГО И РОДИТЕЛЬСКОГО КЛЮЧЕЙ 131
======= ОГРАНИЧЕНИЕ FOREIGN KEY ======= 132
КАК МОЖНО ПОЛЯ ПРЕДСТАВИТЬ В КАЧЕСТВЕ ВНЕШНИХ КЛЮЧЕЙ 132
ВНЕШНИЙ КЛЮЧ КАК ОГРАНИЧЕНИЕ ТАБЛИЦЫ 132
ВНЕШНИЙ КЛЮЧ КАК ОГРАНИЧЕНИЕ СТОЛБЦОВ 133
НЕ УКАЗЫВАТЬ СПИСОК СТОЛБЦОВ ПЕРВИЧНЫХ КЛЮЧЕЙ 133
КАК СПРАВОЧНАЯ ЦЕЛОСТНОСТЬ ОГРАНИЧИВАЕТ 134
ЗНАЧЕНИЯ РОДИТЕЛЬСКОГО КЛЮЧА 134
ПЕРВИЧНЫЙ КЛЮЧ КАК УНИКАЛЬНЫЙ 134
ВНЕШНИЙ КЛЮЧ 134
ОГРАНИЧЕНИЯ ВНЕШНЕГО КЛЮЧА 134
ЧТО СЛУЧИТСЯ, ЕСЛИ ВЫ ВЫПОЛНИТЕ КОМАНДУ МОДИФИКАЦИИ 135
ДЕЙСТВИЕ ОГРАНИЧЕНИЙ 136
ВНЕШНИЕ КЛЮЧИ КОТОРЫЕ ССЫЛАЮТСЯ 137
ОБРАТНО К ИХ ПОДЧИНЕНЫМ ТАБЛИЦАМ 137
=============== РЕЗЮМЕ =============== 139
*************** РАБОТА С SQL ************* 139
ГЛ.20 ВВЕДЕНИЕ: ПРЕДСТАВЛЕНИЯ 140
====== ЧТО ТАКОЕ ПРЕДСТАВЛЕНИЕ ? ===== 140
============= КОМАНДА CREATE VIEW =========== 140
МОДИФИЦИРОВАНИЕ ПРЕДСТАВЛЕНИЙ 142
КОМБИНИРОВАНИЕ ПРЕДИКАТОВ ПРЕДСТАВЛЕНИЙ 142
И ОСНОВНЫХ ЗАПРОСОВ В ПРЕДСТАВЛЕНИЯХ 142
ГРУППОВЫЕ ПРЕДСТАВЛЕНИЯ 143
ПРЕДСТАВЛЕНИЯ И ОБЬЕДИНЕНИЯ 144
ПРЕДСТАВЛЕНИЯ И ПОДЗАПРОСЫ 145
ЧТО НЕ МОГУТ ДЕЛАТЬ ПРЕДСТАВЛЕНИЯ 146
УДАЛЕНИЕ ПРЕДСТАВЛЕНИЙ 146
=============== РЕЗЮМЕ ============== 146
*************** РАБОТА С SQL ************* 147
ГЛ.21 ИЗМЕНЕНИЕ ЗНАЧЕНИЙ С ПОМОЩЬЮ ПРЕДСТАВЛЕНИЙ 148
==== МОДИФИЦИРОВАНИЕ ПРЕДСТАВЛЕНИЯ ===== 148
ОПРЕДЕЛЕНИЕ МОДИФИЦИРУЕМОСТИ ПРЕДСТАВЛЕНИЯ 149
МОДИФИЦИРУЕМЫЕ ПРЕДСТАВЛЕНИЯ И ПРЕДСТАВЛЕНИЯ ТОЛЬКО_ЧТЕНИЕ. 149
ЧТО ЯВЛЯЕТСЯ - МОДИФИЦИРУЕМЫМИ ПРЕДСТАВЛЕНИЕМ 150
ПРОВЕРКА ЗНАЧЕНИЙ 151
====== ПОМЕЩАЕМЫХ В ПРЕДСТАВЛЕНИЕ ===== 151
ПРЕДИКАТЫ И ИСКЛЮЧЕННЫЕ ПОЛЯ 151
ПРОВЕРКА ПРЕДСТАВЛЕНИЙ КОТОРЫЕ БАЗИРУЮТСЯ НА ДРУГИХ ПРЕДСТАВЛЕНИЯХ 152
============== РЕЗЮМЕ ================= 153
************** РАБОТА С SQL ************** 154
ГЛ.22 КТО ЧТО МОЖЕТ ДЕЛАТЬ В БАЗЕ ДАННЫХ 156
============== ПОЛЬЗОВАТЕЛИ =============== 156
РЕГИСТРАЦИЯ 156
======== ПРЕДОСТАВЛЕНИЕ ПРИВИЛЕГИЙ ========= 156
СТАНДАРТНЫЕ ПРИВИЛЕГИИ 157
КОМАНДА GRANT 157
ГРУППЫ ПРИВЕЛЕГИЙ, ГРУППЫ ПОЛЬЗОВАТЕЛЕЙ 158
ОГРАНИЧЕНИЕ ПРИВИЛЕГИЙ НА ОПРЕДЕЛЕННЫЕ СТОЛБЦЫ 158
ИСПОЛЬЗОВАНИЕ АРГУМЕНТОВ ALL И PUBLIC 159
ПРЕДОСТАВЛЕНИЕ ПРИВЕЛЕГИЙ С ПОМОЩЬЮ WITH GRANT OPTION 159
ОТМЕНА ПРИВИЛЕГИЙ 161
ИСПОЛЬЗОВАНИЕ ПРЕДСТАВЛЕНИЙ ДЛЯ ФИЛЬТРАЦИИ ПРИВЕЛЕГИЙ 161
КТО МОЖЕТ СОЗДАВАТЬ ПРЕДСТАВЛЕНИЯ? 161
161
ОГРАНИЧЕНИЕ ПРИВИЛЕГИИ SELECT ДЛЯ ОПРЕДЕЛЕННЫХ СТОЛБЦОВ 162
ПРЕДОСТАВЛЕНИЕ ДОСТУПА ТОЛЬКО К ИЗВЛЕЧЕННЫМ ДАННЫМ 162
ИСПОЛЬЗОВАНИЕ ПРЕДСТАВЛЕНИЙ В КАЧЕСТВЕ 163
АЛЬТЕРНАТИВЫ К ОГРАНИЧЕНИЯМ 163
========= ДРУГИЕ ТИПЫ ПРИВИЛЕГИЙ =========== 163
ТИПИЧНЫЕ ПРИВИЛЕГИИ СИСТЕМЫ 164
СОЗДАНИЕ И УДАЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ 164
================ РЕЗЮМЕ =============== 165
************** РАБОТА С SQL ************** 165
ГЛ.23 ГЛОБАЛЬНЫЕ АСПЕКТЫ SQL 166
======= ПЕРЕИМЕНОВАНИЕ ТАБЛИЦ ======== 166
ПЕРЕИМЕНОВАНИЕ С ТЕМ ЖЕ САМЫМ ИМЕНЕМ 167
ОДНО ИМЯ ДЛЯ КАЖДОГО 167
УДАЛЕНИЕ СИНОНИМОВ 167
КАК БАЗА ДАННЫХ РАСПРЕДЕЛЕНА 167
ДЛЯ ПОЛЬЗОВАТЕЛЕЙ ? 167
КОГДА СДЕЛАННЫЕ ИЗМЕНЕНИЯ 169
======== СТАНОВЯТСЯ ПОСТОЯННЫМИ ? ======= 169
КАК SQL ОБЩАЕТСЯ СРАЗУ 170
СО МНОГИМИ ПОЛЬЗОВАТЕЛЯМИ 170
ТИПЫ БЛОКИРОВОК 172
ДРУГИЕ СПОСОБЫ БЛОКИРОВКИ ДАННЫХ 172
============== РЕЗЮМЕ =================== 173
************** РАБОТА С SQL ************** 173
ГЛ.24 КАК ДАННЫЕ SQL СОДЕРЖАТСЯ В УПОРЯДОЧЕННОМ ВИДЕ 175
КАТАЛОГ СИСТЕМЫ 175
ТИПИЧНЫЙ СИСТЕМНЫЙ КАТАЛОГ 175
ИСПОЛЬЗОВАНИЕ ПРЕДСТАВЛЕНИЙ В ТАБЛИЦАХ КАТАЛОГА 176
РАЗРЕШИТЬ ПОЛЬЗОВАТЕЛЯМ ВИДЕТЬ(ТОЛЬКО) 177
ИХ СОБСТВЕННЫЕ ОБЪЕКТЫ 177
КОММЕНТАРИЙ В 178
========== СОДЕРЖАНИИ КАТАЛОГА ============ 178
=========== ОСТАЛЬНОЕ ИЗ КАТАЛОГА=========== 181
SYSTEMSYNONS - СИНОНИМЫ ДЛЯ ТАБЛИЦ 184
В БАЗЕ ДАННЫХ 184
====== ДРУГОЕ ИСПОЛЬЗОВАНИЕ КАТАЛОГА ======= 186
================ РЕЗЮМЕ ================= 187
************** РАБОТА С SQL ************** 187
ГЛ.25 ИСПОЛЬЗОВАНИЕ SQL С ДРУГИМ ЯЗЫКОМ ( ВЛОЖЕННЫЙ SQL ) 188
ЧТО ТАКОЕ - ВЛОЖЕНИЕ SQL 188
ЗАЧЕМ ВКЛАДЫВАТЬ SQL? 188
КАК ДЕЛАЮТСЯ ВЛОЖЕНИЯ SQL. 189
ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ 189
======= ОСНОВНОГО ЯЗЫКА В SQL ======= 189
ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ 190
ИЗВЛЕЧЕНИЕ ЗНАЧЕНИЙ ПЕРЕМЕННЫХ 191
КУРСОР 192
============== SQL КОДЫ =================== 193
ПРЕДЛОЖЕНИЕ WHENEVER 194
========= ПЕРЕМЕННАЯ INDICATOR ========== 197
ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННОЙ INDICATOR 198
ДЛЯ ЭМУЛЯЦИИ NULL ЗНАЧЕНИЙ SQL 198
ДРУГОЕ ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННОЙ INDICATOR 199
================ РЕЗЮМЕ ================= 199
************ РАБОТА С SQL *************** 200
Приложение A 201
ОТВЕТЫ ДЛЯ УПРАЖНЕНИЙ 201
Приложение B 216
ТИПЫ ДАННЫХ В SQL 216
======== ТИПЫ ANSI ========= 216
ЭКВИВАЛЕНТНЫЕ ТИПЫ 217
===== ДАННЫХ В ДРУГИХ ЯЗЫКАХ ====== 217
Приложение C 219
НЕКОТОРЫЕ ОБЩИЕ НЕСТАНДАРТНЫЕ СРЕДСТВА SQL 219
============== ТИПЫ ДАННЫХ ================= 219
ТИПЫ DATE И TIME 219
ТИПЫ ТЕКСТОВОЙ СТРОКИ 220
============= КОМАНДА FORMAT =============== 221
================ ФУНКЦИИ ==================== 222
МАТЕМАТИЧЕСКИЕ ФУНКЦИИ 222
СИМВОЛЬНЫЕ ФУНКЦИИ 222
ФУНКЦИИ ДАТЫ И ВРЕМЕНИ 223
========== INTERSECT И MINUS ========== 224
АВТОМАТИЧЕСКИЕ 224
========== ВНЕШНИЕ ОБЬЕДИНЕНИЯ =========== 224
========== ОТСЛЕЖИВАНИЕ ДЕЙСТВИЙ ============= 225
Приложение D 226
СИНТАКСИС И КОМАНДА ССЫЛКИ 226
=============== SQL ЭЛЕМЕНТЫ =============== 227
ФУНКЦИОНАЛЬНЫЕ ЭЛЕМЕНТЫ 228
ПРЕДИКАТЫ 229
=============== SQL КОМАНДЫ ================ 232
Приложение E 238
ТАБЛИЦЫ ИСПОЛЬЗУЕМЫЕ В SQL 238