- •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 **************
************** Работа с sql **************
1. Напишите запрос который сосчитал бы все суммы приобретений на
3 Октября.
2. Напишите запрос который сосчитал бы число различных не-NULL
значений поля city в таблице Заказчиков.
3. Напишите запрос который выбрал бы нименьшую сумму для
каждого заказчика.
4. Напишите запрос который бы выбирал заказчиков в алфавитном
порядке, чьи имена начинаются с буквы G.
5. Напишите запрос который выбрал бы высшую оценку в каждом городе.
6. Напишите запрос который сосчитал бы число заказчиков регистрирующих
каждый день свои порядки. (Если продавец имел более одного
порядка в данный день, он должен учитываться только один раз.)
( См. Приложение A для ответов. )
7
Формирование выводов запросов
76 ПОНИМАНИЕ SQL
______________________________________________________________________
ГЛ. 7
ЭТА ГЛАВА РАСШИРИТ ВАШИ ВОЗМОЖНОСТИ
в работе с выводом который производит запрос.
Вы узнаете как вставлять текст и константы между выбранных полей,
как использовать выбранные поля в математических выражениях, чьи
результаты затем становятся выводом, и как сделать чтобы ваши
значения выводились в определенном порядке. Эта последняя особен-
ность включена, чтобы упорядочивать ваш вывод по любым столбцам,
любым полученным значениям этого столбца, или по обеим.
=========== СТРОКИ И ВЫРАЖЕНИЯ ============
Большинство основанных на SQL баз данных предоставляют специальные
средства позволяющие Вам совершенствовать вывод ваших запросов.
Конечно, они претерпевают значительные изменения от программы к
программе, и их обсуждение здесь не входит в наши задачи, однако,
имеются пять особенностей созданых в стандарте SQL которые позволяют
вам делать больше чем просто вывод значений полей и агрегатных данных.
СКАЛЯРНОЕ ВЫРАЖЕНИЕ
С ПОМОЩЬЮ ВЫБРАННЫХ ПОЛЕЙ
Предположим что вы хотите выполнять простые числовые вычисления
данных чтобы затем помещать их в форму больше соответствующую вашим
потребностям. SQL позволяет вам помещать скалярные выражения и
константы среди выбраных полей. Эти выражения могут дополнять или
замещать поля в предложениях SELECT, и могут включать в себя одно или
более выбранных полей. Например, вы можете пожелать, представить
комиссионные вашего продавца в процентном отношении а не как десятич-
ные числа. Просто достаточно:
SELECT snum, sname, city, comm * 100
FROM Salespeople;
Вывод из этого запроса показывается в Рисунке 7.1.
СТОЛБЦЫ ВЫВОДА
Последний столбец предшествующего примера непомечен( т.е. без наимено-
вания), потому что это - столбец вывода. Столбцы вывода - это столбцы дан-
ных созданные запросом способом, иным чем просто извлечение их из таб-
лицы. Вы создаете их всякий раз, когда вы используете агрегатные функции
ФОРМАТИРОВАНИЕ ВЫВОДОВ ЗАПРОСОВ 77
______________________________________________________________________
=============== SQL Execution Log ============
| |
| SELECT snum, sname, city, comm * 100 |
| FROM Salespeople; |
| ==============================================|
| snum sname city |
| ------ --------- ----------- --------- |
| 1001 Peel London 12.000000 |
| 1002 Serres San Jose 13.000000 |
| 1004 Motika London 11.000000 |
| 1007 Rifkin Barcelona 15.000000 |
| 1003 Axelrod New York 10.000000 |
| |
===============================================
Рисунок 7.1: Помещение выражения в вашем запросе
, константы, или выражения в предложении SELECT запроса.
Так как имя столбца - один из атрибутов таблицы, столбцы которые приходят
не из таблиц не имеют никаких имен. Другими словами непомеченные, стол-
бцы вывода могут обрабатываться также как и столбцы извлеченные из таб-
лиц, почти во всех ситуациях.