- •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 **************
104 Понимание sql
______________________________________________________________________
ГЛ. 9
=============== SQL Execution Log ============
| |
| SELECT b.cnum, b.cname |
| FROM Customers a, Customers b |
| WHERE a.snum = 1002 |
| AND b.city = a.city; |
| ==============================================|
| cnum cname |
| ------ --------- |
| 2003 Liu |
| 2008 Cisneros |
| 2004 Grass |
=============================================
Рисунок 9.4 Нахождение заказчиков в городах относящихся
к Serres.
Псевдоним a будет делать предикат неверным за исключением случая
когда его значение столбца snum = 1002. Таким образом псевдоним
опускает все, кроме заказчиков продавца Serres. Псевдоним b будет
верным для всех строк с тем же самым значением города что и текущее
значение города для a; в ходе запроса, строка псевдонима b будет верна
один раз когда значение города представлено в a.
Нахождение этих строк псевдонима b - единственая цель псевдонима a,
поэтоиму мы не выбираем все столбцы подряд. Как вы можете видеть,
собственные заказчики Serres выбираются при нахождении их в том же
самом городе что и он сам, поэтому выбор их из псевдонима a необязате-
лен. Короче говоря, псевдоним назходит строки заказчиков Serres, Liu и
Grass. Псевдоним b находит всех заказчиков размещенных в любом из их
городов ( San Jose и Berlin соответственно ) включая, конечно, самих -
Liu и Grass.
Вы можете также создать обьединение которое включает и различные таб-
лицы и псевдонимы одиночной таблицы. Следующий запрос объединяет
таблицу Пользователей с собой: чтобы найти все пары заказчиков обслужи-
ваемых одним продавцом. В то же самое время, этот запрос объединяет
заказчика с таблицей Продавцов с именем этого продавца ( вывод показан
на Рисунке 9.5 ):
ОБЪЕДИНЕНИЕ ТАБЛИЦ С СОБОЙ 105
______________________________________________________________________
SELECT sname, Salespeople.snum, first.cname
second.cname
FROM Customers first, Customers second, Salespeople
WHERE first.snum = second.snum
AND Salespeople.snum = first.snum
AND first.cnum < second.cnum;
=============== SQL Execution Log ==================
| |
| SELECT cname, Salespeople.snum, first.cname |
| second.cname |
| FROM Customers first, Customers second, Salespeople |
| WHERE first.snum = second.snum |
| AND Salespeople.snum = first.snum |
| AND first.cnum < second.cnum; |
| ====================================================|
| cname snum cname cname |
| ------ ------ -------- -------- |
| Serres 1002 Liu Grass |
| Peel 1001 Hoffman Clemens |
=====================================================
Рисунок 9.5: Объединение таблицы с собой и с другой таблицей
================ РЕЗЮМЕ =================
Теперь Вы понимаете возможности объединения и можете использовать
их для ограничения связей с таблицей, между различными таблицами, или
в обоих случаях. Вы могли видеть некоторые возможности объединения при
использовании его способностей. Вы теперь познакомились с терминами
порядковые переменные, корреляционные переменные и предложения
(эта терминология будет меняться от изделия к изделию, так что мы предла-
гаем Вам познакомится со всеми тремя терминами ). Кроме того Вы поняли,
немного, как в действительности работают запросы.