- •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 **************
84 Понимание sql
______________________________________________________________________
ГЛ. 7
=============== SQL Execution Log ==============
| |
| SELECT snum, odate, MAX (amt) |
| FROM Orders |
| GROUP BY snum |
| ORDER BY 2 DESC; |
| =============================================== |
| snum |
| ----- ---------- |
| 1001 3 |
| 1002 3 |
| 1007 2 |
| 1003 1 |
| 1004 1 |
| |
================================================
Рисунок 7.8: Упорядочение с помощью столбца вывода
В этом случае, вы должны использовать номер столбца, так как столбец
вывода не имеет имени; и вы не должны использовать саму агрегатную
функцию. Строго говоря по правилам ANSI SQL, следующее не будет рабо-
тать, хотя некоторые системы и пренебрегают этим требованием:
SELECT snum, COUNT ( DISTINCT onum )
FROM Orders
GROUP BY snum
GROUP BY COUNTОМ ( DISTINCT onum ) DESC;
Это будет отклонено большинством систем!
УПОРЯДОЧЕНИЕ С ПОМОЩЬЮ ОПРЕТОРА NULL
Если имеются пустые значения (NULL) в поле которое вы используете для
упорядочивания вашего вывода, они могутут или следовать или предшество-
вать каждому другому значению в поле. Это - возможность которую ANSI
оставил для индивидуальных программ. Данная программа использует ту
или иную форму.
ФОРМАТИРОВАНИЕ ВЫВОДА ЗАПРОСА 85
______________________________________________________________________
================ РЕЗЮМЕ =================
В этой главе, вы изучили как заставить ваши запросы делать больше,
чем просто выводить значения полей или объединять функциональные
данные таблиц. Вы можете использовать поля в выражениях: например,
вы можете умножить числовое поле на 10 или даже умножить его на
другое числовое поле. Кроме того, вы можете помещать константы,
включая и символы, в ваш вывод, что позволяет вам помещать текст
непосредственно в запрос и получать его в выводе вместе с данными
таблицы.
Это дает вам возможность помечать или объяснять ваш вывод различ-
ными способами.
Вы также изучили как упорядочивать ваш вывод. Даже если таблица
сама по себе остается неупорядоченной, предложение ORDER BY дает
вам возможность управлять порядком вывода строк данного запроса.
Вывод запроса может быть в порядке возрастания или убывания, и
столбцы могут быть вложенными один внутрь другого.
Понятие выводимых столбцов объяснялось в этой главе. Вы теперь зна-
ете что выводимые столбцы можно использовать чтобы упорядочивать
вывод запроса, но эти столбцы - без имени, и следовательно должны
определяться их порядковым номером в предложении ORDER BY.
Теперь, когда вы увидели что можно делать с выводом запроса осно-
ванного на одиночной таблице, настало время чтобы перейти к возмож-
ностям улучшенного запроса и узнать как сделать запрос любого числа
таблиц в одной команде, определив связи между ними как вы это обычно
делали. Это будет темой Главы 8.
86 ПОНИМАНИЕ SQL
______________________________________________________________________
ГЛ. 7