![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Выборка данных осуществляется с помощью оператора SELECT, который является самым часто используемым оператором языка SQL. Синтаксис оператора SELECT имеет следующий вид:
SELECT [ALL/DISTINCT] <список атрибутов>/*
FROM <список таблиц>
[WHERE <условие выборки>]
[ORDER BY <список атрибутов>]
[GROUP BY <список атрибутов>]
[HAVING <условие>]
[UNION<выражение с оператором SELECT>]
В квадратных скобках указываются элементы, которые могут в запросе отсутствовать.
Ключевое слово ALL означает, что результатом будут все строки, удовлетворяющие условию запроса, в том числе и одинаковые строки. DISTINCT означает, что в результирующий набор не включаются одинаковые строки. Далее идет список атрибутов исходной таблицы, которые будут включены в таблицу-результат. Символ* означает, что в таблицу-результат включаются все атрибуты исходной таблицы.
Обязательным ключевым словом является слово FROM, за ним следуют имена таблиц, к которым осуществляется запрос.
В предложении с ключевым словом WHERE задаются условия выборки строк таблицы. В таблицу-результат включаются только те строки, для которых условие, указанное в предложении WHERE, принимает значение истина.
Ключевое слово ORDER BY сортирует строки таблицы-результата по указанному списку атрибутов.Сортировка может выполняться по нескольким полям, в этом случае они перечисляются за ключевым словом ORDER BY через запятую. Способ сортировки задается ключевым словом, указываемым в рамках параметра ORDER BY следом за названием поля, по которому выполняется сортировка. По умолчанию реализуется сортировка по возрастанию. Явно она задается ключевым словом ASC.Для выполнения сортировки в обратной последовательности необходимо после имени поля, по которому она выполняется, указать ключевое слово DESC.
В предложении с ключевым словом GROUP BY задается список атрибутов группировки. Для запросов, содержащих секцию GROUP BY существует важное ограничение: такие запросы могут включать в качестве результата столбцы, по которым производится группировка. При наличии в операторе SELECT фразы GROUP BY каждый элемент списка в предложении SELECT должен иметь единственное значение для всей группы. Более того, предложение SELECT может включать только следующие типы элементов: имена полей, итоговые функции, константы и выражения, включающие комбинации перечисленных выше элементов.
Все имена полей, приведенные в списке предложения SELECT, должны присутствовать и во фразе GROUP BY - за исключением случаев, когда имя столбца используется в итоговой функции. Обратное правило не является справедливым - во фразе GROUP BY могут быть имена столбцов, отсутствующие в списке предложения SELECT.
Если совместно с GROUP BY используется предложение WHERE, то оно обрабатывается первым, а группированию подвергаются только те строки, которые удовлетворяют условию поиска.
Стандартом SQL определено, что при проведении группирования все отсутствующие значения рассматриваются как равные. Если две строки таблицы в одном и том же группируемом столбце содержат значение NULL и идентичные значения во всех остальных непустых группируемых столбцах, они помещаются в одну и ту же группу.
В предложении HAVING задаются условия, накладываемые на каждую группу.
Наряду с операторами сравнения и логическими операторами для составления условий в языке SQL (из-за специфики области применения) существуют ряд специальных операторов, которые, как правило, не имеют аналогов в других языках. Вот эти операторы:
IN – вхождение в некоторое множество значений;
BETWEEN – вхождение в некоторый диапазон значений;
LIKE – проверка на совпадение с образцом;
IS NULL – проверка на неопределенное значение.
Оператор IN используется для проверки вхождения в некоторое множество значений.
Оператор LIKE применим исключительно к символьным полям и позволяет устанавливать, соответствует ли значение поля образцу. Образец может содержать специальные символы:
§ % – вместо этого символа может быть подставлено любое количество произвольных символов.
§ _ заменяет один символ строки.
§ [] – вместо символа строки будет подставлен один из возможных символов, указанный в этих ограничителях.
§ [^] – вместо соответствующего символа строки будут подставлены все символы, кроме указанных в ограничителях.
Оператор BETWEEN используется для поиска значения внутри некоторого интервала, определяемого своими минимальным и максимальным значениями. При этом указанные значения включаются в условие поиска.
Оператор IS NULL используется для сравнения текущего значения со значением NULL – специальным значением, указывающим на отсутствие любого значения. NULL – это не то же самое, что знак пробела (пробел – допустимый символ) или ноль (0 – допустимое число). NULL отличается и от строки нулевой длины (пустой строки).
Обработка элементов оператора select выполняется в следующей последовательности:
1) обрабатывается from – определяются имена используемых таблиц.
2) where – выполняется фильтрация строк объекта в соответствии с условиями.
3) group by (если есть) – образуются группы строк с одинаковым значением в указанном столбце.
4) having – фильтруются группы строк объектов в соответствии с условием.
5) select – какие столбцы должны быть в выходных данных.
6) Order by – сортировка.
Дата публикования: 2015-02-18; Прочитано: 1788 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!