РУКОВОДСТВО ПО РЕЛЯЦИОННОЙ СУБД DB2

ПРИМЕРЫ ЗАПРОСОВ


Начнем с простого примера — с запроса «Выдать номера и состояния для поставщиков, находящихся в Париже». Этот запрос может быть выражен в SQL следующим образом:

SELECT                НОМЕР_ПОСТАВЩИКА, СОСТОЯНИЕ

FROM                   S

WHERE                ГОРОД = 'Париж';

В качестве результата получим:

НОМЕР_ПОСТАВЩИКА

СОСТОЯНИЕ



S2

S3

10

30

Этот пример иллюстрирует самую общую форму предложения SELECT в языке SQL—

"SELECT              (выбрать) специфицированные поля

FROM                   (из) специфицированной таблицы

WHERE                (где) некоторое специфицированное условие является истинным"

Заметим, что результатом запроса является другая таблица — таблица, которая некоторым образом получается из заданных в базе данных таблиц. Иными словами, в реляционной системе типа DB2 пользователь всегда действует в рамках простой табличной структуры, и это—весьма привлекательная особенность таких систем [11].

В данном случае было бы вполне возможно сформулировать запрос, используя уточненные имена полей:

SELECT                S.HOMEP_ПОСТАВЩИКА, S. СОСТОЯНИЕ

FROM                   S

WHERE S ГОРОД = 'Париж';

Использование уточненных имен никогда не рассматривается как ошибка, и иногда это существенно, как мы увидим в разделе 4.3. Для справочных целей ниже показана общая форма предложения SELECT, в которой, однако, опущена возможность UNION, обсуждаемая в следующей главе:

SELECT                [DISTINCT] элемент(ы)

FROM                   таблица (или таблицы)

[WHERE предикат]

[GROUP   BY поле (или поля) [HAVING предикат] ]

[ORDER   BY поле (или поля) ];

Перейдем теперь к иллюстрации основных особенностей этого предложения с помощью весьма продолжительной серии примеров. Примечание. Фразы GROUP BY (группировать по) и HAVING (имея) обсуждаются в главе 5. Со всеми остальными фразами читатель по крайней мере познакомится в этой главе, хотя рассмотрение более сложных их аспектов также отложено до главы 5.



Содержание раздела