Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД / БД / Базы данных Учебник Окончательный вариант!!!.doc
Скачиваний:
209
Добавлен:
22.05.2015
Размер:
1.77 Mб
Скачать

2.6.4 Оператор where (условие)

С помощью WHERE ограничивают выбор данных из указанных таблиц.

Пример:

SELECT warehouse. name_supplier, supplier.name_supplier, supplier. trademark

FROM warehouse, supplier

WHERE warehouse. name_supplier = supplier.name_supplier;

Результатом является здесь таблица из строк, состоющих из поля supplier таблицы warehouse и полей name_supplier и trademark таблицы supplier, где с помощью WHERE указывается как находить строки таблицы warehouse соответствующие строкам из таблицы supplier

2.6.5 Оператор group by { поле | Integer } [,...]

GROUP BY используется вместе с функциями агрегирования данных для того, чтобы последние действовали на определенные группы строк результирующей таблицы данных. На месте имен полей могут быть использованы их порядковые номера в списке полей результирующей таблицы.

Пример:

SELECT name, MAX(price)

FROM detail

GROUP BY name;

Здесь выбираются в качестве результата все максимальные значения поля price(цена) про найденную группу строк с идентичным значением поля name(имя).

2.6.6 Оператор having( условие)

HAVINGиспользуется вместе с GROUP для того чтобы выбирать только определенные группы строк данных, которые удовлетворяют указанному условию.

Пример:

SELECT name, MAX(price)

FROM detail

GROUP BY name

HAVING AVG(price) > 100

Здесь выбираются все максимальные значения поля price(цена) про найденную группу строк данных с идентичным name(имя), удовлетворяющию дополнительному условию, что средняя величина price(цена) больше 100.

2.6.7 Оператор order by { поле | Integer [ asc|desc ] } [,...]

ORDER BY сортирует строки результирующей таблицы данных. Если ORDER BY используется внутри GROUP BY, то строки сортируются внутри каждой группы результирующих строк. Вместо имен полей могут быть использованы их порядковые номера в списке полей результирующей таблицы. ASC сортирует данные в восходящем порядке, DESC - в обратном.

2.6.8 Оператор union [all] select-команда

UNION используется для того, чтобы объединять результаты двух или более команд SELECT. Поля всех результирующих таблиц должны быть совместимыми. Если ALL не использовано, то дупликаты исключаются из объединения результатов.

Пример:

SELECT trademark

FROM supplier

WHERE name_supplier ='Berlin'

UNION

SELECT name_detail

FROM warehouse

WHERE name_supplier ='Berlin'

ORDER BY 1;

Здесь результатом является таблица, содержащая все trademark таблицы supplier так же, как и все name_detail таблицы warehouse, где поле name_supplier имеет значение 'Berlin'. Результат сортируется по первому столбцу и дупликаты исключаются.

2.6.9 Оператор intersect [all] select-команда

ANSI

DB2

Informix

Oracle

SQL Server

Interbase

нет

да

да

да

?

?

INTERSECT используется для того, чтобы объединять результаты двух или более команд SELECT, при этом в резултат включаются только строки содержащиеся в первой команде SELECT, как и во второй. Поля всех результирующих таблиц должны быть совместимыми. Если ALL не использовано, то дупликаты исключаются из объединения результатов.

Пример:

SELECT trademark

FROM supplier

WHERE name_supplier ='Berlin'

INTERSECT

SELECT name_detail

FROM warehouse

WHERE name_supplier ='Berlin'

ORDER BY 1;

Здесь интересуют все строки первой результирующей таблицы, которые так же содержатся и во второй. Дупликаты исключаются из результата.

Соседние файлы в папке БД