Разработка INTRANET приложений

         

Структура основного предложения SQL


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

SELECT (distinct), <элемент(ы)> FROM <таблица(ы)> WHERE <условие отбора> GROUPBY <колонка(и)> HAVING <условие отбора> ORDERBY <упорядоченность(и)>

Результатом запроса всегда является таблица требуемой структуры с требуемыми данными. В частном случае таблица может содержать одну колонку и одну строку, т.е. представлять собой простое значение. Результирующая таблица может иметь повторяющиеся строки, удалить которые можно, указав DISTINCT в позиции SELECT. Рассмотрим назначение позиций в структуре предложения запроса.

SELECTопределяет, какие колонки должна иметь результирующая таблица. Символ "*" означает, что результирующая таблица должна включать в себя все колонки всех таблиц, на основе которых строится запрос. Если несколько исходных таблиц имеют одноименные колонки, то идентифицировать нужную колонку можно, указав ее полное имя, составленное из имени таблицы и имени колонки. В качестве колонки результирующего отношения может быть указано любое выражение, использующее набор стандартных функций, например, COUNT(), AVG(), SUM() и другие.

FROMопределяет список таблиц, на основе которых строится запрос. Поскольку SQL является структурным языком, то он допускает использование вложенных SELECT-конструкций. В качестве базовой таблицы может быть указано некоторое SELECT-предложение.

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

GROUPBY определяет список имен колонок, по одинаковым значениям которых будет выполняться группировка строк. Т. е. строки с одинаковыми значениями в указанных колонках будут представлены в результирующем отношении одной строкой. Но если в SELECT указана, например, функция AVG() или SUM(), то она применяется ко всем строкам группы.



Содержание раздела