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 (между) позволяет задать выражение проверки вхождения какого-либо значения в диапазон, определяемый граничными значениями. Например: