Таблицы, используемые в SQL

ТАБЛИЦА 1: ПРОДАВЦЫ

snum sname city comm
Peel London .12
Serres San Jose .13
Motika London .11
Rifkin Barcelona .15
Axelrod New York .10

ТАБЛИЦА 2: ЗАКАЗЧИКИ

cnum cname city rating snum
Hoffman London
Giovanni Rome
Liu San Jose
Grass Berlin
Clemens London
Cisneros San Jose
Pereira Rome

ТАБЛИЦА 3: ЗАКАЗЫ

onum amt odate cnum snum
18.69 10/03/1990
767.19 10/03/1990
1900.10 10/03/1990
5160.45 10/03/1990
1098.16 10/03/1990
1713.23 10/04/1990
75.75 10/04/1990
4723.00 10/05/1990
1309.95 10/06/1990
9891.88 10/06/1990

СОДЕРЖАНИЕ

Введение в реляционные базы данных........................................................................................... 1

Введение................................................................... 1

Что такое реляционная база данных?......................................... 1

Связывание одной таблицы с другой.......................................... 2

Порядок строк произволен................................................... 2

Идентификация строк (первичные ключи)...................................... 2

Столбцы именуются и нумеруются............................................. 2

Типовая база данных........................................................ 3

Резюме..................................................................... 5

Работа с SQL............................................................... 5

SQL: обзор.......................................................................................................................................... 6

Как работает SQL?.......................................................... 6

Что делает ANSI?........................................................... 6

Интерактивный и встроенный SQL............................................. 6

Подразделы SQL............................................................. 7

Различные типы данных...................................................... 7

Несогласованности SQL...................................................... 8

Что такое пользователь?.................................................... 8

Условия и терминология..................................................... 8

Резюме..................................................................... 8

Работа с SQL............................................................... 9

Использование SQL для извлечения информации из таблиц....................................................... 10

Создание запроса.......................................................... 10

Что такое запрос?......................................................... 10

Где применяются запросы?.................................................. 10

Команда SELECT............................................................ 10

Выбирайте всегда самый простой способ..................................... 11

Описание SELECT........................................................... 11

Просмотр определенного столбца таблицы.................................... 11

Переупорядочивание столбцов............................................... 12

Удаление избыточных данных................................................ 12

Параметры DISTINCT........................................................ 13

ALL вместо DISTINCT....................................................... 13

Квалифицированный выбор при использовании предложений..................... 14

Резюме.................................................................... 14

Работа с SQL.............................................................. 15

Использование реляционных и булевых операторов для создания более изощрённых предикатов 16

Реляционные операторы..................................................... 16

Булевы операторы.......................................................... 17

Резюме.................................................................... 20

Работа с SQL.............................................................. 20

Использование специальных операторов в условиях................................................................... 21

Оператор IN............................................................... 21

Оператор BETWEEN.......................................................... 22

Оператор LIKE............................................................. 23

Работа с нулевыми (NULL) значениями....................................... 25

Оператор NULL............................................................. 25

Использование NOT со специальными операторами............................. 25

Резюме.................................................................... 26

Работа с SQL.............................................................. 26

Обобщение данных с помощью агрегатных функций.................................................................. 27

Что такое агрегатные функции?............................................. 27

Как использовать агрегатные функции?...................................... 27

Специальные атрибуты COUNT................................................ 28

Использование DISTINCT.................................................... 28

Использование COUNT со строками, а не значениями.......................... 28

Включение дубликатов в агрегатные функции................................. 29

Агрегаты, построенные на скалярном выражении.............................. 29

Предложение GROUP BY...................................................... 29

Предложение HAVING........................................................ 30

Не делайте вложенных агрегатов............................................ 32

Резюме.................................................................... 32

Работа с SQL.............................................................. 32

Форматирование вывода запросов................................................................................................ 34

Строки и выражения........................................................ 34

Скалярное выражение на основе выбираемых полей........................................ 34

Столбцы вывода.................................................................................................... 34

Помещение текста в вашем выводе запроса...................................................... 34

Упорядочение вывода полей................................................. 35

Упорядочение по нескольким столбцам............................................................... 36

Упорядочение агрегатных групп.......................................................................... 37

Упорядочение вывода по номеру столбца........................................................... 37

Упорядочение с помощью оператора NULL......................................................... 38

Резюме.................................................................... 38

Работа с SQL.............................................................. 38

Запрос из нескольких таблиц так же, как из одной...................................................................... 41

Объединение таблиц........................................................ 41

Имена таблиц и столбцов................................................... 41

Создание объединения...................................................... 41

Объединение таблиц через справочную целостность........................... 42

Объединения таблиц по равенству значений в столбцах и другие виды объединений 43

Объединение более двух таблиц............................................. 43

Резюме.................................................................... 44

Работа с SQL.............................................................. 44

Объединение таблицы с собой........................................................................................................ 45

Как делать объединение таблицы с собой?................................... 45

Псевдонимы................................................................ 45

Устранение избыточности................................................... 46

Проверка ошибок........................................................... 47

Больше псевдонимов ....................................................... 47

Еще больше комплексных объединений........................................ 47

Резюме.................................................................... 49

Работа с SQL.............................................................. 49

Вставка одного запроса внутрь другого........................................................................................ 50

Как работает подзапрос?................................................... 50

Значения, которые могут выдавать подзапросы............................... 51

DISTINCT с подзапросами................................................... 51

Предикаты с подзапросами являются необратимыми............................ 52

Использование агрегатных функций в подзапросах............................ 52

Использование подзапросов, которые выдают много строк с помощью оператора IN 53

Подзапросы выбирают одиночные столбцы..................................... 55

Использование выражений в подзапросах..................................... 55

Подзапросы в предложении HAVING........................................... 55

Резюме.................................................................... 56

Работа с SQL.............................................................. 56

Соотнесенные подзапросы............................................................................................................. 57

Как сформировать соотнесенный подзапрос................................... 57

Как работает соотнесенный подзапрос....................................... 57

Использование соотнесенных подзапросов
для нахождения ошибок........................................................... 59

Сравнение таблицы с собой................................................. 59

Соотнесенные подзапросы в предложении HAVING.............................. 60

Соотнесенные подзапросы и объединения..................................... 61

Резюме.................................................................... 61

Работа с SQL.............................................................. 61

Использование оператора EXISTS.................................................................................................. 62

Как работает EXISTS?...................................................... 62

Выбор столбцов с помощью EXISTS........................................... 63

Использование EXISTS с соотнесенными подзапросами......................... 63

Комбинация из EXISTS и объединения........................................ 63

Использование NOT EXISTS.................................................. 64

EXISTS и агрегаты......................................................... 64

Более удачный пример подзапроса........................................... 65

Резюме.................................................................... 66

Работа с SQL.............................................................. 66

Использование операторов ANY, ALL и SOME............................................................................... 67

Специальные операторы ANY или SOME........................................ 67

Использование операторов IN или EXISTS вместо оператора ANY............... 67

Как ANY может стать неоднозначным......................................... 69

Специальный оператор ALL.................................................. 71

Равенства и неравенства................................................... 72

Правильное понимание ANY и ALL............................................ 73

Как ANY, ALL, и EXIST поступают с отсутствующими и неизвестными данными... 73

Когда подзапрос возвращается пустым....................................... 73

ANY и ALL вместо EXISTS с пустым указателем (NULL)........................ 74

Использование COUNT вместо EXISTS......................................... 74

Резюме.................................................................... 75

Работа с SQL.............................................................. 75

Использование предложения UNION.............................................................................................. 77

Объединение нескольких запросов в один.................................... 77

Когда вы можете делать объединение между запросами?....................... 77

UNION и устранение дубликатов............................................. 78

Использование строк и выражений с UNION................................... 79

Использование UNION с ORDER BY............................................ 80

Внешнее объединение....................................................... 81

Резюме.................................................................... 83

Работа с SQL.............................................................. 83

Ввод, удаление и изменение значений полей................................................................................ 85

Команды модификации языка DML............................................. 85

Ввод значений............................................................. 85

Вставка пустых указателей (NULL).......................................... 85

Именование столбца для вставки (INSERT)................................... 85

Вставка результатов запроса............................................... 86

Изменение значений поля................................................... 87

Модифицирование только определенных строк................................. 87

Команда UPDATE для многих столбцов........................................ 87

Использование выражений для модификации................................... 87

Модифицирование пустых (NULL) значений.................................... 87

Резюме.................................................................... 88

Работа с SQL.............................................................. 88

Использование подзапросов с командами модификации............................................................ 89

Использование подзапросов с INSERT........................................ 89

Не вставляйте дубликаты строк............................................. 89

Использование подзапросов, созданных во внешней таблице запроса........... 90

Использование подзапросов с DELETE........................................ 90

Использование подзапросов с UPDATE........................................ 91

Столкновение с ограничениями подзапросов команды DML...................... 92

Резюме.................................................................... 92

Работа с SQL.............................................................. 92

Создание таблиц............................................................................................................................. 93

Команда создания таблицы.................................................. 93

Индексы................................................................... 94

Уникальность индекса...................................................... 94

Удаление индексов......................................................... 95

Изменение таблицы после того, как она была создана........................ 95

Удаление таблиц........................................................... 95

Резюме.................................................................... 95

Работа с SQL.............................................................. 96

Ограничение значений ваших данных.......................................................................................... 97

Ограничение таблиц........................................................ 97

Объявление ограничений.................................................... 97

Использование ограничений для исключения пустых (NULL) указателей......... 97

Убедитесь, что значения уникальны......................................... 98

Уникальность как ограничение столбца...................................... 98

Уникальность как ограничение таблицы...................................... 98

Ограничение первичных ключей.............................................. 99

Первичные ключи более чем одного поля .................................... 99

Проверка значений полей (CHECK).......................................... 100

Использование CHECK, чтобы предопределять допустимое вводимое значение... 100

Проверка условий, базирующаяся на нескольких полях....................... 101

Установка значений по умолчанию.......................................... 101

Резюме................................................................... 102

Работа с SQL............................................................. 102

Поддержка целостности ваших данных...................................................................................... 104

Внешний ключ и родительский ключ......................................... 104

Многостолбцовые внешние ключи............................................ 104

Смысл внешнего и родительского ключей.................................... 104

Ограничение FOREIGN KEY.................................................. 105

Как можно поля представить в качестве внешних ключей..................... 105

Внешний ключ как ограничение таблицы..................................... 105

Внешний ключ как ограничение столбцов.................................... 106

Не указывать список столбцов первичных ключей............................ 106

Как справочная целостность ограничивает значения родительского ключа..... 106

Первичный ключ как уникальный внешний ключ............................... 106

Ограничения внешнего ключа............................................... 107

Что случится, если вы выполните команду модификации...................... 107

Включение описаний таблицы............................................... 107

Действие ограничений..................................................... 108

Внешние ключи, которые ссылаются
обратно к их подчиненным таблицам.............................................. 109

Резюме................................................................... 110

Работа с SQL............................................................. 110

Введение в представления........................................................................................................... 111

Что такое представление?................................................. 111

Команда CREATE VIEW...................................................... 111

Модифицирование представлений............................................ 112

Именование столбцов...................................................... 112

Комбинирование предикатов представлений и основных запросов в представлениях 112

Групповые представления.................................................. 113

Представления и объединения.............................................. 114

Представления и подзапросы............................................... 115

Чего не могут делать представления....................................... 115

Удаление представлений................................................... 115

Резюме................................................................... 115

Работа с SQL............................................................. 116

Изменение значений с помощью представлений........................................................................ 117

Модифицирование представления............................................ 117

Определение модифицируемости представления............................... 118

Модифицируемые представления
и представления "только чтение"................................................ 118

Что является модифицируемым представлением............................... 118

Проверка значений, помещаемых в представление............................ 119

Предикаты и исключенные поля............................................. 120

Проверка представлений, которые базируются на других представлениях...... 120

Резюме................................................................... 121

Работа с SQL............................................................. 121

Кто что может делать в базе данных........................................................................................... 123

Пользователи............................................................. 123

Регистрация.............................................................. 123

Предоставление привилегий................................................ 123

Стандартные привилегии................................................... 123

Команда GRANT............................................................ 124

Группы привилегий, группы пользователей.................................. 124

Ограничение привилегий на определенные столбцы........................... 124

Использование аргументов ALL и PUBLIC.................................... 125

Предоставление привилегий с помощью WITH GRANT OPTION.................... 125

Отмена привилегий........................................................ 126

Использование представлений для фильтрации привилегий.................... 126

Кто может создавать представления?....................................... 126

Ограничение привилегии SELECT для определенных столбцов.................. 126

Ограничение привилегий для определенных строк............................ 127

Предоставление доступа только к извлеченным данным....................... 127

Использование представлений в качестве альтернативы к ограничениям....... 127

Другие типы привилегий................................................... 128

Типичные привилегии системы.............................................. 128

Создание и удаление пользователей........................................ 128

Резюме................................................................... 129

Работа с SQL............................................................. 129

Глобальные аспекты SQL............................................................................................................. 130

Переименование таблиц.................................................... 130

Переименование с тем же самым именем..................................... 130

Одно имя для каждого..................................................... 130

Удаление синонимов....................................................... 131

Как база данных распределена для пользователей?.......................... 131

Когда сделанные изменения становятся постоянными?........................ 132

Как SQL общается сразу со многими пользователями......................... 133

Типы блокировок.......................................................... 134

Другие способы блокировки данных......................................... 134

Резюме................................................................... 135

Работа с SQL............................................................. 135

Как данные SQL содержатся в упорядоченном виде................................................................. 136

Каталог системы.......................................................... 136

Типичный системный каталог............................................... 136

Использование представлений в таблицах каталога.......................... 137

Разрешить пользователям видеть (только) их собственные объекты........... 137

Комментарий в содержании каталога........................................ 138

Остальное из каталога.................................................... 139

Другое использование каталога............................................ 142

Резюме................................................................... 143

РАБОТА С SQL............................................................. 143

Использование SQL с другим языком (встроенный SQL)........................................................... 144

Что такое вложение SQL................................................... 144

Зачем вкладывать SQL?.................................................... 144

Как делаются вложения SQL................................................ 144

Использование переменных основного языка в SQL........................... 145

Объявление переменных.................................................... 146

Извлечение значений переменных........................................... 146

Курсор................................................................... 147

SQLCODE.................................................................. 148

Использование SQLCODE для управления циклами............................. 148

Предложение WHENEVER..................................................... 149

Модифицирование курсоров................................................. 149

Переменная INDICATOR..................................................... 150

Использование переменной INDICATOR для эмуляции NULL значений SQL ....... 151

Другое использование переменной INDICATOR................................ 152

Резюме................................................................... 152

Работа с SQL............................................................. 153

Ответы для упражнений............................................................................................................... 154

Глава 1.................................................................. 154

Глава 2.................................................................. 154

Глава 3.................................................................. 154

Глава 4.................................................................. 154

Глава 5.................................................................. 155

Глава 6.................................................................. 155

Глава 7.................................................................. 156

Глава 8.................................................................. 156

Глава 9.................................................................. 156

Глава 10................................................................. 157

Глава 11................................................................. 157

Глава 12................................................................. 158

Глава 13................................................................. 158

Глава 14................................................................. 159

Глава 15................................................................. 159

Глава 16................................................................. 160

Глава 17................................................................. 160

Глава 18................................................................. 160

Глава 19................................................................. 161

Глава 20................................................................. 161

Глава 21................................................................. 162

Глава 22................................................................. 162

Глава 23................................................................. 162

Глава 24................................................................. 163

Глава 25................................................................. 164

Типы данных в SQL...................................................................................................................... 167

Типы ANSI................................................................ 167

Эквивалентные типы данных в других языках................................ 167

Некоторые общие нестандартные средства SQL........................................................................ 169

Типы данных.............................................................. 169

Команда FORMAT........................................................... 170

Функции.................................................................. 171

INTERSECT и MINUS........................................................ 171

Автоматические внешние объединения....................................... 172

Отслеживание действий.................................................... 172

Справочник по командам и синтаксису...................................................................................... 174

SQL элементы............................................................. 174

SQL команды.............................................................. 177

Таблицы, используемые в SQL..................................................................................................... 182


Наши рекомендации