- •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 **************
Псевдонимы
Синтаксис команды для объединения таблицы с собой, тот же что и для
объединения многочисленых таблиц, в одном экземпляре.
Когда вы объединяете таблицу с собой, все повторяемые имена столбца,
заполняются префиксами имени таблицы. Чтобы ссылаться к этим столб-
цам внутри запроса, вы должны иметь два различных имени для этой
таблицы.
Вы можете сделать это с помощью определения временных имен назы-
ваемых - .переменными диапазона, переменными корреляции или просто
- псевдонимами
Вы определяете их в предложении FROM запроса. Это очень просто: вы
набираете имя таблицы, оставляете пробел, и затем набираете псевдоним
для нее.
ОБЪЕДИНЕНИЕ ТАБЛИЦЫ С СОБОЙ 99
______________________________________________________________________
Имеется пример который находит все пары заказчиков имеющих один и тот
же самый рейтинг ( вывод показывается в Рисунке 9.1 ):
SELECT first.cname, second.cname, first.rating
FROM Customers first, Customers second
WHERE first.rating = second.rating;
=============== SQL Execution Log ==============
| |
| Giovanni Giovanni 200 |
| Giovanni Liu 200 |
| Liu Giovanni 200 |
| Liu Liu 200 |
| Grass Grass 300 |
| Grass Cisneros 300 |
| Clemens Hoffman 100 |
| Clemens Clemens 100 |
| Clemens Pereira 100 |
| Cisneros Grass 300 |
| Cisneros Cisneros 300 |
| Pereira Hoffman 100 |
| Pereira Clemens 100 |
| Pereira Pereira 100 |
| |
===============================================
Рисунок 9.1: Объединение таблицы с собой
( обратите внимание что на Рисунке 9.1, как и в некоторых дальнейших
примерах, полный запрос не может уместиться в окне вывода, и следо-
вательно будет усекаться. )
В вышеупомянутой команде, SQL ведет себя так, как если бы он соединял
две таблицы называемые 'первая' и 'вторая'. Обе они - фактически, таблицы
Заказчика, но псевдонимы разрешают им быть обработаными независимо.
Псевдонимы первый и второй были установлены в предложении FROM
запроса, сразу после имени копии таблицы.
Обратите внимание что псевдонимы могут использоваться в предложении
SELECT, даже если они не определены в предложении FROM.
Это - очень хорошо. SQL будет сначала допускать любые такие псевдонимы
на веру, но будет отклонять команду если они не определены далее в предло-
жении FROM запроса.
Псевдоним существует - только пока команда выполняется !