- •Iso (международной организацией по
- •2 Понимание sql
- •Что такое - реляционная база данных?
- •Порядок строк произволен
- •4 Понимание sql ___________________________________________________________________
- •Идентификация строк ( первичные ключи )
- •Столбцы именуются и нумеруются
- •8 Понимание sql
- •************** Работа с sql **************
- •Sql : обзор
- •Что делает ansi ?
- •Интерактивный и вложенный sql
- •14 Понимание sql
- •Субподразделения sql
- •16 Понимание sql
- •Sql несогласованности
- •Что такое - пользователь?
- •18 Понимание sql
- •Условия и терминология
- •************** Работа с sql **************
- •24 Понимание sql
- •26 Понимание sql
- •Переупорядочение столбца
- •28 Понимание sql
- •Параметры distinct
- •30 Понимание sql
- •32 Понимание sql
- •************* Работа с sql ***************
- •38 Понимание sql
- •40 Понимание sql
- •42 Понимание sql
- •44 Понимание sql
- •Использование специальных операторов в условиях
- •50 Понимание sql
- •52 Понимание sql
- •54 Понимание sql
- •56 Понимание sql
- •************** Работа с sql **************
- •Обобщение данных с помощью агрегатных функций
- •64 Понимание sql
- •66 Понимание sql
- •Включение дубликатов в агрегатные функции
- •Предложение group by
- •68 Понимание sql
- •Предложение having
- •70 Понимание sql
- •72 Понимание sql
- •************** Работа с sql **************
- •Формирование выводов запросов
- •Помещение текста в вашем выводе запроса
- •78 Понимание sql
- •80 Понимание sql
- •82 Понимание sql
- •Упорядочение вывода по номеру столбца
- •84 Понимание sql
- •************** Работа с sql **************
- •Запрашивание многочисленых таблиц также как одной
- •90 Понимание sql
- •92 Понимание sql
- •94 Понимание sql
- •************** Работа с sql **************
- •Объединение таблицы с собой
- •Псевдонимы
- •100 Понимание sql
- •Устранение избыточности
- •102 Понимание sql
- •Больше псевдонимов
- •104 Понимание sql
- •106 Понимание sql
- •************** Работа с sql **************
- •Вставка одного запроса внутрь другого
- •112 Понимание sql
- •114 Понимание sql
- •116 Понимание sql
- •In определяет набор значений, одно из которых должно совпадать с другим
- •118 Понимание sql
- •In является подходящим, если запрос может ограниченно производить одно
- •120 Понимание sql
- •122 Понимание sql
- •*************** Работа с sql *************
- •Соотнесенные подзапросы
- •130 Понимание sql
- •132 Понимание sql
- •Соотнесенные подзапросы в предложении having
- •134 Понимание sql
- •*************** Работа с sql *************
- •Использование оператора exists
- •140 Понимание sql
- •142 Понимание sql
- •144 Понимание sql
- •146 Понимание sql
- •************** Работа с sql **************
- •Использование оператора exists
- •152 Понимание sql
- •154 Понимание sql _____________________________________________________________________
- •156 Понимание sql
- •158 Понимание sql
- •160 Понимание sql
- •162 Понимание sql
- •Использование count вместо exists
- •166 Понимание sql
- •************** Работа с sql **************
94 Понимание sql
______________________________________________________________________
ГЛ. 8
=============== РЕЗЮМЕ ===============
Теперь вы больше не ограничиваетесь просмотром одной таблицы в каждый
момент времени. Кроме того, вы можете делать сложные сравнения между
любыми полями любого числа таблиц и использовать полученные результаты
чтобы решать какую информацию вы бы хотели видеть. Фактически, эта
методика настолько полезна для построения связей, что она часто используется
для создания их внутри одиночной таблицы. Это будет правильным: вы сможете
объединить таблицу с собой, а это очень удобная вещь.
Это будет темой Главы 9.
ЗАПРАШИВАНИЕ МНОГОЧИСЛЕНЫХ ТАБЛИЦ КАК ОДНОЙ 95
________________________________________________________________
************** Работа с sql **************
1. Напишите запрос который бы вывел список номеров порядков
сопровождающихся именем заказчика который создавал эти порядки.
2. Напишите запрос который бы выдавал имена продавца и заказчика для
каждого порядка после номера порядков.
3. Напишите запрос который бы выводил всех заказчиков обслуживаемых
продавцом с комиссионными выше 12% . Выведите имя заказчика, имя
продавца, и ставку комиссионных продавца.
4. Напишите запрос который вычислил бы сумму комиссионных продавца
для каждого порядка заказчика с оценкой выше 100.
( См. Приложение A для ответов. )
9
Объединение таблицы с собой
98 ПОНИМАНИЕ SQL
______________________________________________________________________
CH 9
В ГЛАВЕ 8, МЫ ПОКАЗАЛИ ВАМ КАК ОБЪЕДИНЯТЬ ДВЕ
или более таблиц - вместе.
Достаточно интересно то, что та же самая методика может использова-
ться чтобы объединять вместе две копии одиночной таблицы.
В этой главе, мы будем исследовать этот процесс. Как вы видете, объе-
динение таблицы с самой собой, далеко не простая вещь, и может быть
очень полезным способом определять определенные виды связей между
пунктами данных в конкретной таблице.
========= КАК ДЕЛАТЬ ОБЪЕДИНЕНИЕ ==========
ТАБЛИЦЫ С СОБОЙ ?
Для объединения таблицы с собой, вы можете сделать каждую строку
таблицы, одновременно, и комбинацией ее с собой и комбинацией с
каждой другой строкой таблицы. Вы затем оцениваете каждую комбинацию
в терминах предиката, также как в обьединениях мультитаблиц. Это позво-
лит вам легко создавать определенные виды связей между различными по-
зициями внутри одиночной таблицы - с помощью обнаружения пар строк
со значением поля, например.
Вы можете изобразить обьединение таблицы с собой, как обьединение
двух копий одной и той же таблицы. Таблица на самом деле не копируется,
но SQL выполняет команду так, как если бы это было сделано.
Другими словами, это обьединение - такое же, как и любое другое обьеди-
нение между двумя таблицами, за исключением того, что в данном случае
обе таблицы идентичны.