Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все ответы.doc
Скачиваний:
75
Добавлен:
17.03.2016
Размер:
1.29 Mб
Скачать

Соединение таблиц в запросе

В пункте FROMопределяется соединения таблиц, из которых извлекается информация. Для этого может использоваться оператор соединения

<табличный источник> <оператор соединения> <табличный источник> ON <условия соединения>

Оператор соединения имеет следующие варианты

[INNER] JOIN– обычное (внутреннее) соединение в описанном выше смысле,

[LEFT | RIGHT | FULL] [OUTER] JOIN– левое | правое | полное внешнее соединение – в результат включаются даже те записи левой | правой | обеих таблиц, которым не соответствую записи другой таблицы,

CROSS JOIN– декартово произведение таблиц.

Для указания последовательности соединения можно использовать скобки.

Фильтрация строк

Условие из пункта WHERE должно содержать условия выбора строк – результата соединения таблиц (и условия соединения таблиц, если они не указаны в пункте FROM). Для формулировки условия могут использоваться сравнения и логические операции: AND – конъюнкция (“логическое И”); OR – дизъюнкция (“логическое ИЛИ”); NOT – отрицание.

Для формулировки условий применяются следующие специальные формы сравнений.

Условие

<выражение> [NOT] BETWEEN <начало> AND <конец>

истинно, если значение выражения лежит (не лежит в случае указания NOT) в указанном диапазоне.

Условие

< выражение > [NOT] LIKE <шаблон>

проверяет для значения выражения соответствие шаблону (несоответствие в случае указания NOT). В шаблоне можно использовать знаки: “_” (подчеркивание), означающий подстановку одного любого символа, “%”, заменяющий произвольную последовательность символов. Например, условие

Товар LIKE “Конфет%”

выбирает все товары, названия которых начинаются с "Конфет".

Следующие формы сравнения используют подзапросы – запросы, вложенные в основной запрос для вычисления некоторых значений. Подзапросы определяются командой SELECT.

Условие

<выражение> <сравнение> ALL (<подзапрос>)

истинно, если сравнение выполняется для всех данных, извлеченных подзапросом. Например, запрос

Условие

<поле> <сравнение> ANY (<подзапрос>)

истинно, если сравнение выполняется хотя бы для одного значения, извлеченного подзапросом. Для извлечения поставок, в которых цена товара не превышает цен на такие же товары поставщика с 'Гермес'., можно воспользоваться предыдущим запросом, заменив в нем ALL на ANY.

Группировка

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

Сортировка записей результата

Записи выходной таблицы можно упорядочить, если в команду включить пункт ORDER BY. Элементом списка является выражение, за которым может следовать слово ASC для упорядочения по возрастанию или DESC для упорядочения по убыванию. Порядок записи выражений сортировки определяет последовательность сортировки: сначала выполняется сортировка по первому выражению, затем записи с одинаковым значением первого выражения сортируются по второму выражению и так далее.