SELECT списокСталбцов FROM списокТаблиц;

Для уточнения запроса на выборку данных служит ряд дополнительных операторов:

· WHERE (где) — указывает записи, которые должны войти в результатную таблицу (фильтр записей);

· GROUP BY (группировать по) — группирует записи по значениям определенных столбцов;

· HAVING (имеющие, при условии) — указывает группы записей, которые должны войти в результатную таблицу (фильтр групп);

· ORDER BY (сортировать по) — сортирует (упорядочивает). Таким образом, запрос данных из таблицы с применением всех перечисленных операторов уточнения запроса имеет следующий вид:

SELECT списокСтолбцов

FROM имяТаблицы

WHERE условиеПоиска

GROUP BY столбец группировки

HAVING условиеПоиска

ORDER BY условиеСортировки;

Порядок перечисления операторов в SQL-выражении не совпадает с порядком их выполнения. Однако знание порядка выполнения операторов поможет вам избежать многих недоразумений. Итак, перечисленные операторы SQL-выражения выполняются в следующем порядке, передавая друг другу результат в виде таблицы:

1. FROM — выбирает таблицу из базы данных; если указано несколько таблиц, то выполняется их декартово произведение и результирующая таблица передается для обработки следующему оператору.

2. WHERE — из таблицы выбираются записи, отвечающие условию поиска, и отбрасываются все остальные.

3. GROUP BY — создаются группы записей, отобранных с помощью оператора WHERE (если он присутствует в SQL-выражении); каждая группа соответствует какому-нибудь значению столбца группирования. Столбец группирования может быть любым столбцом таблицы, заданной в операторе FROM, а не только тем, который указан в SELECT.

4. HAVING — обрабатывает каждую из созданных групп записей, оставляя только те из них, которые удовлетворяют условию поиска; этот оператор используется только вместе с оператором GROUP BY.

5. SELECT — выбирает из таблицы, полученной в результате применения перечисленных операторов, только указанные столбцы.

6. ORDER BY — сортирует записи таблицы. При этом в условии сортировки можно обращаться лишь к тем столбцам, которые указаны в операторе SELECT.

 

Для этой цели подойдет следующее SQL-выражение:

SELECT Имя, Адрес FROM Клиенты WHERE Сумма заказа > 500;

ВЫБРАТЬ СТОЛБЦЫ имя, Адрес ИЗ ТАБЛИЦЫ клиенты ГДЕ Сумма заказа > 500;

 

Выбираются только те записи, в которых Сумма заказа превышает 500, и они группируются по значениям столбцов Регион, Имя и Адрес. Это означает, что в результатной таблице записи, имеющие одинаковые значения в столбце Регион, будут расположены рядом друг с другом. Наконец, все записи в результатной таблице упорядочиваются по значениям столбца Имя.

SELECT Регион, Имя, Адрес FROM Клиенты

WHERE Сумма заказа > 500

GROUP BY Регион, Имя, Адрес

ORDER BY Имя;

Оператор WHERE

Условия поиска в операторе WHERE (где) являются логическими выражениями, т. е. принимающими одно из двух возможных зна- . чений — true (ИСТИНА) или false (ЛОЖЬ). Например, выражение Сумма заказа > 500 является истинным (имеет значение

true), если в текущей записи таблицы значение столбца Сумма заказа превышает 500. В противном случае это выражение— ложно (имеет значение false). Одно и то же логическое выражение может быть истинным для одних записей и ложным для других. Вообще говоря, в SQL логические выражения могут принимать еще и неопределенное значение. Эго происходит тогда, когда в выражении некоторые элементы имеют значение NULL. Таким образом, в SQL мы имеем дело не с классической двузначной, а с трехзначной логикой.

Напомню, что выражение, следующее за оператором WHERE, возвращает одно из трех значений: true, false или NULL. При выполнении запроса (SQL-выражения) логическое выражение WHERE применяется ко всем записям исходной таблицы. Если оно истинно для данной записи исходной таблицы, то эта запись выбирается и будет представлена в результатной таблице; в против- ном случае запись не попадет в результатную таблицу.

При составлении логических выражений используются специальные ключевые слова и символы операций сравнения, которые называют предикатами. Например, в выражении Сумма_заказа > 500 применен предикат сравнения(>).

Наиболее часто используются предикаты сравнения, такие как (=), (<), (>), (<>), (<=) и (>=). Однако имеются и другие. Далее приведен список всех предикатов:

· предикаты сравнения: (=), (<), (>), (<>), (<=), (>=);

· BETWEEN;

· IN, NOT IN;

· LIKE, NOT LIKE;

· IS NULL;

· ALL, SOME, ANY;

· EXISTS;

· UNIQUE;

· DISTINCT;

· OVERLAPS;

· MATCH;

· SIMILAR

Предикаты сравнения

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

Символ Описание
= Равно
<> Не равно
< Меньше
<= Меньше или равно (не больше)
> Больше
>= Больше или равно (не меньше)

 

BETWEEN

Предикат BETWEEN (между) позволяет задать выражение проверки вхождения какого-либо значения в диапазон, определяемый граничными значениями. Например: